2017-2018-1 20155338 《信息安全系统设计基础》第七周学习总结

2017-2018-1 20155338 《信息安全系统设计基础》第七周学习总结

教材学习内容总结

Y86-64指令集体系结构

程序员可见状态

概念:Y86程序中的每条指令会读取或修改处理器状态的某些部分,这些称之为处理器的可见状态。

Y86处理器状态可以访问和修改程序寄存器、条件码、程序计数器和存储器,状态码指明程序是不是运行正常。

名词代表及意义:

DMEM:存储器 很大的字节数组,保存着程序和数据。Y86程序用虚拟地址来引用存储器位置。

RF:程序寄存器 %eax,%ecx,%edx,%ebx,%esi,%edi,%esp(出栈、入栈、调用和返回指令作为栈指针),%ebp

Stat:程序状态码 它表明程序执行的总体状态。它会指示是正常运行还是出现了某种异常。

PC:程序计数器 存放当前正在执行的指令

CC:条件码
ZF、SF、OF(都是一位条件码,用来保存最近的算术或逻辑指令所造成影响的有关信息。)

Y86指令

(1)、指令编码长度从1个字节到6个字节不等,一条指令含有一个单字节的指令指示符,或者含有一个单字节的指示符。字段fn指明是某个整数操作、数据移动条件、或是分支条件。

指令集锦:

4个整数操作指令。addl、subl、andl和xorl。

7个跳转指令(jXX)。jne、jl、jle、je、jmp、jge和jg。

有6个条件传送指令(cmovXX)。cmovle、cmovl、cmove、cmovne、cmovge和cmovg。只有当条件码满足所需要的约束时,才会更新目的寄存器的值。

call指令将返回地址入栈,然后跳到目的地址。

ret指令从这样的过程调用中返回。

pushl和popl指令实现了入栈和出栈的功能。

halt指令停止指令的执行。对于Y86来说,执行halt指令会导致处理器停止,并将状态码设置为HLT。

逻辑设计和硬件控制语言HCL

逻辑门

逻辑门是数字电路的基本计算元素,输出为输入位值的某个布尔函数。

HCL表达式:

AND: &&
OR: ||
NOT: !

逻辑门只对单个位的数进行操作,而不是整个字。

常见的n路操作表示,例:AND门,输入为a,b,c,HCL表示为a&&b&&c

组合电路和HCL布尔表达式

组合电路是将很多的门组合成网构建计算块的电路

构建的两条限制:

网必须是无环的,也就是不能形成一个回路

两个或多个逻辑门的输出不能连接在一起,否则会使线上的信号矛盾

Y86的顺序实现

SEQ的时序

SEQ的实现包括组合逻辑和两种存储器设备:

1、时钟寄存器

2、程序计数器和条件码寄存器

组合逻辑不需要时序或控制。

四个硬件单元需要时序进行明确控制:

程序计数器、条件码寄存器、数据存储器和寄存器文件

通过一个时钟信号来控制,它触发将新值装载到寄存器以及将值写到随机访问存储器。只需要寄存器和存储器的时钟控制。

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

  • 问题1:

    输入
    ./psim -t -g ../y86-code/asum.yo之后显示找不到/asum.yo命令

  • 问题1解决方案:

    回到y86-code文件夹,显示的是asumi.yo文件,可能每个人的不一样,把之前的命令改成/asumi.yo就可以打开模拟器了。

安装tcl/tk

下载并解压sim文件夹

输入make clean命令,并make,然后用cat命令查看

打开模拟器

代码托管

结对及互评

本周结对学习情况

20155307

结对学习内容
- 教材第四章

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 2000行 15篇 200小时
第一周 150/150 1/1 17/17
第二周 70/220 1/2 12/29
第三周 100/320 1/3 10/39
第四周 100/420 1/4 10/59
第五周 80/500 2/6 22/81
第六周 300/800 2/8 30/111
第七周 200/1000 1/9 25/136
  • 计划学习时间:20小时

  • 实际学习时间:25小时

posted @ 2017-11-05 19:15  Csj-rup  阅读(249)  评论(0编辑  收藏  举报