如何在ARMv8程序集中键入EOF?

时间:2017-03-30 02:00:09

标签: c assembly eof armv8

我正在使用具有Aarch64执行状态的ARMv8指令集。我遇到的问题是应该将C代码转换为汇编,我坚持以下内容:

while (c != '\n' && c != EOF)
    c = getchar();

我知道while循环的基本设置,以及如何测试c != '\n',但我遇到的问题是如何在汇编中编写EOF。 我可以输入

cmp c_r, EOF
b.eq skipwhile

还是别的什么?

1 个答案:

答案 0 :(得分:0)

这取决于您在getchar() -

的汇编中使用的代码
  • 如果您只是使用对标准C库getchar()的汇编版本的调用,那么您可以使用C库的EOF定义进行测试 - 通常为-1
  • 如果您在程序集中实现自己的getchar(),则需要将测试与getchar()实现的返回值匹配到文件结尾。