Мне нужна помощь с выделением памяти при системных вызовах в домашнем задании.
Я получаю число «x» из аргумента командной строки, и мне нужно выделить массив структур «x», который включает два поля dword.
Я пытался сделать это с помощью системного вызова brk, но мне кажется, что я не очень хорошо понимаю, это моя попытка:
mov eax, SYS_BRK ;using brk system call
mov ebx, 0
int 0x80
mov [CORS], eax ;CORS-the array of the structs
mov [initialallocated], eax
mov ecx, [dronesNumber]
shl ecx, 3 ;8 bytes * numberOfDrones
mov eax, SYS_BRK
mov ebx, [CORS]
add ebx, ecx
int 0x80
mov [CORS], eax
mov ecx, dronesNumber
here:
.myLoop:
mov eax, SYS_BRK
mov ebx, 0
int 0x80
mov [CORS + 8*ecx], eax ;segmentation fault here
mov eax, SYS_BRK
mov ebx, [CORS + 4*ecx]
add ebx, ecx
int 0x80
mov [CORS + 4*ecx], eax
loop .myLoop, ecx