比如ax=7bh 則輸出字元123。
原理:ax為十六位暫存器,所以輸出十進位制數範圍為0 - 65535,最大五位數,有如下演算法:
65535/10000= 商6 餘數5535
5535/1000= 商5 餘數535
535/100= 商5 餘數35
35/10= 商3 餘數5
5/1= 商5 餘數0
把每次所得商加上48即可得到相應數字的ascii碼
loop指令:
(cx)=(cx)-1或(ecx)=(ecx)-1;
如果(cx)≠0或(ecx)≠0,轉向「標號」所指向的指令,否則,終止迴圈,執行該指令下面的指令。
程式清單:
data segment
divisors dw 10000, 1000, 100, 10, 1
results db 0,0,0,0,0,"$" ;存放五位數ascii碼
data ends
stack segment stack
stack ends
code segment
assume cs:code,ds:data,ss:stack
start:
mov ax,data
mov ds,ax
mov ax,7bh ;7bh 要顯示的字元
mov si, offset divisors
mov di, offset results
mov cx,5
aa:mov dx,0
div word ptr [si] ;除法指令的被除數是隱含運算元,此處為dx:ax,商ax,餘數dx
add al,48 ;商加上48即可得到相應數字的ascii碼
mov byte ptr [di],al
inc di
add si,2
mov ax,dx
loop aa
mov cx,4
mov di, offset results
bb:cmp byte ptr [di],'0' ;不輸出前面的0字元
jne print
inc di
loop bb
print:
mov dx,di
mov ah,9
int 21h
mov ax,4c00h
int 21h
code ends
end start
Python中的十六進製制數
運算十進位制整數轉十六進製制整數用hex 十六進製制整數轉十進位制整數用int 類似地,十進位制整數轉二進位制整數用bin 十進位制整數轉八進位制整數用oct 描述 hex 函式用於將10進製整數轉換成16進製制,以字串形式表示。語法 hex x 引數說明 x 10進製整數 返回值 返回16進製制數...
彙編學習 一位十六進製制數轉換為十進位制數
程式執行效果如下 如題,此程式只能實現一位十六進製制數的轉換 具體 如下 datas segment buf db 5 dup msg1 db please input a hex number 13,10,設定提示 msg2 db the dec number 13,10,ctlf db 13,1...
c 十六進製制加法 16進製制數之間的加法
十六進製制 1.數碼 0.1.2 9.a.b.c.d.e.f.其中 十六進製制數碼 a b c d e f 十進位制數值 10 11 12 13 14 15 基數 16 2.計數規則 逢十六進一 借一當十六 3.按權展開式 按權展開每上十六進製制數.例 4e6c 4 16 3 e 16 2 6 16...