Я пытаюсь распечатать функцию out put W - X) + (Y - Z), я держу , получая ошибку сегментации (сбрасывать ядра), когда когда-либо компилирую и пытаюсь запустить программафункция печати (получить ошибку сегментации)
NASM -felf64 asm_program -o asm_program.o
НКУ -m64 asm_program.o -o asm_program
./asm_program
я искал вокруг, но я не могу оштрафовать решение. Сначала я хотел спросить, что означает эта ошибка сегментации и как она относится к моей программе, во-вторых, где я ошибаюсь в своем коде.
относительно новым для сборки, кстати
Программа начинается здесь
global main
extern printf
segment .data
w: DQ 1
x: DQ 3
y: DQ 5
z: DQ 2
segment .text
main:
call compute
compute:
mov rax, w
mov rcx, x
add rax,rcx
mov rbx, y
mov rbp, z
add rbx, rbp
mul rbx
call printf
Всегда заканчивайте свои программы на 'ret' :) –