Alp改变了所回应的内容

时间:2017-03-13 19:05:30

标签: assembly dos x86-16

.model tiny
.486
.data
  max1 db 10
  act1 db ?
  inp1 db 32 dup(0)
.code
.startup
  lea dx, max1
  mov ah, 0ah
  int 21h
.exit
end

我想要回复而不是我输入的字符。怎么做到呢?

1 个答案:

答案 0 :(得分:1)

首先,我想知道你们将ah=0Ah的缓冲区的第二个字节作为?放在哪里。它的"最后一次输入的字符数可以被调用" ,所以你应该把它设置为0(除非你准备一些数据到缓冲区中进行调用)

其次,您必须不使用此0Ah服务,而是ah=8 stdin _no_echo service逐个读取字符,并自行输出星号(例如通过ah=2服务)。 =所以你必须做你自己的缓冲/循环逻辑,验证最大长度等...