Я только начал изучать ассемблер (‹1 неделя, так что, пожалуйста, простите меня, если это глупо), но я не могу понять, почему этот код не дает результата:
section .data
message db "Hello World!",10
section .text
global _start
_start:
mov rax,1
mov rdi,1
mov rsi,message
mov rdx,14
syscall
mov rax,60
mov rdi,0
syscall
Я следил за этим онлайн-руководством, вместе с несколькими другими, но я не могу понять, почему нет вывода. Он собирает и связывает без ошибок (ввод консоли: nasm -f elf64 hello.asm -o hello.o, за которым следует: ld hello.o -o hello. Когда запустился, это займет секунду, а затем появится новое приглашение).
Я использую окна, и это все, что я смог найти в Интернете, в чем может быть причина, но не смог найти решения. Я пробовал использовать -f win64, за которым следует link.exe hello.obj / entry: _start / subsystem: console. Я также поменял местами подсистему: консоль на подсистему: окна только в случай, безрезультатно. Я полностью потерялся, и я очень благодарен за любую помощь. Спасибо!
P.S. Если проблема заключается в использовании Windows, есть ли в Интернете хорошее руководство по nasm в Windows. (Я пробовал использовать masm и as, но продолжаю сталкиваться с проблемами, поэтому решил выбрать nasm)