实现功能:从键盘输入“yes”,则输出“Y”;如果不是yes(或者说输入“no”),则输出“N”。
程序如下:不知有什么毛病?
datarea segment
string db 10,0
mess1 db 10 dup(?)
mess2 db 'yes'
input db 'Input: ','$'
clrf db 13,10,'$'
datarea ends
prognam segment
assume cs:prognam,ds:datarea,es:datarea
start:
push ds
sub ax,ax
push ax
mov ax,datarea
mov ds,ax
mov es,ax
lea dx,input ; 输入字符串
mov ah,09h
int 21h
mov ah,0ah
lea dx,string
int 21h
lea dx,clrf ; 输出回车换行
mov ah,09h
int 21h
lea si,mess1
lea di,mess2
mov cx,10
repz cmpsb ; 字符串比较
jz link
mov dl,'N'
jmp notlink
link:
mov dl,'Y'
notlink:
mov ah,02h
int 21h
mov ah,4ch
int 21h
prognam ends
end start
------解决方案--------------------------------------------------------
- Assembly code
datarea segment string db 10,0 mess1 db 10 dup(0) mess2 db 'yes',13 input db 'Input: ', '$ ' clrf db 13,10, '$ ' datarea ends prognam segment assume cs:prognam,ds:datarea,es:datarea start: push ds sub ax,ax push ax mov ax,datarea mov ds,ax mov es,ax lea dx,input ; 输入字符串 mov ah,09h int 21h mov ah,0ah lea dx,string int 21h lea dx,clrf ; 输出回车换行 mov ah,09h int 21h lea si,mess1 lea di,mess2 mov cx,3 repz cmpsb ; 字符串比较 jz link mov dl, 'N' jmp notlink link: mov dl, 'Y' notlink: mov ah,02h int 21h mov ah,4ch int 21h prognam ends end start