Я пытаюсь выяснить, как выделить память для структуры в сборке SPARC.
Вот версия C моего кода, который я использую (который работает и прекрасно компилируется):
#include <stdio.h>
#include <stdlib.h>
#include "test.h"
int main(int argc, char *argv[])
{
struct tester test;
....other code inbetween
testfn(&test);
testfn2(&test);
}
Теперь в сборке, я полагаю, мне нужно вызвать функцию, подобную этой ...
mov struct tester, %o0 ! Move struct tester into %o0
call sizeof ! Get size of struct tester
nop
set %o0, %l1 ! Store size
nop
mov 1, %o0 ! Prepare for calloc call
mov %l1, %o1 ! Prepare for calloc call
call calloc, 2
nop
mov %o0, %l2 ! The pointer returned to the allocated space
mov %l2, %o0
call testfn
nop
mov %l2, %o0
call testfn2
nop
Основная часть, на которой я сейчас застрял, - это как пройти этот начальный тест struct testerв сборку.Определить ли это где-нибудь или как это работает?
И на всякий случай мой тестер структуры выглядит примерно так ...
#define SIZE 100
struct tester2 {
char abcd[SIZE];
char efgh[SIZE];
};
struct tester {
struct tester2 *somePTR;
int an_Int;
};