⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p225.asm

📁 本书为清华大学第二版汇编语言的课后题详解
💻 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 + -