【问题标题】:assembly8086 print a number at procedureassembly8086 在程序中打印一个数字
【发布时间】:2017-04-29 10:16:52
【问题描述】:

我在 assembly8086 上做了一个小测验 我无法打印测验的分数,它是一个介于 1 和 10 之间的数字。

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

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

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

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

【问题讨论】:

标签: assembly x86 x86-16


【解决方案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 要求输出是您所需要的。

【讨论】:

  • 简单而有效。可惜这么多提问者懒得接受一个好的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-03
  • 2022-11-21
  • 1970-01-01
  • 2022-10-24
  • 2013-06-17
  • 2013-08-22
  • 1970-01-01
相关资源
最近更新 更多