LINUX.ORG.RU

помогите разобраться, ассемблер


0

0

прога hello world на ассемблере. прога следующая: bits 32 global _start _start: xor eax, eax jmp short string code: pop esi push byte 14 push esi push byte 1 mov al, 4 push eax int 0x80 xor eax, eax push eax push eax mov al, 1 int 0x80 string: call code db "Hello, world!", 0x0a

далее пишу в терминале nasm -f elf -o hello.o hello.asm ld -s -o hello hello.o

потом запускаю ./hello и нифига не выводится!! в чем проблема?

Не вижу в вашем коде занесения значения в ebx, хотя может это форматирование. Поправьте (пишите в LORCODE, описание в wiki).

mky ★★★★★
()

Если я не ошибаюсь, параметры передаются через регистры, а не не через стек.

Ну и, возможно, дескриптор 1 нужно предварительно открыть.

k_andy ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.