【发布时间】:2014-11-11 11:30:10
【问题描述】:
此代码的目的是显示标题“hello World”,其下方有一个数值,表示使用 INC 计数器的次数。如果你运行这个代码,在 MS DOS 中字符串会显示在它下面的字母 K(我需要一个数字)。附带说明一下,寄存器 D 不能使用,我分配的内存位置是 899。所以基本上我只需要帮助弄清楚为什么每次运行程序时我都会收到一个字母(或其他一些随机字符)而不是数字.我认为我的问题是在第一个 INT 21 之后,但我不是 100% 确定。我希望对此有一些意见,如果可能的话,可能会进行更正。这是我的代码:
debug
a100
MOV cL, 02
MOV AL, [0899]
MOV BL, [0900]
SUB AL, BL
MOV BL, 0
JGE 115
INC BL
ADD AL, CL
JMP 10D
MOV [0899], AL
MOV DX, 054B
MOV AH, 09
INT 21
ADD BL, 30
MOV CL, BL
MOV AH, 02
INT 21
INT 20
e 054B "Hello World" 0d 0a "$"
g=100
【问题讨论】:
-
您希望打印什么?加 30h 得到一个数字的方法只适用于个位数(即 0..9)。如果您的数字 >= 10,则需要反复除以 10 并输出余数 + 30h。