20145311 《信息安全系统设计基础》第五周学习总结
2016-10-16 20:05
267 查看
20145311 《信息安全系统设计基础》第五周学习总结
教材学习内容总结
汇编代码是与特定机器密切相关的
Intel处理器俗称x86
指令集体系结构(ISA):定义了机器级程序的格式和行为以及每条指令对状态的影响
反汇编器只是基于机器代码文件中的字节序列来确定汇编代码,它不需要访问程序的源代码或汇编代码
ATT格式的汇编代码是GCC、OBJDUMP和其他一些我们使用的工具的默认格式
字:16bit(2byte) 双字:32bit(4字节)
双字:int、long int、char
单精度(float):4字节 双精度(double):8字节
MOVS、MOVZ指令都是讲一个较小的数据源复制到一个较大的数据位置,高位用符号位扩展或者零扩展
栈都是以“双字”进行操作的,压栈栈指针减小,弹栈栈指针增大
leal指令:从存储器读取数据到寄存器,是将有效地址写入到目的操作数(不改变任何条件码)
CMP:与sub指令相似,但只设置条件码二不改变目的寄存器的值
TEST:与AND指令相似,但只设置条件码二不改变目的寄存器的值
无符号比较使用的是进位标志和零标志的组合
jmp是无条件跳转,可以是直接,也可以是间接跳转;条件跳转只能是直接跳转
栈帧结构:机器用栈来传递过程参数、存储返回信息、保存寄存器用于以后恢复,以及本地存储
为单个过程分配的那部分栈称为栈帧,寄存器%ebp为帧指针,%esp为栈指针
call指令:将返回地址入栈,并跳转到被调用过程的起始处,返回地址是在程序中紧跟在call后面的那条指令的地址
ret指令从栈中弹出地址,并跳转到这个位置
寄存器%eax、%edx、%ecx被划分为调用者保存寄存器,寄存器%ebx、%esi、%edi被划分为被调用者保存寄存器
leave指令的使用在返回前,既重置了栈指针,也重置了帧指针
转移控制:
call指令:call指令有一个目标,即指明被调用过程起始的指令地址; call指令的效果是将返回地址入栈。并跳转到被调用过程的起始处。
ret指令:ret指从栈中弹出地址,并跳转到这个位置;ret指令返回到call指令后的那条指令。
leave指令:leave指令可以使栈做好返回的准备
教材学习中的问题和解决过程
实验楼代码汇编:代码调试中的问题和解决过程
反汇编本周代码托管
其他(感悟、思考等,可选)
这周的主要学习任务就是汇编语言,其实在学习这一章的时候跟上学期的有些知识还是会联系起来,理解起来也没有那么困难, 但是感觉汇编语言还是不利于阅读,比较难于理解它想实现的功能,不像高级语言,可以简明地读懂它的意思,但也正是因为这样 ,汇编语言才能够更好地反映一条条指令是如何执行的,从而发现一些细节
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 100/100 | 1/2 | 20/20 | |
第二周 | 150/200 | 2/4 | 18/38 | |
第三周 | 200/250 | 1/5 | 22/60 | |
第五周 | 50/300 | 1/6 | 30/90 |
参考资料
《深入理解计算机系统V2》学习指导...
相关文章推荐
- 20145311 《信息安全系统设计基础》第三周学习总结
- 20145215《信息安全系统设计基础》第五周学习总结
- 20145203 《信息安全系统设计基础》第五周学习总结
- 20145311 《信息安全系统设计基础》第十一周学习总结
- 20145311 《信息安全系统设计基础》第六周学习总结
- 20145213《信息安全系统设计基础》第五周学习总结上篇
- 20145231《信息安全系统设计基础》第五周学习总结
- 20145222《信息安全系统设计基础》第五周学习总结
- 20145307《信息安全系统设计基础》第五周学习总结PT2
- 20144303 《信息安全系统设计基础》第五周学习总结
- 20145311 《信息安全系统设计基础》第十周学习总结
- 20145324 《信息安全系统设计基础》第五周学习总结
- 20145317《信息安全系统设计基础》第五周学习总结2
- 20145333 《信息安全系统设计基础》第五周学习总结(一)
- 20145311 《信息安全系统设计基础》第一周学习总结
- 20145240 《信息安全系统设计基础》第五周学习总结
- 20145327 《信息安全系统设计基础》第五周学习总结
- 20145337 《信息安全系统设计基础》第五周学习总结
- 20145311 《信息安全系统设计基础》第七周学习总结
- 20145316 《信息安全系统设计基础》第五周学习总结