贵州企业网站开发公司,北京注册公司流程,百度收录网站电话,网络规划设计师自学能通过么20145224 《信息安全系统设计基础》第五周学习总结 教材学习内容总结 3.1 历史观点 X86寻址的三个时代#xff1a; 1、DOS时代的平坦模式#xff0c;不区分用户空间和内核空间#xff0c;很不安全#xff1b;
2、8086的分段模式#xff1b;
3、IA32的带保护模式的平坦模式…20145224 《信息安全系统设计基础》第五周学习总结 教材学习内容总结 3.1 历史观点 ·X86寻址的三个时代 1、DOS时代的平坦模式不区分用户空间和内核空间很不安全
2、8086的分段模式
3、IA32的带保护模式的平坦模式。 3.2 程序编码 ·gcc编译器的编译选项 -01 第一级优化 多作为学习工具
-02 第二级优化 所得到的程序性能更优
提高优化级别会使最终程序运行得更快但编译时间也要更长用调试工具对代码进行调试会更加困难。 ·源代码转化为可执行代码 C预处理器扩展源代码gcc -E hello.c -o hello.i
编译器产生汇编代码gcc -S hello.i -o hello.s
汇编器将汇编代码转换成二进制目标代码gcc -c hello.s -o hello.o
链接器将目标代码文件与现实库函数的代码合并产生最终的课执行文件。gcc hello.o -o hello 3.4访问信息 ·操作数的三种类型立即数、寄存器、存储器 ·MOV指令将原操作数的值复制到目的操作数中不能够从存储器传送到存储器 3.5 算数和逻辑操作 ·加载有效地址leal的指令形式是从存储器读数据到寄存器。但该指令并不是从指定位置读入数据而是将有效地址写入到目的操作数。 ·一元操作 INC自增1
DEC自减1
NEG取负
NOT取补 ·二元操作 ADD加
SUB减
IMUL乘
XOR异或
OR或
AND与 ·移位操作 SAL左移
SHL左移
SAR算数右移
SHR逻辑右移 3.6 控制 ·两种实现条件行为的低级机制测试数据然后根据测试的结果来改变控制流或者数据流 ·jump指令可以改变一组机器代码指令的执行顺序 ·leal指令不会改变任何条件码 ·CMP和TEST只设置条件码而不改变任何其他寄存器 代码调试中的问题和解决过程 我安装的是64位的Ubuntu程序但他并不能使用-m32生成32位文件 所生成的32位文件里面是空的 系统也不支持-01的编译选项使用gcc -S code.c指令生成文件如下 二进制的机器码使用od打开 反汇编的结果 本周代码托管链接 https://git.oschina.net/Kevin_s/Linux_C.git 学习进度条 代码行数新增/累积博客量新增/累积学习时间新增/累积重要成长目 标5000行30篇400小时第一周200/2002/220/20第二周300/5002/418/38第三周500/10003/722/60第四周300/13002/930/90参考资料 《深入理解计算机系统V2》学习指导程序的机器级表示 - 实验楼...转载于:https://www.cnblogs.com/20145224kevs/p/5967157.html