1
您好我目前正在編寫一個程序,我需要在屏幕上打印寄存器AX
的值。我想到的方法很少,但他們沒有奏效。任何想法如何使它?例如ax
= 0abcdh。寄存器,組件的打印值x8086
您好我目前正在編寫一個程序,我需要在屏幕上打印寄存器AX
的值。我想到的方法很少,但他們沒有奏效。任何想法如何使它?例如ax
= 0abcdh。寄存器,組件的打印值x8086
您必須將寄存器的值分成不同的部分。
示例:十六進制輸出:
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.你會得到從右到左的數字!
請提一下您嘗試過的是什麼以及您的錯誤是什麼。 –
轉換爲十六進制字符串,將其打印出來。有什麼問題?你的嘗試在哪裏? – Devolus