LINUX.ORG.RU

Почему fasm не понимает дириктиву «format ELF» , public _start и другие?


0

0

Т.е. пишу в начале файла

----------------------------------------------------------
format ELF

section '.text' executable

public _start
_start:

mov edx,msg_len
mov ecx,msg
mov ebx,1
mov eax,4
int 0x80

mov eax,1
xor ebx,ebx
int 0x80

msg db 'hello world',0xA,0
msg_len = $-msg

-----------------------------------------------------------

делаю команду:

/usr/local/share/fasm/fasm hello.asm hello.o

в ответ получаю:
------------------------------------------
flat assembler version 1.41
hello.asm [1]:
format ELF
error: invalid argument.
------------------------------------------

и так на каждую строку вплоть до _start.

В чём проблема ведь данный код взят не из головы а с www.wasm.ru и нак сколько понимаю был проверен а сдесь не работает.

Заранее спасибо!!!

★★★★★

Ответ на: комментарий от grustnoe

Ну тогда в догонку парав опросов: 1. Почему в насме бинарники больше чем в фасме. 2. Почему при обработке обьектника ld я получаю такой мессадж

[alexandr@cyclon Hello]$ ld hello.o -o hello

ld: warning: cannot find entry symbol _start; defaulting to 08048080

но бинарник работает исправно. Пробовал ставить org но на него компилятор ругается

hello.asm:3: error: parser: instruction expected

на 3-й строке как раз ogr 0x08048080

3. И где надыбать inc файлы для насма, и нужны ли они для него.

Заранее спасибо!!!

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

дык - надо сделать _start - это же точка входа. после сборки сделай на бинарнике strip - а потом уж сравнивай размеры.

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