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

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

教材学习内容总结

Y86-64指令

  • moveq分别分成4个不同的指令:irmovq,rrmovq,mrmovq,rmmovq.第一个字母代表源的类型,第二个字母代表目的类型。不允许内存到内存,或者将立即数传入内存。
  • call指令将返回地址入栈,然后跳到目的地址。
  • halt指令将返回地址入栈,然后跳到目的地址。

指令编码

  • 如图:

  • 以及各类寄存器的编码:
  • 那些需要寄存器的指令将寄存器指示符号设为0xF。
  • 所有的整数采取小端法编写,当指令反汇编后,这些字节以相反的顺序出现。

Y86-64异常

  • AOK :正常操作。值:1
  • HLT:遇到halt指令。 值:2.
  • ADR:遇到非法地址。值:3.
  • INS:遇到非法指令。 值:4.

Y86-64程序

  • 将常数加载到寄存器,因为它在算数术指令中不能使用立即数。

HCL

  • 多路复用器中不要求选择表达式之间互斥,选择表达式是顺序求值的。

存储器与时钟

  • 存储设备是由一个时钟控制的,时钟是一个周期性信号。
  • 如果时钟是底电位的,寄存器的输出就仍然保持不变,当变成高电位时,输入信号加载到寄存器中,成为下一个状态,直到下一个上升沿,这个状态一直是寄存器的新输出。每当上升沿时,值才会从寄存器输入传送到输出。
  • 寄存器文件写入字是由时钟信号控制的,每次上升沿时输入Valm上的值才会被写入dstw上的寄存器ID指示的程序寄存器。

Y86-64的顺序实现

  • 处理一条指令包含的操作:
    1.取指
    2.译码
    3.执行
    4.访存
    5.写回
    6.更新PC

SEQ硬件结构

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

代码调试中的问题和解决过程

  • 问题1:为什么对图中代码进行编译时不会生成汇编指令?
  • 问题1解决方案:尚未解决

代码托管

学习总结

本周学习不怎么认真,对这门课的学习花费的时间不怎么多。在学习中也遇到了许多问题,但也弄懂了一些关系比如以前学汇编是80-86处理器,上周学的第三章是X86-64处理器,这周是Y86-64处理器,不同的处理器对应的汇编代码也不同,因此汇编生成的二进制代码也不一样。

posted @ 2018-10-21 19:59  养浩  阅读(185)  评论(0编辑  收藏  举报