- 论坛徽章:
- 2
|
$ cat mult.c- extern int a, b, c, d;
- void
- fun (void)
- {
- a = c / d;
- b = c % d;
- }
复制代码 $ mips64el-linux-gcc -S mult.c
$ cat mult.s- div $0,$3,$2
- teq $2,$0,7
- mfhi $3
- mflo $2
- move $3,$2
- lw $2,%got_disp(a)($4)
- sw $3,0($2)
- lw $2,%got_disp(c)($4)
- lw $3,0($2)
- lw $2,%got_disp(d)($4)
- lw $2,0($2)
- div $0,$3,$2
- teq $2,$0,7
- mfhi $2
- move $3,$2
复制代码 $ mips64el-linux-gcc -S mult.c -O3
$ cat mult.s- lui $5,%hi(__gnu_local_gp)
- addiu $5,$5,%lo(__gnu_local_gp)
- lw $2,%got_disp(c)($5)
- lw $4,%got_disp(a)($5)
- lw $3,0($2)
- lw $2,%got_disp(d)($5)
- lw $2,0($2)
- div $0,$3,$2
- teq $2,$0,7
- mflo $3
- sw $3,0($4)
- lw $3,%got_disp(b)($5)
- mfhi $2
- j $31
- sw $2,0($3)
复制代码 |
|