zoukankan      html  css  js  c++  java
  • 2019-2020-1 20175325 《信息安全系统设计基础》第四周学习总结

    2019-2020-1 20175325 《信息安全系统设计基础》第四周学习总结

    一、目录:

    • 学习内容:处理器体系结构
    • 上周错题
    • 感想
    • PSP

    二、学习内容:处理器体系结构

    • 程序寄存器(RF):%rax%rsp%r8%r12%rcx%rbp%r9%r13%rdr%rsi%r10%r14%rbr%rdi%r11

    • 条件码:ZF(零标志位)、SF(符号标志位)、OF(溢出标志位)

    • 程序状态:

    • 程序计数器(PC):正在执行的指令的地址;

    • Y86-64指令:

    • 寄存器标识符范围:0-0xE
    • 程序寄存器的存储:寄存器文件
    • 不应访问任何寄存器:用0xF表示
    • 有7个跳转指令:jmpjlejljejnejgejg
    • Y86-64的顺序实现:
    • 取指(fetch)
    • 译码(decode)
    • 执行(execute)
    • 访存(memory)
    • 写回(write back)
    • 更新PC(PC update)
    • Y86-64指令编码:
    • 编码长度:1字节~10字节
    • 组成:一个单字节的指令指示符 、一个单字节的寄存器指示符 和一个八字节的常数字
    • halt:将终止指令的执行
    • nop:占位指令
    • xxmovl:数据传送指令,其中r代表寄存器,m代表存储器,i代表立即数
    • rrmov:将一个寄存器的值赋给另外一个寄存器
    • opl:操作指令,比如加法、减法等等
    • jxx:条件跳转指令,根据后面的条件进行跳转
    • cmovxx:条件传送指令,xx代表的是条件(只发生在两个寄存器之间,不将数据传送到存储器)
    • call:调用指令,将返回地址入栈并跳到目标地址
    • ret:返回指令,将返回地址入PC并跳到返回地址
    • push和pop:入栈和出栈
    • 实现一个数字系统需要三个重要的组成部分:
    • 计算对位进行操作的函数的组合逻辑
    • 存储位的存储单元
    • 控制存储单元更新的时钟信号
    • HCL整数表达式:
    [
      select1 :   expr_1
      select2 :   expr_2
          ......
      selectk :   expr_k
    ]
    
    • 判断集合关系的通用格式是:
    iexpr in {iexpr1,iexpr2,……,iexprk}
    
    • HCL与HDL的区分:
    • HCL:硬件控制语言
    • HDL:硬件描述语言
    • HCL表达式中的运算符:只对单个字进行操作
    • 与:AND用“&&”表示
    • 非:NOT用“!”表示
    • 与、或、非三种逻辑门可以用一种与非门或者或非门实现

    • HCL表达式和C语言中逻辑表达式的区别:

    • 组合逻辑电路的输出会持续地响应输入的变化;C表达式只有在程序执行过程中被遇到时才会求值。
    • C的逻辑表达式允许参数是任意整数,0表示FLASE,其他任何值都表示TRUE;逻辑门只对位值0和1进行操作。
    • C的逻辑表达式可能只被部分求值;组合逻辑没有部分求值的规则,逻辑门只是简单地响应输入的变化。
    • 存储器和时钟
    • 时钟寄存器:简称寄存器,存储单个位或字。时钟信号控制寄存器加载输入值。
    • 随机访问存储器:简称存储器,存储多个字,用地址来选择读取或写入的值
    • 两种存储器设备
    • 时钟寄存器(程序计数器和条件码寄存器)
    • 随机访问寄存器(寄存器文件、指令内存和数据内存)

    三、上周错题:

    • 错题一:

    • 解答:
      push不影响%rbp的值,所以仍为之前的0x108。

    四、感想:
    在课上的测试题前两个做的不太好,说明有些内容还是没有彻底掌握。

    五、PSP:

    代码行数 博客量 学习时间
    目标 5000 25篇 400小时
    第四周 240/300 1/3 12/20
  • 相关阅读:
    C++静态库与动态库(转)
    Tornado异步
    Yacc与Lex
    云数据库
    linux如何查看端口被谁占用
    Innodb Double Write
    MySQL GTIDs(global transaction identifiers)
    Java并发编程:线程池的使用
    Oracle 建立索引及SQL优化
    解决redhat linux下IP地址可以ping通,域名无法ping通问题
  • 原文地址:https://www.cnblogs.com/sgm5/p/11710369.html
Copyright © 2011-2022 走看看