assembly8086在程序中打印一个数字

时间:2017-04-29 10:16:52

标签: assembly x86 x86-16

我在assembly8086上做了一点QUIZ 我无法打印测验的分数,它是1到10之间的数字。

在程序中,我将一个数字添加到寄存器BX中:

proc Grade
    mov bx, offset score
    add [bx], 1
ret

在程序结束时,我想打印基数为10的寄存器BX的值,我需要它在程序中。

如果你能帮助我,我会很高兴,美好的一天(:

1 个答案:

答案 0 :(得分:1)

  

它是1到10之间的数字。

由于你的范围非常有限,你可以使用这个简单的解决方案:

    mov  dl, [bx]      ;Score from 1 to 10
    cmp  dl, 10
    jb   IsBelow10
    mov  dl, 49        ;Display character "1"
    mov  ah, 02h
    int  21h
    mov  dl, 0         ;Prepare to display character "0"
IsBelow10:
    add  dl, 48        ;Converts number into character
    mov  ah, 02h
    int  21h

你标记了它所以我认为DOS要求输出是你需要的。