读书人

见见这个程序

发布时间: 2013-01-02 13:08:44 作者: rapoo

看看这个程序
键盘输入十进制数输出二进制

data segment
a dw 0
input db 'please input the 10 number:$'
ero db 'error!please input again!$'
data ends
cod segment
assume cs:cod,ds:data
start:mov ax,data
mov ds,ax
call receive
call enter
call disp
mov ah,4ch
int 21h
receive proc
mov bx,0
mov dx,offset input
mov ah,9
int 21h
mov bx,0
next: mov ah,1
int 21h
cmp al,0dh
jz return
cmp al,30h
jb err
cmp al,3ah
jb num

jmp err
num: sub al,30h
jmp save

err: call enter
mov dx,offset ero
mov ah,9
int 21h
jmp next
save:mov cl,3
mov a,0
mov a,bx
shl bx,cl
mov cl,1
shl a ,cl

adc bx,a
add bx,ax




jmp next
return: ret
receive endp
enter proc
mov ah,2
mov dl,0dh
int 21h
mov dl,0ah
int 21h
ret


enter endp
disp proc
mov cx,16
rotate:shl bx,1
jc disp_1
mov dl,30h
jmp disp_bit
disp_1:mov dl,31h
disp_bit:mov ah,2
int 21h
loop rotate
mov ah,2
mov dl,'B'
INT 21H
ret
disp endp
cod ends
end start


[解决办法]
data segment
a dw 0
input db 'please input the 10 number:$'
ero db 'error!please input again!$'
data ends
cod segment
assume cs:cod,ds:data
start:mov ax,data
mov ds,ax
call receive
call enter
call disp
mov ah,4ch
int 21h
receive proc
mov bx,0
mov dx,offset input
mov ah,9
int 21h
mov bx,0
next: mov ah,1
int 21h
cmp al,0dh
jz return
cmp al,30h
jb err
cmp al,3ah
jb num

jmp err
num: sub al,30h
jmp save

err: call enter
mov dx,offset ero
mov ah,9
int 21h
jmp next
save:mov cl,3


mov a,0
mov a,bx
shl bx,cl
mov cl,1
shl a ,cl

adc bx,a
add bl,al




jmp next
return: ret
receive endp
enter proc
mov ah,2
mov dl,0dh
int 21h
mov dl,0ah
int 21h
ret
enter endp
disp proc
mov cx,16
rotate:shl bx,1
jc disp_1
mov dl,30h
jmp disp_bit
disp_1:mov dl,31h
disp_bit:mov ah,2
int 21h
loop rotate
mov ah,2
mov dl,'B'
INT 21H
ret
disp endp
cod ends
end start

行了

读书人网 >汇编语言

热点推荐