主题:帮我看看那里错了
这是一个判断是否是BOY的程序。题目是这样的
1.运行程序显示字符串:
Are you a boy?
please input a char(Y/y/N/n)!
2.说明:用户键入一个 字符,情况有5种
(1)若为大写Y则显示:I am a boy!(返回DOS)
(2)若为小写y显示:I am a boy!(返回DOS)
(3)若为大写N则显示:No,I am not boy,I am girl.(返回DOS)
(4)若为小写n显示:No,I am not boy,I am girl.(返回DOS)
(5)若不是以上4种情况则显示:Input error reapt Input
我是这样写的:
data SEGMENT
qu_1 DB 'Are you a boy? Please input a char(Y/y/N/n):$'
an_1 DB 'I am a boy!$'
an_2 DB 'I am not a boy!$'
an_3 DB 'Input error reapt input.$'
data ENDS
stack SEGMENT
DB 200 DUP(0)
stack ENDS
code SEGMENT
ASSUME DS:data,SS:stack,CS:code
start: MOV AX,data
MOV DS,AX
LEA DX,qu_1 ;show qu_1
MOV AH,9
INT 21h
MOV AH ,1
INT 21h
CMP AL,'y' ;if y goto 1
JNZ tt
CMP AL,'Y'
JNZ tt
CMP AL,'n'
JNZ tt1
CMP AL,'N'
JNZ tt1
LEA DX,an_3 ;not show an_3
MOV AH,9
INT 21
JMP hui ;goto dos
tt: LEA DX,an_1 ;show an_1
MOV AH,9
INT 21
JMP hui
tt1:LEA DX,an_2 ;show an_2
MOV AH,9
INT 21
JMP hui
hui:MOV AH,4ch ;goto dos
INT 21
code ENDS
END start
编译出来没有错,但是运行只能看见第一个输出段,以后就没有反应了,不知道那里错了。请各位指点一下,非常感谢。
1.运行程序显示字符串:
Are you a boy?
please input a char(Y/y/N/n)!
2.说明:用户键入一个 字符,情况有5种
(1)若为大写Y则显示:I am a boy!(返回DOS)
(2)若为小写y显示:I am a boy!(返回DOS)
(3)若为大写N则显示:No,I am not boy,I am girl.(返回DOS)
(4)若为小写n显示:No,I am not boy,I am girl.(返回DOS)
(5)若不是以上4种情况则显示:Input error reapt Input
我是这样写的:
data SEGMENT
qu_1 DB 'Are you a boy? Please input a char(Y/y/N/n):$'
an_1 DB 'I am a boy!$'
an_2 DB 'I am not a boy!$'
an_3 DB 'Input error reapt input.$'
data ENDS
stack SEGMENT
DB 200 DUP(0)
stack ENDS
code SEGMENT
ASSUME DS:data,SS:stack,CS:code
start: MOV AX,data
MOV DS,AX
LEA DX,qu_1 ;show qu_1
MOV AH,9
INT 21h
MOV AH ,1
INT 21h
CMP AL,'y' ;if y goto 1
JNZ tt
CMP AL,'Y'
JNZ tt
CMP AL,'n'
JNZ tt1
CMP AL,'N'
JNZ tt1
LEA DX,an_3 ;not show an_3
MOV AH,9
INT 21
JMP hui ;goto dos
tt: LEA DX,an_1 ;show an_1
MOV AH,9
INT 21
JMP hui
tt1:LEA DX,an_2 ;show an_2
MOV AH,9
INT 21
JMP hui
hui:MOV AH,4ch ;goto dos
INT 21
code ENDS
END start
编译出来没有错,但是运行只能看见第一个输出段,以后就没有反应了,不知道那里错了。请各位指点一下,非常感谢。