2018-2019-1 20165225《信息安全系统设计基础》第四周学习总结
2018-2019-1 20165225《信息安全系统设计基础》第四周学习总结
教材学习内容总结
-
程序员的可见状态如下:
Y86-64状态码:
值 | 名字 | 含义 |
---|---|---|
1 | AOK | 正常操作 |
2 | HLT | 遇到器执行halt指令 |
3 | ADR | 遇到非法地址 |
4 | INS | 遇到非法指令 |
寄存器
-
一个x86-64的CPU包含一组16个存储64位的通用目的寄存器。这些寄存器用来存储整数数据和指针。下图展示了这16个寄存器:
Y86-64指令及字节序列
-
课本P246图4-2展示了Y86-64指令集,在后面的学习中也经常需要查看并分析这个图表。
Y86-64的顺序实现
取指:从内存读取指令字节
译码:从寄存器文件读入最多两个操作数
执行:算术/逻辑单元执行指令致命的操作、计算内存引用的有效地址;或增加/减少指针。
访存:将数据写入内存或从内存读出数据。
写回:最多可以写两个结果到寄存器文件
更新:将pc设置成下一条指令的地址
SEQ顺序
取指:将程序计数器寄存器作为地址,指令内存读取指令的字节
译码:从读端口A、B同时读寄存器值valA和valB
执行:根据指令类型,将算术/逻辑单元用于不同的目的
访存:数据内存读出或写入一个内存字
写回:两个文件端口分别用来写ALU计算出来的值和写从数据内存中独处的值
pc更新
HCL
熟悉各个指令的运行过程和值的变化(图就不一一列出了)
- movq指令:
irmovp 、rrmovq 、mrmovq 、rmmovq。
整数操作指令 :
addq 、 subq 、 andq 、xorq。
跳转指令:
jmp 、 jle 、 jl 、je 、 jne 、 jge 、jg。
条件传送指令:
cmovle 、 comvl 、 cmove 、 cmovne 、comvge 、 cmovg。
-
call指令将返回地址入栈,ret从这样的调用中返回。
pushq指令入栈,popq指令出栈。
halt指令停止指令的执行。
本周错题总结
Y86-64中()指令没有访存操作.
A .rrmovl
B .irmovq
C .rmmovq
D .pushq
E .jXX
F .ret
正确答案: A B E 你的答案: A B
一个典型的寄存器文件包括()
A .读端口
B .控制端口
C .写端口
D .时钟
正确答案: A C D 你的答案: C D
结对学习
- 本周依然和5221同学一起复习。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 3500行 | 12 | 14小时 | |
第一周 | 63/150 | 1/12 | 3小时 | |
第二周 | 150/150 | 2/12 | 10小时 | |
第三周 | 150/150 | 3/12 | 13小时 | |
第四周 | 97/150 | 4/12 | 10小时 |