学号 《信息安全系统设计基础》第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 |