当我将 $0 与 %eax 进行错误检查比较,并在提示时不输入任何内容时,不会显示错误消息。但是,当我将 $1 与 %eax 进行比较并且不输入任何输入时,将显示错误消息。我知道 read 系统调用返回读入 %eax 的字节数,尽管我不确定为什么在没有输入时它返回一个字节被读取,手册页也没有给我任何指示为什么会这样。标准输入输入是空终止还是其他?
movl $3, %eax
movl $0, %ebx
movl $BUFFER, %ecx
movl $BUFFER_SIZE, %edx
int $0x80
cmpl $0, %eax
jle input_error
如果 cmpl $0 更改为 cmpl $1,并且没有给出输入,则跳转到 input_error,当没有给出输入时,cmpl $0 程序流程继续。