#include <stdio.h>
int main(void) {
int nums[10];
nums[2] = 15;
printf("%d\n", nums[2]);
return 0;
}
|main| PROC
|$LN3|
stp fp,lr,[sp,#-0x10]!
mov fp,sp
bl __security_push_cookie
sub sp,sp,#0x20
mov x8,#4
mov x9,#2
mul x9,x8,x9
mov x8,sp
add x9,x8,x9
mov w8,#0xF
str w8,[x9]
mov x8,#4
mov x9,#2
mul x9,x8,x9
mov x8,sp
add x8,x8,x9
ldr w1,[x8]
adrp x8,|$SG4981|
add x0,x8,|$SG4981|
bl printf
mov w0,#0
add sp,sp,#0x20
bl __security_pop_cookie
ldp fp,lr,[sp],#0x10
ret
ENDP ; |main|
値を変えながらassembleしてみると、mov x8,#4のところはnum[2], [10], num[15]でも変わらないのね。mul x9, x8、x9の挙動がいまいちわからんが