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

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


教材学习内容总结

  • 程序员的可见状态如下:

  • image

Y86-64状态码:
名字 含义
1 AOK 正常操作
2 HLT 遇到器执行halt指令
3 ADR 遇到非法地址
4 INS 遇到非法指令
寄存器
  • 一个x86-64的CPU包含一组16个存储64位的通用目的寄存器。这些寄存器用来存储整数数据和指针。下图展示了这16个寄存器:

  • image

Y86-64指令及字节序列
  • 课本P246图4-2展示了Y86-64指令集,在后面的学习中也经常需要查看并分析这个图表。

  • image

Y86-64的顺序实现
取指:从内存读取指令字节
译码:从寄存器文件读入最多两个操作数
执行:算术/逻辑单元执行指令致命的操作、计算内存引用的有效地址;或增加/减少指针。
访存:将数据写入内存或从内存读出数据。
写回:最多可以写两个结果到寄存器文件
更新:将pc设置成下一条指令的地址
SEQ顺序
取指:将程序计数器寄存器作为地址,指令内存读取指令的字节
译码:从读端口A、B同时读寄存器值valA和valB
执行:根据指令类型,将算术/逻辑单元用于不同的目的
访存:数据内存读出或写入一个内存字
写回:两个文件端口分别用来写ALU计算出来的值和写从数据内存中独处的值
pc更新
HCL
  • image

  • image

  • image

  • image

熟悉各个指令的运行过程和值的变化(图就不一一列出了)
  • 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指令停止指令的执行。

  • image

本周错题总结

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小时
posted @ 2018-10-21 19:26  牛奶仔丶  Views(194)  Comments(0Edit  收藏  举报