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

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

教材学习内容总结

X86 寻址方式经历三代:

  1. DOS时代的平坦模式,不区分用户空间和内核空间,很不安全
  2. 8086的分段模式
  3. IA32的带保护模式的平坦模式

    Intel与ATT格式的不同:

  4. Intel代码省略了指示大小的后缀
  5. Intel代码省略了寄存器名字前的“%”符号
  6. Intel代码用不同的方式来描述存储器中的位置。
  7. 在带有多个操作数的指令情况下,列出操作数的顺序相反

    操作数的三种类型:

  8. 立即数,也就是常数值。
    在ATT格式的汇编代码中,立即数的书写方式是“”后跟一个用标准C表示法表示的整数。任何一个能放进32 位字中的数值都可以用做立即数,不过汇编器在可能时会使用一个或两个字节的编码。

  9. 寄存器,表示某个寄存器的内容

  10. 存储器,根据计算出来的地址(有效地址)访问某个存储器的位置。
  • 有效地址的计算方式: Imm(Eb,Ei,s) = Imm + R[Eb] + R[Ei]*s

    注意:ATT格式中的方向:第一个是源操作数,第二个是目的操作数。

  • 栈是一个数据结构,可以添加或者删除数据,总是遵循“先进后出”原则。
  • 栈顶:总是从栈的这端插入和删除元素。
  • 栈顶元素的地址是所有栈中元素地址中最低的。

    lean指令

  • lean是加载有效地址指令

  • 指令形式实际上并没有引用存储器,它的第一个操作数其实是将有效地址写入到目的操作数

  • 可以为后面的存储器引用产生指针,简洁的表述普通算数操作。

  • 目的操作数必须是一个寄存器。

    过程

  1. 过程调用:
  • 进入,为过程的局部变量分配空间
  • 将数据(以过程参数和返回值的形式)和控制从代码的一部分传递到另一部分。
  • 退出,释放这些空间。
  1. 转移控制
  • call

    1. call指令和转移指令相似,同样分直接和间接,直接调用的目标是标号,间接调用的目标是*后面跟一个操作数指示符,和JMP一样。

    2. CALL指令的效果是将返回地址入栈,并跳转到被调用过程的起始处。返回地址是还在程序中紧跟在call后面的那条指令的地址。

  • ret

    1. ret指从栈中弹出地址,并跳转到这个位置。
    2. 在上学期的汇编语言学习中,call和ret常被用来进行子函数、子模块的调用。

课后作业

实验截图
886825-20161016183145764-42986242.png

本周代码托管截图

886825-20161016183203795-1563042268.png

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

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周20/2001/220/20
第二周30/2002/418/38
第三周50/2001/422/30
第四周0/2000/00/30
第五周100/2001/225/30

参考资料

转载于:https://www.cnblogs.com/5315hejialei/p/5967325.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值