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个跳转指令:
jmp
、jle
、jl
、je
、jne
、jge
、jg
- 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 |