¡¡
¡¡¡¡¡¡display ¡¡¡¡¡¡equ ¡¡¡¡¡¡2h ¡¡¡¡¡¡¡¡; ÏÔʾµ¥¸ö×Ö·ûµÄ¹¦ÄܺÅÊÇ2
¡¡¡¡¡¡key_in ¡¡¡¡¡¡ equ ¡¡¡¡¡¡1h ¡¡¡¡¡¡¡¡; ¼üÅÌÊäÈëµ¥¸ö×Ö·ûµÄ¹¦ÄܺÅÊÇ1
¡¡¡¡¡¡doscall ¡¡¡¡¡¡equ ¡¡¡¡¡¡21h ¡¡¡¡¡¡ ; DOSÖжϺÅ

¡¡¡¡hexidec ¡¡¡¡¡¡¡¡segment
¡¡¡¡¡¡main ¡¡¡¡¡¡¡¡ proc ¡¡¡¡ far
¡¡¡¡¡¡assume ¡¡¡¡¡¡ cs:hexidec
¡¡start:
¡¡¡¡¡¡push ¡¡¡¡¡¡¡¡ ds
¡¡¡¡¡¡sub ¡¡¡¡¡¡¡¡¡¡ax,ax
¡¡¡¡¡¡push ¡¡¡¡¡¡¡¡ ax

¡¡¡¡¡¡call ¡¡¡¡¡¡¡¡ hexibin ¡¡¡¡¡¡¡¡¡¡¡¡; Ê®Áù½øÖÆת»»³É¶þ½øÖÆ
¡¡¡¡¡¡call ¡¡¡¡¡¡¡¡ crlf ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ; ÏÔʾ»Ø³µºÍ»»ÐÐ
¡¡¡¡¡¡call ¡¡¡¡¡¡¡¡ binidec ¡¡¡¡¡¡¡¡¡¡¡¡; ¶þ½øÖÆת»»³ÉÊ®½øÖÆ
¡¡¡¡¡¡call ¡¡¡¡¡¡¡¡ crlf
¡¡¡¡¡¡¡­¡­
¡¡¡¡¡¡ret
¡¡¡¡¡¡main ¡¡¡¡¡¡¡¡ endp

¡¡¡¡¡¡; ¶¨Òå×Ó³ÌÐòhexibin(Ê®Áù½øÖÆת»»³É¶þ½øÖÆ,½á¹ûÔÚbxÖÐ)
¡¡¡¡¡¡hexibin ¡¡¡¡¡¡proc ¡¡¡¡¡¡¡¡near
¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡ bx,0
¡¡newchar:
¡¡¡¡¡¡mov ¡¡¡¡¡¡¡¡¡¡ah,key_in
¡¡¡¡¡¡int ¡¡¡¡¡¡¡¡¡¡doscall ¡¡¡¡¡¡¡¡¡¡¡¡; ¼üÅÌÊäÈëµ¥¸ö×Ö·û
¡¡¡¡¡¡sub ¡¡¡¡¡¡¡¡¡¡al,30h
¡¡¡¡¡¡jl ¡¡¡¡¡¡¡¡¡¡ exit
¡¡¡¡¡¡cmp ¡¡¡¡¡¡¡¡¡¡al,10d
¡¡¡¡¡¡jl ¡¡¡¡¡¡¡¡¡¡ add_to ¡¡¡¡¡¡¡¡¡¡¡¡ ; 0¡«9Ö®¼äתadd_to
¡¡¡¡; ÅжÏÊÇ·ña¡«fÖ®¼ä('a'µÄASCIIÂëΪ61h)
¡¡¡¡¡¡sub ¡¡¡¡¡¡¡¡¡¡al,27h
¡¡¡¡¡¡cmp ¡¡¡¡¡¡¡¡¡¡al,0ah
¡¡¡¡¡¡jl ¡¡¡¡¡¡¡¡¡¡ exit
¡¡¡¡¡¡cmp ¡¡¡¡¡¡¡¡¡¡al,10h
¡¡¡¡¡¡jge ¡¡¡¡¡¡¡¡¡¡exit
¡¡¡¡; 0¡«9»òa¡«f
¡¡add_to:
¡¡¡¡¡¡mov ¡¡¡¡¡¡¡¡¡¡cl,4
¡¡¡¡¡¡shl ¡¡¡¡¡¡¡¡¡¡bx,cl ¡¡¡¡¡¡¡¡¡¡¡¡¡¡; (bx)*16
¡¡¡¡¡¡mov ¡¡¡¡¡¡¡¡¡¡ah,0
¡¡¡¡¡¡add ¡¡¡¡¡¡¡¡¡¡bx,ax
¡¡¡¡¡¡jmp ¡¡¡¡¡¡¡¡¡¡newchar
¡¡¡¡exit:
¡¡¡¡¡¡ret
¡¡¡¡¡¡hexibin ¡¡¡¡¡¡endp

¡¡¡¡; ¶¨Òå×Ó³ÌÐòbinidec(¶þ½øÖÆת»»³ÉÊ®½øÖÆ)
¡¡¡¡¡¡binidec ¡¡¡¡¡¡proc ¡¡¡¡¡¡near
¡¡¡¡¡¡mov ¡¡¡¡¡¡¡¡¡¡cx,10000d
¡¡¡¡¡¡call ¡¡¡¡¡¡¡¡ dec_div ¡¡¡¡¡¡¡¡¡¡¡¡; bx±»10000³ý
¡¡¡¡¡¡mov ¡¡¡¡¡¡¡¡¡¡cx,1000d
¡¡¡¡¡¡call ¡¡¡¡¡¡¡¡ dec_div ¡¡¡¡¡¡¡¡¡¡¡¡; bx±»1000³ý
¡¡¡¡¡¡mov ¡¡¡¡¡¡¡¡¡¡cx,100d
¡¡¡¡¡¡call ¡¡¡¡¡¡¡¡ dec_div ¡¡¡¡¡¡¡¡¡¡¡¡; bx±»100³ý
¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡ cx,10d
¡¡¡¡¡¡call ¡¡¡¡¡¡¡¡ dec_div ¡¡¡¡¡¡¡¡¡¡¡¡; bx±»10³ý
¡¡¡¡¡¡mov ¡¡¡¡¡¡¡¡¡¡cx,1d
¡¡¡¡¡¡call ¡¡¡¡¡¡¡¡ dec_div ¡¡¡¡¡¡¡¡¡¡¡¡; bx±»1³ý
¡¡¡¡¡¡ret
¡¡¡¡¡¡; ¶¨Òå×Ó³ÌÐòdec_div(Ê®½øÖƳý)
¡¡¡¡¡¡dec_div ¡¡¡¡¡¡proc ¡¡¡¡¡¡near
¡¡¡¡¡¡mov ¡¡¡¡¡¡¡¡¡¡ax,bx
¡¡¡¡¡¡mov ¡¡¡¡¡¡¡¡¡¡dx,0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ; ±»³ýÊýÔÚdx:axÖÐ
¡¡¡¡¡¡div ¡¡¡¡¡¡¡¡¡¡cx
¡¡¡¡¡¡mov ¡¡¡¡¡¡¡¡¡¡bx,dx ¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ÓàÊýËÍbx
¡¡¡¡¡¡mov ¡¡¡¡¡¡¡¡¡¡dl,al ¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ÉÌËÍdl

¡¡¡¡¡¡add ¡¡¡¡¡¡¡¡¡¡dl,30h
¡¡¡¡¡¡mov ¡¡¡¡¡¡¡¡¡¡ah,display
¡¡¡¡¡¡int ¡¡¡¡¡¡¡¡¡¡doscall ¡¡¡¡¡¡¡¡¡¡¡¡; ÏÔʾµ¥¸ö×Ö·û
¡¡¡¡¡¡ret
¡¡¡¡¡¡dec_div ¡¡¡¡¡¡endp
¡¡¡¡¡¡binidec ¡¡¡¡¡¡endp

¡¡¡¡¡¡crlf ¡¡¡¡¡¡¡¡ proc ¡¡¡¡¡¡near
¡¡¡¡¡¡mov ¡¡¡¡¡¡¡¡¡¡dl,0ah
¡¡¡¡¡¡mov ¡¡¡¡¡¡¡¡¡¡ah,display
¡¡¡¡¡¡int ¡¡¡¡¡¡¡¡¡¡doscall

¡¡¡¡¡¡mov ¡¡¡¡¡¡¡¡¡¡dl,0dh
¡¡¡¡¡¡mov ¡¡¡¡¡¡¡¡¡¡ah,display
¡¡¡¡¡¡int ¡¡¡¡¡¡¡¡¡¡doscall
¡¡¡¡¡¡ret
¡¡¡¡¡¡crlf ¡¡¡¡¡¡¡¡ endp

¡¡¡¡¡¡hexidec ¡¡¡¡¡¡ends
¡¡¡¡¡¡end ¡¡¡¡¡¡¡¡¡¡start