回 帖 发 新 帖 刷新版面

主题:到底是啥问题

功能:输入hello,显示hello     
DATA  SEGMENT
     BUFSIZE  DB        25
     ACTCHAR  DB        ?
    CHARTEXT  DB        '*****',18 DUP(20H)
              DB        '$'
        DATA  ENDS
        CODE  SEGMENT
              ASSUME    CS:CODE,DS:DATA
      START:  MOV       AX,DATA
              MOV       DS,AX
              MOV       DX,OFFSET BUFSIZE

              MOV       AH,0AH
              INT       21H

              MOV       DX,OFFSET CHARTEXT

              MOV       AH,09H
              INT       21H
              MOV       AH,09H
              INT       21H

              HLT
        CODE  ENDS
              END       START
*******************************************************
   上面的  MOV       AH,09H
              INT       21H
      一定要写两下才有结果输出,写一下就没的结果
     还有一定要有18 DUP(20H)否则也没有结果输出,
这是为什么呢,请哪位老兄指点一下.在这里先谢谢了

回复列表 (共2个回复)

沙发

int21 9号功能读取输入,包括最后的回车,所以当你输出字符串时候,你前面的hello就被你后面的20H(空格)覆盖了,所以你第一次输出时就看不到字符,而第二次输出的时候不会被覆盖了,但是
字符串的前面有一些空格!建议你去DEBUG一下,就全明白了!

板凳

建议你去DEBUG一下,就全明白了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册