Задать вопрос
Daniil_the_Fool
@Daniil_the_Fool

Может кто нибудь подсказать в чем ошибка(nasm)?

Добрый вечер можете подсказать почему не работает?
На мс-дос все работает, и асм ни на что ни жалуется ни во время сборки для дос ни для виндовс.
mov eax, _Rose + 669h
sub eax, 669h
inc byte ds:eax
                
 _Rose:
  jz go_away
  call protected_func

go_away:

ret 0

protected_func:
;some code 
ret 0


nasm -f win32 Rose.asm -o rose.exe

Собрал по шагам:
nasm -f win32 Rose.asm -o Rose.o
ld Rose.o -o Rose.exe

Получил сообщение:
ld: i386 architecture of input file `Rose.o' is incompatible with i386:x86-64 output
может можно nasm сообщить что нужна архитектура х86 или х64... (хоть что нибудь совместимое новыми ос)?
  • Вопрос задан
  • 191 просмотр
Подписаться 1 Простой 4 комментария
Решения вопроса 1
mayton2019
@mayton2019
Bigdata Engineer
Вот такие варианты бывают под win:
win32     Microsoft Win32 (i386) object files
win64     Microsoft Win64 (x86-64) object files
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
TalismanChet
@TalismanChet
Лицо зла
лучше на фасм перейди. это компилер + линкер под капотом, формат прямо в коде писать можно. А в твоем случае - ну поменяй с win32 на win64.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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