Я пытаюсь получить доступ к памяти, у которой есть ошибки в сборке, но я постоянно получаю ошибки segfault. Что я делаю неправильно в следующем коде, я уверен, что это просто, но я просто не вижу этого!
РЕДАКТИРОВАТЬ: Я использую 64-битную сборку NASM
; Allocate room for 8 integers
mov r8, 8
mov rdi, r8
imul rdi, 8 ; Multiply by 8 (8 bytes per entry in 64bit)
xor rax, rax
call malloc
add rsp, 8
test rax, rax
jz malloc_failure
mov r8, rsp
; r8 now = base of array
; Set the first element to be 100
mov r9, 0
add r9, r8
mov qword [r9], 100
malloc_failure:
deallocate_start:
dealloc_1:
mov rdi, r8
xor rax, rax
call free
add rsp, 8
deallocate_end:
call os_return ; return to operating system
И сегфо (не очень интересно ...)
matrix05% ./arr5
Segmentation fault