20145318 《信息安全系统设计基础》第5周学习总结
2016-10-16 21:20
176 查看
20145318 《信息安全系统设计基础》第5周学习总结
教材学习内容总结
寻址方式历史
DOS时代的平坦模式:不区分用户空间和内核空间,很不安全。8086的分段模式
IA32的带保护模式的平坦模式
程序编码
编译:gcc -01 -o p p1.c,-01:表示使用第一级优化。通常提高优化级别会使最终程序运行得更快,但是编译时间可能会变长,用调试工具对代码进行调试会更困难。(实际中,第二级优化-02被认为是较好的选择)两种抽象:
指令集结构ISA:是机器级程序的格式和行为,定义了处理器状态、指令的格式,以及每条指令对状态的影响。
机器级程序使用的存储器地址是虚拟地址,看上去是一个非常大的字节数组,实际上是将多个硬件存储器和操作系统软件组合起来。
机器级代码
指令集体系结构(ISA):机器级程序的格式和行为,定义了处理器状态、指令的格式以及每条指令对状态的影响虚拟地址:使用的存储器地址
程序计数器(PC):指示下一条指令在存储器中的地址
寄存器文件:8个命名的位置,分别存储32位的值,可以存储地址或整数数据
条件码寄存器:实现控制或数据流中的条件变化
浮点寄存器
栈帧结构
IA32用程序栈支持过程调用机器用栈来传递过程参数、存储返回信息、保存寄存器用于以后恢复
栈帧:为单个过程分配的栈
%ebp为帧指针、%esp为栈指针,栈指针可以移动,大多数信息访问相对于帧指针
访问信息
一个IA32的中央处理器单元包含一组8个存储32位数值的寄存器。所有八个寄存器都可以作为16位(字)或32位(双字)来访问:%esi,%edi可以用来操纵数组
%esp,%ebp用来操纵栈帧
可以独立访问前四个寄存器的两个低位字节(后向兼容)
32位的%eax,16位的%ax,8位的%ah,%al都是独立的
操作数三种类型:
立即数,即常数值寄存器,表示某个寄存器的内容
存储器,根据计算出来的地址(有效地址)访问某个存储器位置
条件码
CF进位标志,检查无符号数的溢出ZF零标志
SF符号标志
OF溢出标志
除了只设置条件码而不更新目标寄存器外,CMP与SUB行为相同,TEST与ADD行为相同
访问条件码
条件码使用方法:根据条件码的组合,设置字节为0或1
条件跳转到程序其他部分
条件传送数据
SET指令的目的操作数是8个单字节寄存器元素之一或是存储一个字节的存储器位置
问题和解决过程
case的序号对应跳转表中的序号,从0开始。本周代码托管截图
代码链接
其他(感悟、思考等,可选)
这一周是汇编语言,之前学过感觉比较熟悉。汇编是最接近计算机硬件的语言,了解后对掌握计算机程序运行等方面有提高。也该多花时间学习了,学习带来的充实感是非常好的。
参考资料
《深入理解计算机系统V2》学习指导...
相关文章推荐
- 20145318 《信息安全系统设计基础》第6周学习总结
- 20145307陈俊达《信息安全系统设计基础》第5周学习总结PT1
- 20145214 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155311 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 学号20155329 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155222 《信息安全系统设计基础》第5周学习总结
- 20145318 《信息安全系统设计基础》第5.5周学习总结
- 20145237《信息安全系统设计基础》第5周学习总结(1)
- 20145305 《信息安全系统设计基础》第5周学习总结
- 20145202 《信息安全系统设计基础》第5周学习总结(2)
- 20145216史婧瑶《信息安全系统设计基础》第5周学习总结
- 学号 《信息安全系统设计基础》第5周学习总结(续)
- 2017-2018-1 20155330 《信息安全系统设计基础》第5周学习总结
- 20145318 《信息安全系统设计基础》第7周学习总结
- 20145315 《信息安全系统设计基础》第5周学习总结
- # 20145303 《信息安全系统设计基础》第5周学习总结(2)
- 20145319 《信息安全系统设计基础》第5周学习总结
- 20155236 2017-2018-1 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155324 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155323 《信息安全系统设计基础》第5周学习总结