zoukankan      html  css  js  c++  java
  • 2017-2018-1 20155323 《信息安全系统设计基础》第5周学习总结

    2017-2018-1 20155323 《信息安全系统设计基础》第5周学习总结

    教材学习内容总结

    机器级代码

    • 对于机器级编程来说,两种抽象很重要:

    1.机器级程序的格式和行为,定义为指令集体系结构。

    2.机器级程序使用的存储器地址是虚拟地址。

    • X86的寻址方式经历过三代:

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

    2.8086的分段模式

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

    • 几个处理器:

    程序计数器(CS:IP)

    整数寄存器(AX,BX,CX,DX)

    条件码寄存器(OF,SF,ZF,AF,PF,CF)

    浮点寄存器

    • 一条机器指令只执行一个非常基本的操作。

    过程

    • 过程是软件中一种很重要的抽象。它提供了一种封装代码的方式,用一组指定的参数和一个可选的返回值实现了功能。然后可以在程序中不同的地方调用这个函数。
    • 过程的形式多种多样:函数,方法,子例程,处理函数等。
    • 过程调用:

    首先是进入,为过程的局部变量分配空间

    接着将数据(以过程参数和返回值的形式)和控制从代码的一部分传递到另一部分。

    最后退出,释放这些空间。

    • 本质上栈帧还是栈。
    • 两个指针

    最顶端的栈帧以两个指针界定:

    寄存器%ebp-帧指针

    寄存器%esp-栈指针

    栈指针可移动,所以信息访问多相对于帧指针。

    • 转移控制有以下几种指令

    call(过程调用)

    ret(从过程调用中返回)

    leave(这个指令可以使栈做好返回的准备)

    • call指令将控制转移到一个函数的起始,而ret指令返回到这次调用后面的那条指令。
    • 程序寄存器组是唯一能被所有过程共享的资源。

    保存一个值以待以后运算可用的时候,有两种选择:

    1.由调用者保存。在调用之前就压进栈。

    2.由被调用者保存,在刚被调用的时候就压进栈,并在返回之前恢复。

    教材学习中的问题和解决过程

    问题1:不清楚栈帧和栈的区别

    解答:其实栈帧的本质还是栈。

    代码托管

    WvxzJ.png

    结对及互评

    本周结对学习情况

    20155314刘子健
    - 结对学习内容
    第三章

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 50/50 1/1 5/5
    第二周 100/100 1/2 5/10
    第三周 100/200 1/3 5/15
    第四周 100/300 1/4 5/20
  • 相关阅读:
    day03接口的初期认识
    day03模板方法设计模式
    day02抽象类的练习
    day02抽象类1
    final 关键字
    day01子类与父类特点
    day01继承extends
    day01函数的重载
    图解HTTPS
    编译的时候遇到 The type java.lang.Object cannot be resolved.
  • 原文地址:https://www.cnblogs.com/fixedl/p/7712158.html
Copyright © 2011-2022 走看看