Assembly 努力阅读用户输入并打印它
我来自Python的背景,我正试图让自己了解一些汇编语言 到目前为止,我一直相处得很好,但现在我遇到了问题。下面的教程要求我编写一些代码,向用户打招呼,让他输入一些东西,然后在控制台上显示这些文本 因此,我基本上做到了这一点,但脚本在一定长度后随机切断了部分输出-键入Assembly 努力阅读用户输入并打印它,assembly,io,gnu-assembler,Assembly,Io,Gnu Assembler,我来自Python的背景,我正试图让自己了解一些汇编语言 到目前为止,我一直相处得很好,但现在我遇到了问题。下面的教程要求我编写一些代码,向用户打招呼,让他输入一些东西,然后在控制台上显示这些文本 因此,我基本上做到了这一点,但脚本在一定长度后随机切断了部分输出-键入Fine效果很好,但是很好,谢谢返回给我nks,Finee,谢谢还给我Fineeanks!e。对于一个字符串,这种行为也总是相同的 这是我的代码:(很抱歉发布了所有代码,但我不知道错误可能在哪里) 我在DebianLinux(32位
Fine
效果很好,但是很好,谢谢代码>返回给我nks代码>,Finee,谢谢代码>还给我Fineeanks!e
。对于一个字符串,这种行为也总是相同的
这是我的代码:(很抱歉发布了所有代码,但我不知道错误可能在哪里)
我在DebianLinux(32位)上使用GNU汇编程序,所以这是用AT&T语法编写的
有人知道我为什么会犯这些奇怪的错误吗
in: .ascii ""
...
movl $in, %ecx # read to "in"
movl $10000, %edx # read 10000 bytes (at max)
您正在将用户输入读取到一个完全没有数据空间的变量中,因此您将破坏
中之后的任何内容
尝试保留一些空间来保存用户输入,例如:
in: .space 256
这非常有效,谢谢!我想我已经习惯了动态内存分配。。。
in: .space 256