В колледже у меня возникла проблема в MIPS с операцией указателя.
int *a, *b, *c
a = (1<<28);
b = a+1
c = a+2;
*b = 3;
*c = -5
*a = *b + *c;
Затем я сделал код MIPS, который
addi $1, $0, 1
sll $1, $1, 28
addi $2, $1
addi $3, $1, 8
addi $4, $0, 3
sw $4, 0($2)
addi $5, $0, -5
add $6, $4, $5
sw $6, 0($1)
Теперь я знаю, что целое число - это каждый 4 байт. а затем в кодах b = a + 1
и c = a + 2
, почему мы должны использовать код MIPS addi $2, $1, 4
и addi $3, $1, 8
? Потому что a, b, c просто указывают на адрес?