求一道汇编的数值输入与输出问题!!悬赏!

来源:百度知道 编辑:UC知道 时间:2024/04/30 00:07:47
编写一汇编语言程序,要求从键盘接收一个两位的十六进制数,并在终端上显示与它等值的二进制数。
写主要的程序体就OK了 周3之前最好!

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
mov ah,1
int 21h
ret
main endp
hexibin proc near
mov bl,0
mov si,2
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 bl,cl
add bl,al
dec si
jnz newchar
exit: ret
hexibin endp
binidec proc near
mov di,8
next2:
rol bl,1
mov dl,bl
and dl,1
add dl,30h
mov ah,display
int doscall
dec di
jnz next2
ret
binidec endp
crlf proc near
mov dl,0ah
mov ah,display
int doscall
mov dl,0dh
mov ah,display
int doscall
ret