20145315 《信息安全系统设计基础》第5周学习总结
2016-10-16 18:29
267 查看
20145315 《信息安全系统设计基础》第5周学习总结
教材学习内容总结
X86 寻址方式经历三代:
DOS时代的平坦模式,不区分用户空间和内核空间,很不安全8086的分段模式
IA32的带保护模式的平坦模式
Intel与ATT格式的不同:
Intel代码省略了指示大小的后缀Intel代码省略了寄存器名字前的“%”符号
Intel代码用不同的方式来描述存储器中的位置。
在带有多个操作数的指令情况下,列出操作数的顺序相反
操作数的三种类型:
立即数,也就是常数值。在ATT格式的汇编代码中,立即数的书写方式是“”后跟一个用标准C表示法表示的整数。任何一个能放进32 位字中的数值都可以用做立即数,不过汇编器在可能时会使用一个或两个字节的编码。
寄存器,表示某个寄存器的内容
存储器,根据计算出来的地址(有效地址)访问某个存储器的位置。
有效地址的计算方式: Imm(Eb,Ei,s) = Imm + R[Eb] + R[Ei]*s
注意:ATT格式中的方向:第一个是源操作数,第二个是目的操作数。
栈
栈是一个数据结构,可以添加或者删除数据,总是遵循“先进后出”原则。栈顶:总是从栈的这端插入和删除元素。
栈顶元素的地址是所有栈中元素地址中最低的。
lean指令
lean是加载有效地址指令指令形式实际上并没有引用存储器,它的第一个操作数其实是将有效地址写入到目的操作数
可以为后面的存储器引用产生指针,简洁的表述普通算数操作。
目的操作数必须是一个寄存器。
过程
过程调用:进入,为过程的局部变量分配空间
将数据(以过程参数和返回值的形式)和控制从代码的一部分传递到另一部分。
退出,释放这些空间。
转移控制
call
call指令和转移指令相似,同样分直接和间接,直接调用的目标是标号,间接调用的目标是*后面跟一个操作数指示符,和JMP一样。
CALL指令的效果是将返回地址入栈,并跳转到被调用过程的起始处。返回地址是还在程序中紧跟在call后面的那条指令的地址。
ret
ret指从栈中弹出地址,并跳转到这个位置。
在上学期的汇编语言学习中,call和ret常被用来进行子函数、子模块的调用。
课后作业
实验截图本周代码托管截图
其他(感悟、思考等,可选)
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 20/200 | 1/2 | 20/20 | |
第二周 | 30/200 | 2/4 | 18/38 | |
第三周 | 50/200 | 1/4 | 22/30 | |
第四周 | 0/200 | 0/0 | 0/30 | |
第五周 | 100/200 | 1/2 | 25/30 |
参考资料
《信息安全系统设计基础》教学进程...
相关文章推荐
- 20145315 《信息安全系统设计基础》第3周学习总结
- 20145303 《信息安全系统设计基础》第5周学习总结(1)
- 20145238荆玉茗 《信息安全系统设计基础》第5周学习总结
- 20145230 《信息安全系统设计基础》第5周学习总结
- 20145223《信息安全系统设计基础》第5周学习总结
- 20145202 《信息安全系统设计基础》第5周学习总结(1)
- 20145212 《信息安全系统设计基础》第5周学习总结
- 20145214 《信息安全系统设计基础》第5周学习总结
- 20145209 《信息安全系统设计基础》第5周学习总结
- 20145207 《信息安全系统设计基础》第5周学习总结
- 20145313张雪纯《信息安全系统设计基础》第5周学习总结
- 20145336张子扬 《信息安全系统设计基础》第5周学习总结(一)
- 20145338 《信息安全系统设计基础》第5周学习总结
- 20145217《信息安全系统设计基础》第5周学习总结(1)
- 20145315 《信息安全系统设计基础》第1周学习总结
- 20145317 《信息安全系统设计基础》第5周学习总结
- 20145307陈俊达《信息安全系统设计基础》第5周学习总结PT1
- 20145305 《信息安全系统设计基础》第5周学习总结
- 20145202 《信息安全系统设计基础》第5周学习总结(2)
- 20145308 《信息安全系统设计基础》第5周学习总结