• 2018-2019-1 20165205 《信息安全系统设计基础》第三周学习总结


    第三周总结

    寻址方式经历三代

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

    两个抽象

    1. 指令集体系结构(ISA):定义了指令的相关规则,且多条指令是并发执行的,结果像是顺序执行;
    2. 虚拟地址:存储器系统是将多个硬件存储器和操作系统组合起来的

    x86-64指令:1-15字节不等

    指令格式:OPEN[DEXT[,SRC]];

    处理器

    • 程序计数器:%rip指示将要执行的下一条指令在储存器中的地址。
    • 整数寄存器:包含16个命名的位置。
    • 条纹寄存器
    • 浮点寄存器

    生成汇编文件:使用-S参数

    gcc -S mstore.c

    反汇编:使用OBJDUMP

    objdump -d mstore.o

    数据格式

    操作数指示符

    1. 立即数
    2. 寄存器
    3. 内存引用:Imm(Eb,Ei,s)=M[Imm+R[Eb]+R[Ei]*s]

    数据传输指令

    • movb 传输字节
    • movw 传输字
    • movl 传输双字
    • movs 符号位扩展
    • movz 零扩展

    寻址方式

    • 立即数寻址
    • 寄存器寻址
    • 储存器寻址

    压入和弹出栈数据

    • pushq
    • popq

    有效加载地址

    • leal

    条件码

    • CF进位标志
    • ZF零标志
    • SF符号标志
    • OF溢出标志

    过程

    • 形式:函数,方法,子例程,处理函数
    • 转移控制
      • 将控制从函数P转移到函数Q:call;ret;
    • 数据传输
      • 把数据作为参数传递,从过程不返回或返回一个或多个值
      • x86-64中,可以通过寄存器最多传递6个整型参数
    • 分配和释放内存
      • 栈上的局部存储
      • 寄存器中的局部存储空间
  • 相关阅读:
    字符串的操作
    vue2.0状态
    vue2.0 Loding组件(收集转载)
    动态加载js文件,并在加载成功后执行回调函数
    Vue2.0 keep-alive 后组件不使用缓存
    前端必要知识汇总
    Vue2.0的群组路由
    video视频限时观看
    iOS军火库-好用的ActionSheetView
    我的网络层是这么设计的
  • 原文地址:https://www.cnblogs.com/mushroomissmart/p/9787525.html
Copyright © 2020-2023  润新知