Перво-наперво:
format ELF
section '.text' executable
public _start
_start:
; OPENNIN FILE DESCRIPTOR FOR A PATH -->
mov ebx, logfile
mov eax, 5
mov ecx, 64
mov edx, 777o
int 0x80
; JUNT `STRLEN` -->
mov edi, ebx
mov ebx, eax
xor ecx, ecx
not ecx
xor eax, eax
cld
repne scasb
not ecx
; WRITTING INTO THE FD'S FILE -->
mov edx, ecx
sub edi, edx
mov ecx, edi
lea edx, [edx]
mov eax, 4
int 0x80
; CLOSE DESCRIPTOR -->
mov eax, 6
int 0x80
; EXIT -->
mov eax, 1
xor ebx, ebx
int 0x80
section '.data' writeable
logfile db "#!@#$%$:",0
Выше приведен мой код, который я написал в fasm
. При компиляции и запуске этого фрагмента кода (эта часть прошла хорошо, поэтому я не буду вдаваться в это.), Я сталкиваюсь с ситуацией -> Мой файл создан (и назван #!@#$%$:
, конечно ...), но ничего не было написанок этому.
Я не могу понять причину, по которой что-то не записано в новый файл! Состояние регистров должно быть таким, как упомянуто в: https://syscalls.kernelgrok.com/ И файл закрылся нормально.
Что может быть причиной для этого?