各位大神,请问dos 2号功能调用输出的结果为什么会覆盖9号功能输出的结果?求解
本帖最后由 server_test 于 2017-11-26 10:14 编辑data segment
intip db "please intput number:$",0ah,0dh
indata db 12,0,12 dup(0)
data1db "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,
cbw
mov cx,ax
inc di
comc:push cx
mov cx,10
comr:mov dl,
mov al,
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, ;输出显示字符串
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”功能最后输入回车符的时候,光标位置回到行首。
因此,再次显示的时候从行首开始显示,因此覆盖了原来显示的内容。 兰陵月 发表于 2017-11-26 15:41
将第2行改为:
intip db "please intput number:",0ah,0dh,"$"
谢谢大神 server_test 发表于 2017-11-26 20:27
谢谢大神
一起学习,一起进步。
页:
[1]