Задать вопрос
@Toni-Stark

Ошибка fasm ELF64 error: undefined symbol '_start', как мсправить?

У меня есть следующий код:
format ELF64
public _start

msg db "hello, world", 0
len = $-msg

satrt:
mov rax, 4
mov rbx, 1
mov rcx, msg
mov rdx, len
int 0x80
call exit

exit:
mov rax, 1
mov rbx, 0
int 0x80


Я использую fasm main.asm
в ответ я получаю:
flat assembler  version 1.73.31  (16384 kilobytes memory, x64)
main.asm [2]:
public _start
processed: public _start
error: undefined symbol '_start'.


Я попытался заменить public на entry и global, но в ответ получил то же самое. Если я вообще избавлюсь от этой строки, компиляция завершится успешно, но затем ld выдает мне:
ld: warning: cannot find entry symbol _start; not setting start address
ld: warning: main has a LOAD segment with RWX permissions


Затем, запустив файл, я получаю Segmentation fault (core dumped)

Моя ОС: Fedora 38
FASM version 1.73.31
  • Вопрос задан
  • 206 просмотров
Подписаться 1 Простой 10 комментариев
Решения вопроса 1
mayton2019
@mayton2019
Bigdata Engineer
Вот тут опечатка.

satrt:
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
satrt !== start
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы