在汇编中显示一个字符的 ASCII 代码
Displaying the ASCII-Code of a char in assembly
我对汇编有点陌生,我想知道如何获取字符 ASCII 代码并打印出该 ASCII 代码。我正在使用 MASM (Dosbox)。
MOV AX, 'A' ; -> I want to print out the ASCII code of 'A'
感谢您的回答!
来自评论
MOV AX, 'A'
MOV BX, 10
DIV BL
MOV AH, 2
INT 21h
这个字节大小的除法将在 AL
中留下商,在 AH
中留下余数。
但是 DOS.PrintCharacter 函数 02h 需要它在 DL
寄存器中的输入。
After DIV: ADD AH, 48
ADD AL, 48
可以转换,但您可以使用 ADD AX, 3030h
一次性完成
I got this output: ##
尝试下一个代码:
mov ax, 'A'
mov bl, 10
div bl
add ax, 3030h
mov dx, ax ; Moving tens "6" to DL for printing and preserving the units in DH
mov ah, 02h ; DOS.PrintCharacter
int 21h
mov dl, dh ; units "5"
mov ah, 02h ; DOS.PrintCharacter
int 21h
Displaying numbers with DOS 有关于如何处理更大数字的详细解释。
我对汇编有点陌生,我想知道如何获取字符 ASCII 代码并打印出该 ASCII 代码。我正在使用 MASM (Dosbox)。
MOV AX, 'A' ; -> I want to print out the ASCII code of 'A'
感谢您的回答!
来自评论
MOV AX, 'A'
MOV BX, 10
DIV BL
MOV AH, 2
INT 21h
这个字节大小的除法将在 AL
中留下商,在 AH
中留下余数。
但是 DOS.PrintCharacter 函数 02h 需要它在 DL
寄存器中的输入。
After DIV:
ADD AH, 48
ADD AL, 48
可以转换,但您可以使用 ADD AX, 3030h
I got this output: ##
尝试下一个代码:
mov ax, 'A'
mov bl, 10
div bl
add ax, 3030h
mov dx, ax ; Moving tens "6" to DL for printing and preserving the units in DH
mov ah, 02h ; DOS.PrintCharacter
int 21h
mov dl, dh ; units "5"
mov ah, 02h ; DOS.PrintCharacter
int 21h
Displaying numbers with DOS 有关于如何处理更大数字的详细解释。