姑且將你的“兩位數”理解成“16進位制的兩位數”,以下是一個顯示AH暫存器內容(假設為4F)的示例:
.COM檔案格式,MASM5.0編譯透過
code segment
main proc far
assume cs:code,ds:code
org 100h
start:
mov ah,4fh ;假設要顯示AH暫存器的內容(4F)
mov al,ah ;複製到AL
and ax,0f00fh ;AX=400F(H)
mov cl,4
ror ah,cl ;AX=040F(H)
cmp ah,9
jg be_l
add ah,30h ;是數字
jmp n1
be_l:
add ah,41h-0ah ;是字母
n1:
cmp al,9
jg be_l2
add al,30h ;是數字
jmp n2
be_l2:
add al,41h-0ah ;是字母
n2:
push ax ;AX=3446(H),已轉換成相應的ASCII碼。
pop dx
mov ah,2 ;呼叫DOS顯示功能
xchg dh,dl
int 21h ;顯示"4"
int 21h ;顯示"F"
int 20h ;程式結束,返回DOS
main endp
code ends
end start
姑且將你的“兩位數”理解成“16進位制的兩位數”,以下是一個顯示AH暫存器內容(假設為4F)的示例:
.COM檔案格式,MASM5.0編譯透過
code segment
main proc far
assume cs:code,ds:code
org 100h
start:
mov ah,4fh ;假設要顯示AH暫存器的內容(4F)
mov al,ah ;複製到AL
and ax,0f00fh ;AX=400F(H)
mov cl,4
ror ah,cl ;AX=040F(H)
cmp ah,9
jg be_l
add ah,30h ;是數字
jmp n1
be_l:
add ah,41h-0ah ;是字母
n1:
cmp al,9
jg be_l2
add al,30h ;是數字
jmp n2
be_l2:
add al,41h-0ah ;是字母
n2:
push ax ;AX=3446(H),已轉換成相應的ASCII碼。
pop dx
mov ah,2 ;呼叫DOS顯示功能
xchg dh,dl
int 21h ;顯示"4"
xchg dh,dl
int 21h ;顯示"F"
int 20h ;程式結束,返回DOS
main endp
code ends
end start