会员
周边
众包
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
等风来7299
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
2019年1月26日
CSAPP阅读笔记-栈帧-来自第三章3.7的笔记-P164-P176
摘要: 1.基本结构: 如上图所示,是通用的栈帧结构。大致分两块,调用者函数P和被调用者函数Q。 对P来说,要做的工作是把传递参数中多于6个的部分压栈,随后把Q返回时要执行的下一条指令的地址压栈。 对Q来说,要做的工作分3块,一是将要保存寄存器的值压栈,二是将要保存的局部变量压栈,三是把多余参数压栈。刚看到
阅读全文
posted @ 2019-01-26 18:11 暴躁法师
阅读(1701)
评论(2)
推荐(0)
编辑
2018年12月22日
CSAPP阅读笔记-汇编语言初探(控制类指令)-来自第三章3.6的笔记-P135-P163
摘要: 1.正溢出与负溢出: 首先,一个正数与一个负数相加,不可能溢出,因为结果的绝对值一定小于两个加数的绝对值,既然两个加数能合理表示出来,结果一定也能合理表示出来。 其次,正溢出是由于两个很大的正数相加,导致符号位变成1的情况如0110+0011=1001(假设最大只能运算4位) 负溢出则是两个很小的负
阅读全文
posted @ 2018-12-22 19:31 暴躁法师
阅读(1995)
评论(0)
推荐(0)
编辑
2018年11月28日
CSAPP阅读笔记-汇编语言初探(算术和逻辑操作类指令)-来自第三章3.5的笔记-P128-P135
摘要: 1.算术和逻辑操作类指令分四类:加载有效地址,一元操作,二元操作和移位,如下: 2. leaq指令,类似mov指令,它左侧的数看似是给出一个地址,在内存中从给定的地址取操作数,传给右边的目的地。但其实没有取,而是直接将左侧的数对应的地址传给了右侧的目的地。 例子: leaq 7(%rdx,%rdx,
阅读全文
posted @ 2018-11-28 16:41 暴躁法师
阅读(6067)
评论(0)
推荐(0)
编辑
2018年11月26日
CSAPP阅读笔记-汇编语言初探(数据传送类指令)-来自第三章3.2-3.3的笔记-P115-P128
摘要: 1.如何由机器代码生成汇编代码? objdump -d再加上文件名即可直接在终端看到由反汇编器恢复的汇编代码。注意,文件名并不一定得是.o文件,任何可执行文件都可以。 结果如下: 仅列举了反汇编test.o的结果,其它的也测试过,不放图了。 2. 32位和64位的基本数据类型大小对比: 32位: c
阅读全文
posted @ 2018-11-26 16:39 暴躁法师
阅读(3830)
评论(3)
推荐(2)
编辑
2018年11月24日
CSAPP阅读笔记-gcc常用参数初探-来自第三章3.2的笔记-P113
摘要: gcc是一种C编译器,这次我们根据书上的代码尝试着使用它。 使用之前,先补充前置知识。编译器将源代码转换为可执行代码的流程:首先,预处理器对源代码进行处理,将#define指定的宏进行替换,将#include包含的文件插入,随后,编译器生成源文件对应的汇编代码,以.s结尾。然后汇编器会将汇编代码转换
阅读全文
posted @ 2018-11-24 16:41 暴躁法师
阅读(1272)
评论(0)
推荐(1)
编辑
2018年11月23日
CSAPP阅读笔记-32位64位的区别--来自第三章引言的笔记--P110
摘要: 仅从寻址上看,32位和64位机器能寻址的内存空间大小不同。 需要知道的是,计算机系统对存储器作了抽象,程序“认为”内存是一个很大的字节数组,然而实际上它是由多个硬件存储器和操作系统组合起来实现的。 程序看到的内存地址是虚拟地址,是操作系统为了让程序使用方便作的映射,实际当程序运行时,要从某个地址取信
阅读全文
posted @ 2018-11-23 22:25 暴躁法师
阅读(376)
评论(0)
推荐(1)
编辑
写在前面
摘要: 博主是某211大学的研究生,本科和研究生期间的专业是微波方向,由于某些原因转码了。 目前我的水平是:仅仅粗浅地学过一点计算机专业的知识,会一点c++,刚看完c++ primer那个等级(而且看得还不仔细),数据结构刷过一些题(应付面试的水准,动态规划啥的就是我的极限了。。),会一点c#和unity,
阅读全文
posted @ 2018-11-23 21:46 暴躁法师
阅读(215)
评论(2)
推荐(1)
编辑
上一页
1
2
3
4