Невозможно выполнить двоичный файл: ошибка формата Exec при попытке выполнить программу NASM сборки x86Linux

Ответить Пред. темаСлед. тема
Anonymous
 Невозможно выполнить двоичный файл: ошибка формата Exec при попытке выполнить программу NASM сборки x86

Сообщение Anonymous »


Моя основная ОС — Windows 10, но у меня установлен Linux с установленной Ubuntu (WSL). Там я пытаюсь запустить простую программу сборки NASM x86 (называемую «asem.asm»), следуя этому руководству, и все работает. Вот код:

раздел .data раздел .текст глобальный _start _начинать: МОВ вых, 1 МОВ ebx, 1 ИНТ 80ч Тип моей системы:

Linux DESKTOP-AHS9L1H 4.4.0-19041-Microsoft #3570-Microsoft Пт, 29 сентября 17:00:00 PST 2023 x86_64 x86_64 x86_64 GNU/Linux Команды, которые я выполняю в текущем репозитории:

nasm -f elf -o asem.o asem.asm ld -m elf_i386 -o asem asem.o ./асем Первые два создают два файла: asem.o и asem, все как в учебнике, но последний приводит к ошибке:

-bash: ./asem: невозможно выполнить двоичный файл: ошибка формата Exec Подходит ли метод, который я использую, для моей ситуации? Если да, то как мне запустить файл? Теперь я понял, что ошибка в архитектуре, и я пробовал много разных (elf32, elf64, elfx32), но ни один из них не работает. Многообещающим был (хотя я пытаюсь запустить x86 и здесь используется elf64):

nasm -f elf64 asem.asm -o asem.o ld -o asem asem.o -m elf_x86_64 ./асем Но в результате получается:
Ошибка сегментации (дамп ядра)
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»