【发布时间】:2011-11-18 12:08:08
【问题描述】:
我正在尝试在 AT&T Assembly 中创建一个简单的密码程序,但在屏蔽输入时遇到了问题。我想要发生的是当用户输入字符时,它们在屏幕上显示为星号'。在 intel 语法中它相对简单:
mov ah, 08h
int 21h
mov dl,2ah
mov ah,02h
int 21h
这使用 intel 命令读取输入而不回显它,而是打印一个星号。 我正在尝试用 AT&T 语法解决这个问题,但遇到了一些麻烦。
任何意见将不胜感激。 提前致谢。
【问题讨论】:
-
你用的是什么工具链?如果你在例如Linux
int 21h即使翻译成 AT&T 语法也无法工作。 -
不,我使用的是 int 0x80,代码运行。我只是在 at&t 中找不到 read no echo 系统调用
-
那是因为它是特定于平台的。您应该包括您正在运行的确切平台,例如32 位 x86 Linux。答案将与 C/C++/etc 相同。并且可能会涉及 tcsetattr。参见例如this所以问题。
-
我在 Linux x86 上使用 AT%T 语法的“as”编译器,如果有帮助的话。
-
您到底在做什么?创建一个汇编程序?从那个程序读取输入?只是在没有回声的情况下获得键盘输入吗?