Alp 改变回显的内容

Alp to change what is echoed

.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

我希望回显 * 而不是我键入的字符。如何做呢?

首先,我想知道你们从哪里得到 ah=0Ah 缓冲区的第二个字节作为 ?。它是"number of chars from last input which may be recalled",所以你应该将它设置为0(除非你准备了一些数据到缓冲区中以供调用)。

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