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

📄 十六进制与十进制的互换.asm

📁 绝对好用
💻 ASM
字号:
data    segment

s0       db      '>>>>Press any other key to Exit.',0ah,0dh,'$'
s1       db      '---- 1. DEC to HEX.',0ah,0dh,'$' 
s2       db      '---- 2. HEX to DEC.',0ah,0dh,'$' 
s3       db      'Make a Choice: ',0dh,0ah,'$'
s4       db      '*****Writen by Fang xiaolin, No. 0227340623.*****',0dh,0ah,'$'
s5       db      ' ',0dh,0ah,'$'
s6       db      'Please Input the DEC number which smaller than 65535. > ',0dh,0ah,'$'
s7       db      'The HEX number is:',0dh,0ah,'$'
s8       db      'Please Input the HEX number of less than 4 digitals. > ',0dh,0ah,'$'
s9       db      'The DEC number is: ',0dh,0ah,'$'
s10	 db	 'The Title:  Covertion between DEC and HEX.',0dh,0ah,'$'
data     ends

        assume cs:proc
proc     segment
main     proc
        assume ds:data
start:
        push    ds
        sub     ax,ax
        push    ax
        mov     ax,data
        mov     ds,ax
        lea     dx,s5
        call    exit
	lea	dx,s4
	call	exit
	lea	dx,s5
	call	exit
	lea	dx,s10
	call	exit
	lea	dx,s5
	call	exit
        lea     dx,s1
        call    exit
        lea     dx,s2      
        call    exit      
        lea     dx,s0      
        call    exit
	lea	dx,s5
	call	exit
        lea     dx,s3      
        call    exit         
        mov     ah,09h  
        call    decibin 
        call    crlf
        cmp     bx,1
        jz      D2H
        cmp     bx,2
        jz      H2D
        mov     ax,data
        mov     ds,ax 
        mov     ah,4ch       
        int     21h 
exit     proc
        mov     ah,09h
	int	21h
	ret
exit     endp 
        ret
main     endp
D2H      proc
	lea	dx,s6
	call	exit
        call    decibin
        call    crlf
        lea     dx,s7
	call	exit
        call    binihex
        call    crlf
        ret  
D2H      endp
H2D      proc
        lea     dx,s8
	call	exit
        push    ds
        sub     ax,ax       
        push    ax      
        call    hexibin
        call    crlf
        lea     dx,s9
	call	exit
        call    binidec
        call    crlf
	ret 
H2D      endp

decibin  proc
        mov     bx,0
new1:
        mov     ah,1
        int     21h
        sub     al,30h
        jl      exit1
        cmp     al,9d 
        jg      exit1
        cbw
        xchg    ax,bx
        mov     cx,10d
        mul     cx
        xchg    ax,bx
        add     bx,ax
        jmp     new1
exit1:
        ret
decibin  endp
binihex  proc
        mov     ch,4
rotate:
        mov     cl,4
        rol     bx,cl
        mov     al,bl
        and     al,0fh
        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
hexibin  proc
        mov     bx,0
new2:
        mov     ah,1h
        int     21h
        sub     al,30h
        jl      exit2
        cmp     al,10d
        jl      add_to
        sub     al,27h
        cmp     al,0ah
        jl      exit2
        cmp     al,10h
        jge     exit2
add_to:
        mov     cl,4
        shl     bx,cl
        mov     ah,0
        add     bx,ax
        jmp     new2
exit2:  ret
hexibin  endp
binidec  proc
         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
         mov    ax,bx
         mov    dx,0
         div    cx 
         mov    bx,dx
         mov    dl,al
         add    dl,30h
         mov    ah,2h
         int    21h
         ret
dec_div   endp
binidec   endp
crlf      proc
         mov    dl,0ah
         mov    ah,2h
         int    21h
         mov    dl,0dh
         mov    ah,2h
         int    21h
         ret
crlf      endp
proc      ends
          end   start

⌨️ 快捷键说明

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