实训汇编语言设计——将bcd码转化为二进制数
将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