Показать сообщение отдельно

[asm] Linux sys_open
  #1  
Старый 14.01.2009, 01:30
haZard0us
Познающий
Регистрация: 18.04.2006
Сообщений: 31
Провел на форуме:
202783

Репутация: 17
По умолчанию [asm] Linux sys_open

Ради интереса разбираюсь с писанием под никсы.
код на 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
Непонимаю, что за косяк с созданием файла. Файл создается, но в него не записывает. Когда вместо создания своего пишу в готовый, все ок.