server_test 发表于 2017-11-26 10:04:22

各位大神,请问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
       
       

兰陵月 发表于 2017-11-26 15:41:35

将第2行改为:

intip db "please intput number:",0ah,0dh,"$"

不会被覆盖。

应该是int 21h的“0ah”功能最后输入回车符的时候,光标位置回到行首。

因此,再次显示的时候从行首开始显示,因此覆盖了原来显示的内容。

server_test 发表于 2017-11-26 20:27:20

兰陵月 发表于 2017-11-26 15:41
将第2行改为:

intip db "please intput number:",0ah,0dh,"$"


谢谢大神

兰陵月 发表于 2017-11-26 20:51:03

server_test 发表于 2017-11-26 20:27
谢谢大神

一起学习,一起进步。
页: [1]
查看完整版本: 各位大神,请问dos 2号功能调用输出的结果为什么会覆盖9号功能输出的结果?求解