haZard0us
14.01.2009, 01:30
Ради интереса разбираюсь с писанием под никсы.
код на NASM:
global _start
_start:
pop ebx
pop ebx
pop ebx ;name of file to write
mov eax,5 ;sys_open
mov ecx,100 ;O_CREAT
mov edx,777
int 0x80 ;call kernel
test eax,eax ;valid?
jns file_func
mov ebx,eax ;err num
mov eax,1 ;sys_exit
int 0x80
file_func:
mov ebx,eax ;sys_open descriptor in eax, fd
mov eax,4 ;sys_write
mov ecx,Msg ;*buf
mov edx,5 ;count
int 0x80
mov eax,1
mov ebx,0
int 0x80
section .data
Msg db "Hello", 0ah, 0
Непонимаю, что за косяк с созданием файла. Файл создается, но в него не записывает. Когда вместо создания своего пишу в готовый, все ок.
код на NASM:
global _start
_start:
pop ebx
pop ebx
pop ebx ;name of file to write
mov eax,5 ;sys_open
mov ecx,100 ;O_CREAT
mov edx,777
int 0x80 ;call kernel
test eax,eax ;valid?
jns file_func
mov ebx,eax ;err num
mov eax,1 ;sys_exit
int 0x80
file_func:
mov ebx,eax ;sys_open descriptor in eax, fd
mov eax,4 ;sys_write
mov ecx,Msg ;*buf
mov edx,5 ;count
int 0x80
mov eax,1
mov ebx,0
int 0x80
section .data
Msg db "Hello", 0ah, 0
Непонимаю, что за косяк с созданием файла. Файл создается, но в него не записывает. Когда вместо создания своего пишу в готовый, все ок.