我正在检查使用以下命令编译的 C 文件的 objdump:
riscv64-unknown-elf-gcc -O0 -o maxmul.o maxmul.c
riscv64-unknown-elf-objdump -d maxmul.o > maxmul.dump
Run Code Online (Sandbox Code Playgroud)
奇怪的是(或没有)这些地址似乎没有在 32 位字上对齐,但实际上是在 16 位边界上对齐。
谁能解释一下为什么吗?
谢谢。
objdump 摘录:
00000000000101da <main>:
101da: 7155 addi sp,sp,-208
101dc: e586 sd ra,200(sp)
101de: e1a2 sd s0,192(sp)
101e0: 0980 addi s0,sp,208
...
Run Code Online (Sandbox Code Playgroud)
C代码:
int main()
{
int first[3][3], second[3][3], multiply[3][3];
int golden[3][3];
int sum;
first[0][0] = 1; first[0][1] = 2; first[0][2] = 3;
first[1][0] = 4; first[1][1] = 5; first[1][2] = 6;
first[2][0] = 7; first[2][1] = 8; first[2][2] = …Run Code Online (Sandbox Code Playgroud)