Программа малых сборок (nasm) аварийно завершает работу с потоком 1: EXC_BAD_ACCESS (код = 2, адрес = 0x10000101a) - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь выучить ассемблер (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.

Буду признателен за любую помощь или любую документацию.

...