Я пытаюсь выучить ассемблер (nasm), и мне действительно тяжело это делать. Вся документация очень сложная.
У меня есть эта маленькая маленькая программа. все работало хорошо, пока я не добавил section .data
, теперь он прекрасно компилируется, но вылетает при запуске с:
Thread 1: EXC_BAD_ACCESS (code=2, address=0x10000101a)
Я прочитал, что это связано с разыменованием указателя. Но я не могу понять, как это относится к моей маленькой программе.
section .text
section .data
counter: dw 0
global _start
_start:
mov eax, 1
mov ebx, 3
xor ecx, ecx
xor edx, edx
accumulate:
mul ebx
add ecx, eax
inc dword [rel counter]
cmp dword [rel counter], 5
jl accumulate
ret
Я использую xcode на 64-битной машине macOS, и он компилируется с использованием флага macho64.
Буду признателен за любую помощь или любую документацию.