编写了一个汇编nasm程序以将标准输入流中包含的所有内容输出到标准输出流。
global _start
section .bss
char resb 1
section .text
_start: mov eax, 3 ; номер системного вызова read
xor ebx, ebx ; из стандартного потока ввода
mov ecx, [char] ; читаем в область памяти, обозначенную char
mov edx, 1 ; читаем один байт
int 0x80 ; вызываем read
cmp eax, 1 ; смотрим, сколько символов прочиталось
jnz exit ; если не 1 (то есть 0), то выходим
mov eax, 4 ; номер системного вызова write
mov ebx, 1 ; в стандартный поток вывода
mov ecx, [char] ; читаем из области памяти, обозначенной char
mov edx, 1 ; читаем один байт
int 0x80 ; вызываем write
jmp short _start ; делаем всё заново
exit: mov eax, 1 ; номер системного вызова _exit
xor ebx, ebx ; код 0
int 0x80 ; вызываем _exit
但是由于某种原因,当我尝试使用它时,我得到了这个:
user@kali:~$ ./myprogramm
12345
user@kali:~$ 12345
bash: 12345: команда не найдена
user@kali:~$
当我尝试对文件执行相同操作时,即我 write .myprogramm < input.txt > output.txt,output.txt结果是空的。
将写入
ecx内容char,您需要它的地址或者