|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 server_test 于 2017-11-26 10:14 编辑
- data segment
- intip db "please intput number:$",0ah,0dh
- indata db 12,0,12 dup(0)
- data1 db "0dog "
- db "1am "
- db "2a "
- db "3love "
- db "4I "
- db "5is "
- db "6pig "
- db "7my "
- db "8and "
- db "9gaan "
- data ends
- code segment
- assume cs:code,ds:data
- start:mov ax,data ;寄存器初始化
- mov ds,ax
- lea dx,intip ;输入提示
- mov ah,9
- int 21h
- lea dx,indata ;把indata的偏移地址放入dx
- mov ah,0ah
- int 21h
- lea di,indata+1 ;di指向indata的首地址
- lea si,data1 ;si指向data1的首地址
- mov al,[di]
- cbw
- mov cx,ax
- inc di
- comc:push cx
- mov cx,10
- comr:mov dl,[di]
- mov al,[si]
- cmp dl,al ;number匹配,ZF=0
- jz next2
- add si,10
- loop comr
- next1:inc di
- lea si,data1
- pop cx
- loop comc
- jmp finish
- next2:mov cx,10
- mov bx,1 ;bx置位
- char:mov dl,[si+bx] ;输出显示字符串
- mov ah,2
- int 21h
- inc bx
- mov al,dl
- cmp al,20h ;ZF置1,识别空格
- loopnz char
- jmp next1
- finish:mov ah,4ch
- int 21h
- code ends
- end start
-
-
复制代码
将第2行改为:
intip db "please intput number:",0ah,0dh,"$"
不会被覆盖。
应该是int 21h的“0ah”功能最后输入回车符的时候,光标位置回到行首。
因此,再次显示的时候从行首开始显示,因此覆盖了原来显示的内容。
|
-
|