subl指令(汇编,movl指令,求指教!)

本文目录
汇编,movl指令,求指教!
这个问题蛮有意思!
首先,如果你把fun函数改成
void fun(int a,int b){
int c = a + b;
}
就会出现你期望的汇编代码
其次,为什么是movl $3, -4(%ebp)和movl $4, -8(%ebp)呢?貌似没理由啊
仔细分析就知道了:
movl %esp, %ebp #把栈顶指针赋给ebp
subl $16, %esp #esp向上移动16个单位,相当于开辟了4个局部int,这时的ebp就相当于栈底了
所以-4(%ebp)就是第一个局部变量,-8(%ebp)是第二个局部变量。
怎么int a,b变成了局部变量了?? 因为fun函数虽然传了参数但是参数直接被覆盖了(根本就没用),或者把代码改成这样就明白了:
void fun(int *a, int *b) {
*a = 3;
*b = 4;
}
如何用命令行用sublime打开文件
将 Sublimetext 安装目录添加到环境变量 PATH:
然后命令行这样使用:
cd 到你的工程目录,执行
subl .
1
$ sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/bin/subl
根据提示输入管理员密码,然后就可以使用命令行打开了。
1
$ subl test.txt
如果你的Sublime不是安装在Applications文件夹下,则相应修改第一条命令的前面地址。
简述一下编译器和链接器的作用
1、编译器:
编译器对源文件进行编译,就是把源文件中的文本形式存在的源代码翻译成机器语言形式的目标文件的过程,在这个过程中,编译器会进行一系列的语法检查。如果编译通过,就会把对应的CPP转换成OBJ文件。
2、链接器:
当链接器进行链接的时候,首先决定各个目标文件在最终可执行文件里的位置。然后访问所有目标文件的地址重定义表,对其中记录的地址进行重定向(加上一个偏移量,即该编译单元在可执行文件上的起始地址)。
然后遍历所有目标文件的未解决符号表,并且在所有的导出符号表里查找匹配的符号,并在未解决符号表中所记录的位置上填写实现地址。最后把所有的目标文件的内容写在各自的位置上,再作一些另的工作,就生成一个可执行文件。

更多文章:
css表白代码(谁能告诉我,在百度空间上仿QQ空间的CSS所有代码)
2026年4月19日 12:30
化学反应工程与工艺期刊(国际上影响因子较高的关于催化剂方面的杂志有哪些)
2026年5月24日 10:00
js实现队列(javascript函数节流和函数防抖之间的区别)
2026年8月30日 20:15
clip converter(用ClipConverter下载的youku视频在电脑哪个文件夹)
2026年8月24日 21:15
matlabplot点的形状(MATLAB作图时,如何把标志数据点的形状做成实心的)
2026年1月13日 09:15
配置管理属于什么职位类型(公司让我从需求工程师转做配置管理工程师,大神们怎么看,哪个发展前景好一些ps:我是应届毕业生,还)
2025年9月1日 04:15
easyui获取数据表格的值(Easyui中获取datagrid某多个列的值)
2025年5月30日 22:45
oracle datediff(oracle 时间相减函数)
2025年9月13日 22:15
java培训好还是自学好(Java软件开发,是自学的好还是参加java培训机构)
2026年5月26日 11:45
js修改style属性(js如何改变一个图片的style的top属性)
2026年2月4日 02:15
dw软件官方免费下载中文版(Dreamweaver哪里有免费版)
2026年1月9日 06:45
word2019开发工具控件属性是灰色的(为什么word打开以后,工具栏里边的命令都是灰色的)
2026年5月10日 18:45











