苦苦挣扎阅读用户输入并打印它

时间:2013-11-20 19:45:52

标签: assembly io gas

来自Python背景,我正试图让自己达到一些大会。

到目前为止,我一直相处得很好,但现在我遇到了问题。我正在关注的教程要求我编写一些问候用户的代码,要求他输入一些东西,然后在控制台上显示这个文本。

所以我基本上设法做到这一点,但是脚本会在一定长度后随机切断部分输出 - 在Fine中输入完美,但是Fine, thanks!让我回来{{1} },nks!,让我回归Finee, thanks!。对于一个字符串,此行为也始终相同。

这是我的代码:(很抱歉发布了所有代码,但我不知道错误发生在哪里)

Fineeanks!e

我在Debian Linux(32位)上使用GNU汇编程序,所以这是用AT& T语法编写的。

有没有人知道为什么我会收到这些奇怪的错误?

1 个答案:

答案 0 :(得分:1)

in: .ascii ""
...
movl $in, %ecx # read to "in"
movl $10000, %edx # read 10000 bytes (at max)

您正在将用户输入读入一个根本没有数据空间的变量,因此您将在in之后删除任何内容。

尝试保留一些空间来保存用户输入,例如:

in: .space 256