10162.asm

来自「在键盘上输入一个十进制的数字 可以转换成一个十六进制和二进制的数输出」· 汇编 代码 · 共 78 行

ASM
78
字号
decihex segment
         assume cs:decihex
main  proc far
repeat:  call decibin   
         call crlf
         call decibin1
         call crlf
         call binihex
         call crlf
         jmp repeat
main endp
decibin proc near
        mov bx,0
newchar:
        mov ah,1
        int 21h
        sub al,30h
        jl  exit
        cmp al,9d  
        jg  exit
        cbw
        xchg ax,bx
        mov cx,10d
        mul cx
        xchg ax,bx
        add bx,ax
        jmp newchar
exit:
        ret
decibin endp
decibin1 proc near
         mov ch,16
rotate1: mov cl,1
         rol bx,cl
         mov al,bl
         and al,01h
         add al,30h


         
printit1:
         mov dl,al
         mov ah,2
         int 21h
         dec ch
         jnz rotate1
         ret
decibin1 endp
binihex proc near
        mov ch,4
rotate: mov cl,4      ;set count to 4 bits
        rol bx,cl     ;left digit to right
        mov al,bl     ;move to al
        and al,0fh    ;mask off left digit
        add al,30h
        cmp al,3ah
        jl  printit
        add al,7h
printit:
        mov dl,al
        mov ah,2
        int 21h
        dec ch
        jnz rotate
        ret
binihex endp
crlf proc near
        mov dl,0dh
        mov ah,2
        int 21h
        mov dl,0ah
        mov ah,2
        int 21h
        ret
 crlf endp
 decihex ends
         end main

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?