【问题标题】:How to declare counter in assembly language / emu8086?如何用汇编语言/emu8086 声明计数器?
【发布时间】:2021-04-11 10:31:20
【问题描述】:

我是汇编语言的新手。我只需要一些关于如何声明减少输入数字的计数器循环的建议或提示。比如输入=5,打印=55555.5555.555.55.5

include emu8086.inc
org 100h

print 'Input a number: '

MOV AH,01H ;input
INT 21H
MOV BL,AL

MOV DL,BL

SUB BL,30H
MOV CL,BL

printn

print 'Output: '
DISP:
MOV AH,02H
INT 21H

DEC CL
JNZ DISP

MOV AH,4CH
INT 21H
Input: 5
Output: 55555

这对你们来说很基础,对我来说很难学,但我不会停止学习。我只是需要一些建议。

【问题讨论】:

  • MOV AH,01H/INT 21H 将输入存储在ALMOV BL,AL/SUB BL,30H/MOV CL,BLCL 设置为input - 30HDISP:/DEC CL/JNZ DISPCL 值的循环。所以已经有一个循环,依赖于输入。
  • 是的,output = 55555 是循环的结果,但是另一个变成递减的循环呢?我怎样才能使输出到55555, 5555, 555, 55, 5
  • 为输出计数添加值输入 (INT 21H) 并将循环计数器 (CL) 更改为该值。
  • 您能指导我将其添加到我的代码中吗?我明白你说的,但我做不到。因为我才刚刚开始学习。

标签: assembly emu8086 program-counter


【解决方案1】:

解决办法可以这样

include emu8086.inc
org 100h

print 'Input a number: '

MOV AH,01H ;input digit to output 
INT 21H
MOV DL,AL

MOV AH,01H ;input number of times to output 
INT 21H
MOV CL,AL
SUB CL,30H

printn

print 'Output: '
DISP:
MOV AH,02H
INT 21H

DEC CL
JNZ DISP

MOV AH,4CH
INT 21H

这样解决了输入不同的问题,但是没有检查输入是否有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多