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

    教材学习内容总结

    知识点书上都有,就不一一总结了,老师说浪费时间没有必要,那就不写了。

    实验楼实践

    删除gcc产生代码中以"."开头的编译器指令,针对每条指令画出相应栈帧的情况

    学习中的问题和解决过程

    1.出现cmovl和cmovge

    解决:CMOVL/CMOVNGE——小于/不大于或者等于——(SF异域OF) = 1

    2.练习题29中出现jmp .L7(,%eax,4),不理解括号前已经用标识了此处需要跳转,为什么又要写出括号中的地址

    L7是跳转表,*指示此处跳到跳转表,括号中的地址是具体跳转到的位置

    3.栈和栈帧的关系

    栈:
    栈底指针和栈顶指针(执行时,它在动),栈底位于最下。
    一种特殊的数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。
    存储原则是先进后出。
    对栈的插入与删除操作中,不需要改变栈底指针。
    栈是从高地址向低地址延伸的。
    栈——相对整个系统而言,调用栈相对某个进程而言。
    栈帧——则是相对某个函数而言,调用栈就是正在使用的栈空间,由多个嵌套调用函数所使用的栈帧组成。
    栈帧表示程序的函数调用记录,而栈帧又是记录在栈上面。(为单个过程分配的那部分栈称为栈帧)
    每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息。因此栈作用就是用来保持栈帧的活动记录(即函数调用)。

    4.关于过程

    调用者caller,被调用者callee。
    当caller调用callee时,caller的返回地址被压入栈中,形成caller栈帧的末尾。
    返回地址:就是当程序从callee返回时应该继续执行的地方(指令的地址),当被调用过程返回时,程序会从此处继续执行。
    callee的栈帧从保存的帧指针的值(%ebp)开始,其后即为其保存的寄存器的值,和callee调用其他过程的参数。

    5.CMP和SUB用在什么地方
    sub d,s 是d-s结果送回d中,即目的操作数中
    而cmp d,s也是相减但结果不送回目的操作数中,一般用作比较数大小时用

    6.SET指令根据t=a-b的结果设置条件码

    问题

    在leal指令中,形如(%eax,%eax,4), %eax ,此时寄存器将值变为5倍,那么为什么不直接写成(%eax,5)
    括号内的常数均为偶数(2,4,8),未出现奇数,是不是这种写法中括号内一定为(2n)

    代码托管

    代码托管连接

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

    第三章的比较多,大部分是关于汇编与反汇编的东西,有点不太好理解,还需要多加练习加深理解。

    老师也强调了博客没有必要摘抄太多教材上面的东西,只要写出自己的实践过程和遇到的问题和解决方法,这样写起博客来比以往轻松了很多。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 2/2 30/30
    第二周 300/500 1/3 20/50
    第三周 100/600 1/4 20/70
    第五周 300/900 1/5 30/100

    参考资料

  • 相关阅读:
    大胆决定+细致用功, 才可能改变命运
    采用用同步编程的方式实现跨进程异步获取数据
    关于DataGridViewComboBoxCell修改后提交数据源
    学习:如何具有坚韧的性格
    汉语-成语:坚韧不拔
    汉语-词语:坚韧
    阿里云-OSS-Help-SKD参考-.NET:前言
    阿里云-OSS-OSS管理控制台:Bucket列表
    阿里云-OSS-OSS管理控制台:概览
    汉语-词语:推理
  • 原文地址:https://www.cnblogs.com/summerharper/p/5962347.html
Copyright © 2011-2022 走看看