?? m1.asm
字號:
.model small
.stack
.data
string db 'Please input 8 binary number:',0dh,0ah,'$'
.code
.startup
mov ah,9
lea dx,string
int 21h
call decibin
call crlf
mov ah,2
mov dl,'='
int 21h
call binihex
call binidec
call crlf
.exit 0
decibin proc near
mov bx,0
newchar:mov ah,1
int 21h
sub al,30h
jl exit
cmp al,1
jg exit
cbw
xchg ax,bx
mov cx,2
mul cx
xchg ax,bx
add bx,ax
jmp newchar
exit:
ret
decibin endp
binihex proc near
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
mov dl,'H'
mov ah,2
int 21h
mov ah,2
mov dl,'='
int 21h
ret
binihex endp
binidec proc near
;不用將上個子程序中的ax包春在bx中。
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 near
mov ax,bx
mov dx,0
div cx
mov bx,dx
mov dl,al
add dl,30h
mov ah,2
int 21h
ret
dec_div endp
binidec endp
crlf proc near
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
ret
crlf endp
end
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -