アセンブリ言語:プログラムを作成してみます.キーボードから1行の文字を入力します.最初に入力した文字はスペース記号でなければなりません.そうでなければ、プログラムを終了します.もしそうであれば、入力した文字の受信を開始し、最初のアドレスがbufferのバッファに順番に格納します(スペース文字は格納されません).受信するまで
2449 ワード
プログラムを作成してみます.キーボードから1行の文字を入力し、最初に入力した文字がスペースでなければならないことを要求します.そうでなければ、プログラムを終了します.もしそうであれば、入力した文字の受信を開始し、最初のアドレスがbufferのバッファに順番に格納します(スペース記号は格納されません).2番目のスペース記号が受信されるまでプログラムを終了します.
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