汇编:用于读取用户输入的文件描述符0或2

时间:2018-07-12 13:48:24

标签: assembly nasm

我正在学习汇编,并且有不同的文件描述符用于读取用户输入。

在阅读键盘输入内容时,我期望使用文件描述符0(stdin),但是遇到了article,其中使用了文件描述符2(stderr)。

;Read and store the user input
mov eax, 3
mov ebx, 2
mov ecx, num  
mov edx, 5          ;5 bytes (numeric, 1 for sign) of that information
int 80h

但是,我通常看到ebx设置为0:

;Read and store the user input
mov eax, 3
mov ebx, 0
mov ecx, num  
mov edx, 5          ;5 bytes (numeric, 1 for sign) of that information
int 80h

我尝试将ebx设置为0和2,它们都可以正常工作而没有问题。您能告诉我哪个是更好的选择吗?还是我应该采用其他最佳实践方法?

1 个答案:

答案 0 :(得分:2)

更好的选择是使用STDIN文件描述符(0号)。不过,您可以使用STDERR流(第2个)(实际上是输出流)进行读取:

  

The stderr stream is expected to be open for reading and writing

如果重定向STDIN流,这是一个实际的解决方法。