首页 > 解决方案 > nasm 检测到 eof,读取数据块

问题描述

我需要从文件中读取一些未知数量的字符。我想检测字符串的结尾(在这种情况下它是 EOF)。首先,我使用系统调用 3 从文件中读取,然后检查 rax 是否等于 0。如果我同时读取一个字符,那效果很好,但我想这样读取:

mov rax, 3
mov rbx, stdin
mov rcx, input
mov rdx, 8
int 80h

所以我读了 8 位,然后我在这些位上循环,我想检测是否有 eof。EOF 检测如下所示::

cmp r8b,0
jle loop_end

但这根本不起作用。我可以以某种方式阅读更多位fe。8. 并在 fe 位置 5 检测到 EOF?或者也许系统调用 3 可以返回读取的位数?

标签: assemblynasmsystem-calls

解决方案


推荐阅读