0

我正在使用具有 Aarch64 执行状态的 ARMv8 指令集。我遇到的问题是应该将 C 代码转换为程序集,我被困在以下问题上:

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

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

cmp c_r, EOF
b.eq skipwhile

或者是别的什么?

4

1 回答 1

0

这取决于您在汇编中使用的代码getchar()-

  • 如果您只是使用对标准 C 库的汇编版本的调用getchar(),那么您可以使用 C 库的 -normally 定义进行EOF测试-1
  • 如果您在汇编中实现自己的,那么当它到达文件末尾时getchar(),您需要将您的测试与实现的返回值相匹配。getchar()
于 2017-03-30T11:41:47.343 回答