|
发表于 2014-5-6 10:24:16
|
显示全部楼层
data segment
a db 'y'
y db 'YES!$'
n db 'NO!$'
len db 2
data ends
code segment
assume ds:data,cs:code
start: mov ax,data
mov ds,ax
mov bx,offset a
lea dx,len
mov ah,0ah
int 21h
mov al,len+2
cmp al,[bx]
je s1
lea dx,n
mov ah,09
int 21h
jmp s0
s1: lea dx,y
mov ah,09
int 21h
s0: mov ax,4c00h
int 21h
code ends
end start
程序出错的原因是0ah号int 21中断的返回值不是在al中
入口参数:AH=0AH
DS:DX=存放输入字符的起始地址
接受输入字符串缓冲区的定义说明:
1、第一个字节为缓冲区的最大容量,可认为是入口参数;
2、第二个字节为实际输入的字符数(不包括回车键),可看作出口参数;
3、从第三个字节开始存放实际输入的字符串;
4、字符串以回车键结束,回车符是接受的最后一个字符;
5、若输入的字符数超过缓冲区的最大容量,则多出的部分被丢弃,系统并发出响铃,直到输入“回车”键才结束输入。 |
|