汇编语言: 试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不 是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空 格符不存入),直到接收

本文介绍了一个简单的程序设计案例,该程序要求用户首先输入一个空格作为启动信号,随后连续输入字符直至第二个空格出现为止。所有有效字符将被存储到指定的缓冲区中。文章详细解释了程序的工作流程及实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不 是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空 格符不存入),直到接收到第二个空格符时退出程序。

data segment
buf db 101,0,101 dup(?)
sapce db 0ah,'it is not a space !',0ah,'$'
data ends

stack segment stack
dw 20h dup(?)
top label word
stack ends

code segment
    assume ds:data,cs:code,ss:stack
    p proc far 

    mov ax,data
    mov ds,ax

    mov ax,stack
    mov ss,ax
    lea sp,top
    ;///

    ;get sapce in al
    mov ah,01h
    int 21h
    cmp al,' '
    jne notpace

    lea si,buf
    inc si
    inc si
    lea di,buf
    inc di

input:  
    mov ah,01h
    int 21h
    cmp al,' '
    je inputEnd
    mov [si],al
    inc si
    inc BYTE PTR [di]
    jmp input


notpace:
    lea dx,sapce
    mov ah,09h
    int 21h
    mov ah,4ch
    int 21h

inputEnd:   

    mov cl,[di]
    lea di,buf
    inc di  
    inc di  
l1: mov dl,[di]
    mov ah,02h
    inc di
    int 21h
    loop l1

    mov ah,4ch
    int 21h

    p endp
code ends 
    end p
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值