主题:请教一个问题!!
yuzhiyong
[专家分:0] 发布于 2006-06-05 19:15:00
编程实现一个十进制数(0——65535)转换成十六进制数。
要求:十进制数由键盘输入,结果在屏幕上显示出来。
回复列表 (共1个回复)
沙发
名无 [专家分:80] 发布于 2006-06-06 01:54:00
data segment
data ends
;*************************
code segment
assume cs:code,ds:data,es:data
main proc
start:
mov ax,data
mov ds,ax
mov es,ax
call decibin
mov ah,02
mov dl,0ah
int 21h
mov ah,02
mov dl,0dh
int 21h
call binihex
exit:
mov ah,4ch
int 21h
main endp
;-------------------------------
decibin proc near uses ax dx
mov bx,0
newchar:
mov ah,1h
int 21h
sub al,30h
jl dib_re
cmp al,9
jg dib_re
cbw
xchg ax,bx
mov cx,10
mul cx
xchg ax,bx
add bx,ax
jmp newchar
dib_re:
ret
decibin endp
;-------------------------------
binihex proc near uses ax cx dx
mov ch,4
rotate:
mov cl,4
rol bx,cl
mov al,bl
and al,0fh
add al,30h
cmp al,3ah
jl print
add al,7h
print:
mov dl,al
mov ah,2
int 21h
dec ch
jnz rotate
ret
binihex endp
;----------------------------------
code ends
;-------------------------------
end start
我来回复