学号 《信息安全系统设计基础》第5周学习总结(续)

学号 《信息安全系统设计基础》第X周学习总结

教材学习内容总结

本次主要对书上内容进行总结:

86 寻址方式经历三代:

1 DOS时代的平坦模式,不区分用户空间和内核空间,很不安全

2 8086的分段模式

3 IA32的带保护模式的平坦模式

ISA定义: ISA即指令集体系结构,在这个体系结构内规定了指令执行的顺序。

使用 gcc -O1 -S xxx.c可产生汇编文件

使用 gcc -O1 -c xxx.c可编译汇编代码,此时会产生目标代码文件 xxx.o

使用objdump -d xxx.o可反汇编

二进制文件可以用od 命令查看,也可以用gdb的x命令查看。

“.”开头的行都是指导汇编器和链接器的命令,这些行去掉后就是“过程体”

X

操作数大概分为三种类型:立即数 寄存器 存储器

数据传送指令

注:IA32的两个操作数都不能只想存储器位置

其中MOVS和MOVZ都是将晓得数据源复制到打的数据位置,空余用零扩展(MOVZ)或者符号扩展(MOVS)填充。

算术和逻辑操作分为四组:

1 加载有效地址(leal)
2 一元操作(INC DEC NEG NOT)
3 二元操作(ADD SUB IMUL XOR OR AND)
4 移位(SAL SHL SAR SHR)

注:二元操作中第一个是源操作数 第二个是目的操作数。两个位置不能同时指向存储器位置。

支持过程调用和返回的指令:

call Label: 过程调用

call *Operand: 过程调用

leave: 为返回准备栈

ret: 从过程调用中返回

call: 指令的效果是将返回地址入栈,并跳转到被调用过程的起始处。

课后作业中的问题和解决过程

练习3.1中有一道260(%eax,%edx)的题,一开始260找不到对应的值,后来知道是十进制,做出来了,后面练习3.6中OXA一样。

本周代码托管截图

链接

http://git.oschina.net/HZW20145322/week-5

其他(感悟、思考等,可选)

之前没怎么看书,觉得书上的知识点太多,直接看老师总结的, 后来发现个那样更学不懂,还是得脚踏实地才行。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 100/200 1/1 13/20
第二周 100/500 1/2 15/38
第三周 100/1000 1/3 20/60
第五周 70/1300 2/5 30/90
原文地址:https://www.cnblogs.com/HZW20145322/p/5967973.html