将bcd码转化为二进制数
data segment
bcd db 1,2,3,4,5 ;bcd码
a dw ? ; 用于存放bcd码转化后的十六进制数
data ends
stack segment para stack'stack'
stapn dw 50 dup(?)
stack ends
code segment
main proc far
assume ds:data,cs:code,ss:stack
start:
;set up stack to retuan
;set DS register to current segment
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
;maim part of the code goes here
call convert ;调用子程序
mov a,bx
ret
main endp
convert proc near
push si
push cx
push ax
mov si,4
l1:mov al,bcd[si]
cbw
;digit is now in ax
;multiply number in bx by 10 decimal
xchg ax, bx
mov cx,10d
mul cx
xchg ax,bx
;Add digit in ax to number in bx
add bx,ax
dec si
jnz l1
pop ax
pop cx
pop si
exit:mov ah,4ch
int 21h
convert endp
code ends
end start
BCD码转换
本文介绍了一个使用汇编语言实现的BCD码到二进制数的转换程序。该程序通过循环处理每一位BCD码,将其转换为对应的二进制数值,并累加得到最终的十六进制数。
4905

被折叠的 条评论
为什么被折叠?



