Мой код выглядит следующим образом:nasm: разрешено ли «global_start:»?
section .text
global _start:
_start:
...
Если я скомпилировать его с:
nasm -f elf test.asm
я не получаю никаких ошибок и после соединения программа работает для меня.
Проблема в том, что мой преподаватель не смог скомпилировать мою программу и должен был удалить «:» в строке global _start:
, чтобы заставить ее работать.
- Как может быть, что я не получаю ошибки и не могу скомпилировать?
- «Разрешено/разрешено» и программа должна работать?
'nasm -felf64': без ошибок 2.11.06. 'yasm -felf64':' nasm-syntax.asm: 1: ошибка: недопустимые аргументы для [global] 'с v1.3.0. Похоже, что разбор происходит, чтобы принять его, но вы не должны рассчитывать на него. Помимо сохранения нажатия клавиши в копировании/вставке, она не имеет преимуществ и нестандартна, поэтому не делайте этого. Терминология: «не собирается» или «может собираться». Вы не компилируете источник asm. –
Имя ярлыка '_start', а не' _start: '. Не могли бы вы использовать двоеточия, когда ссылаетесь на метку иначе, например. 'jmp _start:'? – Michael
@PeterCordes Это была одна из моих первых программ сборки, и я действительно не помню, почему я поставил «:» там :(Я больше этого не сделаю. Означает ли это, что она собирается для вас без проблем и работает? Или просто собирает без проблем? – Crypto