汇编题目超简单!帮!

来源:百度知道 编辑:UC知道 时间:2024/06/07 22:44:20
主程序从键盘输入N位2进制数到缓冲区,用子程序将其转换为2进制数串显示.主程序与子程序共用数据缓冲区.

data segment
buf db 30 dup(?)
count dw 0;计数器,统计输入二进制位数
data ends

code segment
assume cs:code,ds:data
main proc near
start:
mov ax,data
mov ds,ax;初始化

mov si,0
loop1:
mov ah,01h
int 21h
mov bl,al
cmp bl,0dh
je m1;接收字符为回车则转向m1
jmp m2;否则转向m2继续接收字符并存入缓冲区
m1:
call crlf;调用回车换行子程序
call show;显示缓冲区内容并返回DOS
jmp exit
m2:
inc count
mov buf[si],bl
inc si
jmp loop1
exit:
mov ah,4ch
int 21h
ret
main endp

show proc near;显示子程序
mov si,0
mov cx,count
loop2:
mov dl,buf[si]
mov ah,02h
int 21h
inc si
loop loop2;循环输出字符
ret
show endp

crlf proc near;回车换行子程序
mov dl,0dh
mov ah,02h
int 21h
mov dl,0ah
mov ah,02h
int 21h
ret
crlf endp

code ends
end start