本文作者原创,首发在本博客;CSDN 上的同名文章已标注为转载并回链到本页:https://blog.csdn.net/qq_30220519/article/details/139705499
基础程序汇编
test.c
1 | int main() { |
查看反汇编
1 | cc -o test test.c |
函数参数汇编
test.c
int plus(int x, int y) {
return x + y;
}int main() {
return plus(3, 4);
}.intel_syntax noprefix
.globl plus, mainplus:
add rsi, rdi
mov rax, rsi
retmain:
mov rdi, 3
mov rsi, 4
call plus
ret
.globl开头表示函数整个程序可见
call原理
- call将下一条指令(在本例中)ret的地址推入堆栈
- call跳转到作为参数给出的地址
自定义编译器编译基础程序
test.c
1 |
|
编译运行
1 | cc -o test test.c |
自定义编译器编译加减法程序
test.c
1 |
|
编译
1 | cc -o test test.c |
测试
test.sh
1 |
|
参考
创作不易,小小的支持一下吧!

