汇编语言1道编程

来源:百度知道 编辑:UC知道 时间:2024/05/28 02:28:23
键盘输入一个16进制的数,转化为10进制的数,然后显示在屏幕上。
给个完整的程序吧,别说过程和方法,这些我都懂,就是程序有错误

display equ 2h
key_in equ 1h
doscall equ 21h
hexidec segment
main proc far
assume cs:hexidec
start: push ds
sub ax,ax
push ax
call hexibin
call crlf
call binidec
call crlf
jmp start
ret
main endp
hexibin proc near
mov bx,0
newchar:mov ah,key_in
int doscall
sub al,30h
jl exit
cmp al,9d
jle add_to
sub al,27h
cmp al,0ah
jl exit
cmp al,0fh
jg exit
add_to: mov cl,4
shl bx,cl
mov ah,0
add bx,ax
jmp newchar
exit: ret
hexibin endp
binidec proc near
mov cx,10000d
call dec_div
mov cx,1000d
call dec_div
mov cx,100d
call dec_div
mov cx,10d
call dec_div
mov cx,1d
call dec_div
ret
dec_div proc near
mov ax,bx
mov dx,0
div cx
mov bx,dx
mov dl,al
add dl,30h
mov ah,display
int doscal