【发布时间】:2017-04-29 10:16:52
【问题描述】:
我在 assembly8086 上做了一个小测验 我无法打印测验的分数,它是一个介于 1 和 10 之间的数字。
在程序中,我将一个数字添加到寄存器 BX 中:
proc Grade
mov bx, offset score
add [bx], 1
ret
在程序结束时,我想打印以 10 为底的寄存器 BX 的值,并且我需要它在程序中。
如果你能帮助我,我会很高兴,美好的一天(:
【问题讨论】:
我在 assembly8086 上做了一个小测验 我无法打印测验的分数,它是一个介于 1 和 10 之间的数字。
在程序中,我将一个数字添加到寄存器 BX 中:
proc Grade
mov bx, offset score
add [bx], 1
ret
在程序结束时,我想打印以 10 为底的寄存器 BX 的值,并且我需要它在程序中。
如果你能帮助我,我会很高兴,美好的一天(:
【问题讨论】:
它是一个介于 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
您将其标记为 8086,所以我认为 DOS 要求输出是您所需要的。
【讨论】: