2018-2019-1 20165235 《信息安全系统设计基础》第四周学习总结
2018-2019-1 学号 《信息安全系统设计基础》第X周学习总结
教材学习内容总结
Y86-64指令
- moveq分别分成4个不同的指令:
irmovq
,rrmovq
,mrmovq
,rmmovq
.第一个字母代表源的类型,第二个字母代表目的类型。不允许内存到内存,或者将立即数传入内存。 - call指令将返回地址入栈,然后跳到目的地址。
- halt指令将返回地址入栈,然后跳到目的地址。
指令编码
- 如图:
- 以及各类寄存器的编码:
- 那些需要寄存器的指令将寄存器指示符号设为0xF。
- 所有的整数采取小端法编写,当指令反汇编后,这些字节以相反的顺序出现。
Y86-64异常
AOK
:正常操作。值:1HLT
:遇到halt指令。 值:2.ADR
:遇到非法地址。值:3.INS
:遇到非法指令。 值:4.
Y86-64程序
- 将常数加载到寄存器,因为它在算数术指令中不能使用立即数。
HCL
- 多路复用器中不要求选择表达式之间互斥,选择表达式是顺序求值的。
存储器与时钟
- 存储设备是由一个时钟控制的,时钟是一个周期性信号。
- 如果时钟是底电位的,寄存器的输出就仍然保持不变,当变成高电位时,输入信号加载到寄存器中,成为下一个状态,直到下一个上升沿,这个状态一直是寄存器的新输出。每当上升沿时,值才会从寄存器输入传送到输出。
- 寄存器文件写入字是由时钟信号控制的,每次上升沿时输入Valm上的值才会被写入dstw上的寄存器ID指示的程序寄存器。
Y86-64的顺序实现
- 处理一条指令包含的操作:
1.取指
2.译码
3.执行
4.访存
5.写回
6.更新PC
SEQ硬件结构
教材学习中的问题和解决过程
-
问题1: 为什么对伪指令不生成编码?
-
问题1解决方案:汇编伪指令和汇编语言指令的区别
-
...
代码调试中的问题和解决过程
- 问题1:为什么对图中代码进行编译时不会生成汇编指令?
- 问题1解决方案:尚未解决
代码托管
学习总结
本周学习不怎么认真,对这门课的学习花费的时间不怎么多。在学习中也遇到了许多问题,但也弄懂了一些关系比如以前学汇编是80-86处理器,上周学的第三章是X86-64处理器,这周是Y86-64处理器,不同的处理器对应的汇编代码也不同,因此汇编生成的二进制代码也不一样。