無符號數不需要擴充,硬要說的話在初始暫存器後你所謂的高位直接為零,至於要輸出:
比如你的結果存於暫存器(BX)=1234H,你要在螢幕上輸出
mov cl,4;移位時移動的位數
mov si,4;要移動4次,用si作為迴圈控制
a: ror bx,cl
mov dx,bx;將BX的內容放入DX中
and dl,0fh;輸出你當前BX中的最高位
cmp dl,9;判斷當前要輸出的資料是0-9還是a-f
ja h
add dl,30h;0-9加上30h變為相應字元的ascii
jmp go
h: add dl,57h;a-f加上57h變為a-f相應的ascii
mov ah,2
int 21h;呼叫2號中斷輸出當前dl中的內容,當前dl中的內容為ascii
dec si
cmp si,0
jz end
jmp a
end:mov ah,4ch;結束
int 21h
如果你要輸出的位數過高暫存器不夠用你又嫌麻煩可以將結果存於陣列或堆疊中,需要輸出的時候取出來就是了
無符號數不需要擴充,硬要說的話在初始暫存器後你所謂的高位直接為零,至於要輸出:
比如你的結果存於暫存器(BX)=1234H,你要在螢幕上輸出
mov cl,4;移位時移動的位數
mov si,4;要移動4次,用si作為迴圈控制
a: ror bx,cl
mov dx,bx;將BX的內容放入DX中
and dl,0fh;輸出你當前BX中的最高位
cmp dl,9;判斷當前要輸出的資料是0-9還是a-f
ja h
add dl,30h;0-9加上30h變為相應字元的ascii
jmp go
h: add dl,57h;a-f加上57h變為a-f相應的ascii
mov ah,2
int 21h;呼叫2號中斷輸出當前dl中的內容,當前dl中的內容為ascii
dec si
cmp si,0
jz end
jmp a
end:mov ah,4ch;結束
int 21h
如果你要輸出的位數過高暫存器不夠用你又嫌麻煩可以將結果存於陣列或堆疊中,需要輸出的時候取出來就是了