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

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

    • 我选择的是第四章

    教材学习内容总结

    • 一个处理器支持的指令和指令的字节级编码称为他的指令集体系结构

    • 与x86-64相比,Y86-64指令集的数据类型、指令和寻址方式要少一些

    • Y86-64的状态类似于x86-64.有3个一位的条件码:ZF,SF,OF,他们保存着最近的算术或逻辑指令所造成影响的有关消息。

    • Y86-64用虚拟地址来引用内存位置。硬件和操作系统软件联合起来将虚拟地址翻译成实际或物理地址,指明数据实际存在内存中哪个地方。

    • x86-64的movq指令分成了4个不同的指令。源可以是立即数(i),寄存器(r),内存(m).指令名字的第一个字母就表明了源的类型,目的可以是寄存器(r)或内存(m),指令名字的第二个字母指明了目的的类型。

    • 指令编码。每条指令需要1-10个字节不等,这取决于需要那个字段,每条指令的第一个字节表明指令的类型,这个字节分为两个部分,每部分4位,高4位为代码部分,低4位为功能部分。

    • Y86-64寄存器编号与x86-64相同

    • 对Y86-64来说,程序员可见的状态包括状态码stat,Y86-64将常数加载到寄存器。

    • pushq会把栈指针减8。

    • 处理指令包含操作:取指-译码-执行-访存-写回-更新PC

    • SEQ的实现包括组合逻辑和两种存储器设备:时钟寄存器(程序计数器和条件码寄存器),随机访问存储器(寄存器文件、指令存储器和数据存储器)。

    课后习题

    • 4.47
    我们可以明确的是,这条指令完成的任务为,
    ebp <- M4[cur_ebp]
    esp <- cur_ebp + 4
    
    取指阶段 icode:ifun = D:0
            valP <= PC + 1
    
    译码阶段  valB <= R[%ebp]
    
    执行阶段  valE <= valB + 4    
    
    访存阶段  valM <= M4[valB]
    
    写回阶段  R[%esp] <= valE
            R[%ebp] <= valM
    
    • 4.48
    取指阶段 icode:ifun = M1[PC] = C:0
            
            rA:rB <= M1[PC+1]
            valC <= M4[PC+2]
            valP <= PC + 6
    
    译码阶段  valB <= R[rB]
    
    执行阶段  valE <= valB + valC
            SetCC
    
    访存阶段  
    
    写回阶段  R[rB] <= valE   
    

    和搭档讲解的内容与反馈

    • 通过和搭档(20155235王玥)探讨课下测试和课后习题,包括本周测试中第4章的内容,增加了关于“
      • SEQ+对SEQ的改变有PC的计算挪到取指阶段,电路重定时,插入流水线寄存器,对信号进行重排和标号,处理流水线冒险等。
      • Y86-64中rrmovl,irmovq指令没有访存操作.
      • 有关Y86-64的状态码,AOK表示正常操作,3表示遇到非法地址。“

    这几个知识点的认识

    参考资料

  • 相关阅读:
    【BZOJ 2115】Xor
    COCI 2017-2018#7
    【SCOI 2005】骑士精神
    [cocos2d-x]我发现的内存管理机制的一些问题
    [深度探索C++对象模型]trival constructor和non-trival constructor
    [C++标准模板库:自修教程与参考手册]关于deque
    [C++标准模板库:自修教程与参考手册]关于vector
    [C++标准模板库:自修教程与参考手册]关于auto_ptr
    [cocos2d-x]关于声音和音效
    [cocos2d-x]关于坐标系
  • 原文地址:https://www.cnblogs.com/xxy9712/p/8098358.html
Copyright © 2011-2022 走看看