您好我正在编写程序,我需要将寄存器AX
的值打印到屏幕上。我想的方法很少,但它们没有用。任何想法如何制作它?例如ax
= 0abcdh。
答案 0 :(得分:0)
您必须将寄存器的值分成不同的部分。
示例:十六进制输出:
MOV CX, 4
next_digit:
PUSH CX
MOV CL, 4
ROL AX, CL
PUSH AX
AND AL, 0Fh
ADD AL, '0'
CMP AL, '9'
JLE not_a_letter
ADD AL, 'A'-'9'-1
not_a_letter:
; Now write the character AL to the screen
POP AX
POP CX
LOOP next_digit
此代码将破坏CX寄存器的内容,因此如果您不想修改CX寄存器,则必须将其保存在堆栈中。
“现在将字符AL写入屏幕”行是依赖于操作系统的。
如果你想要十进制输出,那就有点棘手了。你必须使用DIV指令除以10.你将得到从右到左的数字!!!