Проблемы с компиляцией ассемблера - PullRequest
1 голос
/ 09 января 2020

Я скопировал пример программы на ассемблере и скомпилировал ее, используя g cc, но получил следующий вывод:

g cc hello.s -o hello1

/ usr / bin / ld: /tmp/ccPs5dcq.o: перемещение R_X86_64_32 против `.data 'нельзя использовать при создании объекта P IE; перекомпиляция с -fP IE

/ usr / bin / ld: ошибка окончательного соединения: непредставительный раздел на выходе

collect2: error: ld вернул 1 статус выхода

Код:

.data
hello_str:
        .string "Hello, world!\n"
        .set hello_str_length, . - hello_str - 1
.text 
.globl  main
.type   main, @function       
main:
        movl    $4, %eax      
        movl    $1, %ebx      
        movl    $hello_str, %ecx  
        movl    $hello_str_length, %edx 
        int     $0x80         
        movl    $1, %eax      
        movl    $0, %ebx      
        int     $0x80         
        .size   main, . - main    

Что я делаю не так?

PS Я абсолютно новичок в ассемблере, просто пытаюсь разобрать пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...