Задать вопрос
@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
  • Вопрос задан
  • 293 просмотра
Подписаться 1 Простой 10 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Специалист по информационной безопасности + ML и нейросети
    12 месяцев
    Далее
  • Яндекс Практикум
    Системный администратор
    6 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
Решения вопроса 1
mayton2019
@mayton2019
Bigdata Engineer
Вот тут опечатка.

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

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

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