Я изучаю 32-битную сборку на Mac, и я пытался писать файл на своем рабочем столе. Я использовал этот код:Открыть и записать в файл в сборке на mac
global _start
section .data
path: db "/Users/jackliu/Desktop/test.txt",0
string: db "hello",0
.len: equ $ - string
section .text
_start:
mov eax, 5
push dword 2
push dword path
sub esp, 8
int 0x80
add esp, 16
mov ebx, eax
mov eax, 4
push dword string.len
push dword string
push dword ebx
sub esp, 4
int 0x80
add esp, 16
mov eax, 1
push 0
sub esp, 12
int 0x80
Файл пуст и он уже существует на моем рабочем столе. После запуска он не меняет файл вообще.
Что-то не в порядке с моим кодом?
Вы правы. В os x я читал, что вам нужно выровнять стек до 16-го бита, так что я пытаюсь это сделать. Я просто попробовал это с вашими предложениями, но не повезло. –
Хорошо, теперь он отлично работает. Благодаря! –