📄 p225.asm
字号:
display equ 2
key_in equ 1
doscall equ 21h
code segment
main proc far
assume cs:code
push ds
sub ax,ax
push ax
repeat:
call hexibin
cmp bx,0
jz exit1
call crlf
call binidec
call crlf
jmp repeat
exit1:
ret
main endp
hexibin proc near ;十六进制转化为二进制
mov bx,0
newchar:
mov ah,key_in
int doscall ;从键盘接受一个字符
sub al,30h
jl exit ;字符小于0退出
cmp al,10
jl add_to ;字符大于0小于9
sub al,27h ;不是0~9之间的数字,减去27h,变为a~f的真值
cmp al,0ah
jl exit ;小于a,退出
cmp al,10h
jge exit
add_to:
mov cl,4
shl bx,cl ;bx乘以16
mov ah,0
add bx,ax
jmp newchar
exit:
ret
hexibin endp
binidec proc near ;二进制转化为10进制
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,1
call dec_div
ret
binidec endp
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 doscall
ret
dec_div endp
crlf proc near
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
ret
crlf endp
code ends
end main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -