标签:hal 显卡 基础 应该 bison ges 读取 信息 app
Y86的处理器类似于IA32
状态码stat,它
Y86指令
movl:irmovl、rrmovl、mrmovl、rmmovl,分别显式地指明源和目的地的格式。第一个字母表明源的类型,i(立即数)、r(寄存器)或m(存储器 ),第二个字母代表目的,可以是r或者m。
1.两个存储器传送指令中的存储器引用方式是简单地基址和偏移量形式,即:Imm(Eb) M[Imm+R[Eb]](基址+偏移量)寻址
2.不允许从一个存储器地址直接传送到另一个存储器地址,也不允许将立即数传送到存储器。
1.逻辑门产生的输出,等于它们输入位值的某个布尔函数。
AND &&
OR ||
NOT !
2.逻辑门只对单个位的数进行操作,而不是整个字。
3.逻辑门总是活动的,输入变化输出很快就跟着变化。
1.构建计算块(组合电路)时的限制
必须无环
2.组合逻辑电路和c语言中逻辑表达式的区别
c的逻辑表达式可能被部分求值
一、将处理组织成阶段
六个基本阶段:
二、SEQ硬件实现
三、SEQ的时序
Y86指令集的计算原则:处理器从来不需要为了完成一条指令的执行而去读由该指令更新了的状态。
四、SEQ阶段的实现
更新PC阶段:产生程序计数器的新值,依据指令的类型和是否要选择分支,新的PC可能是valC、valM或者valP。
在完成本周的任务时,我之前的虚拟机崩溃了,没有了图形界面,开机就是终端模式,所以我重新建立了一个虚拟机,然后安装所需软件,开始了本周的任务。
如同其他同学中的博客所写,我也是在参照了大家的博客后开始任务。
先安装bison和flex词法分析工具,在终端中输入sudo apt-get install bison flex
下载sim解压。地址http://csapp.cs.cmu.edu/public/students.html
找到 Chapter 4: Processor Architecture,点击Source distribution (README)如下图所示,下载后在虚拟机中解压。
之后对于makefile进行修改
然后下载sim
编译 在sim文件夹下右键选择在终端中打开,输入make clean;make
然后在终端中make一下,就可以去查看.yo文件了
本周主要是新建虚拟机的问题,重新装必要的软件,设置git。主要是很多同学写的博客十分详细,让我可以少走弯路,快了不少,而且新建的虚拟机也不卡了。而且也复习了一波hdl的内容,拣了拣之前的学习内容。
确定下面的Y86指令序列的字节编码。
irmovl $15,%ebx
rrmovl %ebx,%ecx
loop:
rmmovl %ecx,-3(%ebx)
addl %ebx,%ecx
jmp loop
答案:
irmovl $15,%ebx ##30f30f000000
rrmovl %ebx,%ecx ##2031
loop:
rmmovl %ecx,-3(%ebx) ##4013fdffff
addl %ebx,%ecx ##6031
jmp loop
写出信号xor的HCL表达式,xor就是异或,输入为a和b。信号xor和上面定义的eq有什么关系?
bool xor = (a && !b) || (!a && b)
与bool eq = (!a && !b) || (a && b)的区别为:互补
写一个电路的HCL代码,对于输入字A,B,C,选择中间值。
int Med3 = [
A<=B && A>=C :A;
A<=C && A>=B :A;
B<=A && B>=C :B;
B<=C && B>=A :B;
C<=A && C>=B :C;
C<=B && C>=A :C;
];
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 24篇 | 350小时 | |
第一周 | 0/0行 | 1/2 | 20小时 | |
第二周 | 53/53行 | 1/3 | 25/45小时 | |
第三周 | 130/183行 | 1/4 | 30/75小时 | |
第四周 | 0/183行 | 0/4 | 5/80小时 | |
第五周 | 158/341行 | 1/5 | 30/110小时 | |
第六周 | 84/425行 | 2/7 | 30/140小时 |
本周我做了很多内容,不知道为啥我的之前的虚拟系统有问题,我查了很多资料依旧无法解决,所以我只好用了最笨的方法来处理这个问题,我重新设置了一个虚拟机这个虚拟机很成功,不但之前的所有问题都有解决,并且连在终端中输入汉字都也解决了,虽然我不清楚这是为什么。
本周的内容其实也不少,知识点很多,并且还接触了一个新的语言HCL,书上的一些地方不是很明了,但是多次阅读加上练习就可以更好的弄清楚为什么。
本次的Y86安装离不开张晓涵同学的博客帮助,里面很详细的讲解了如何完成这些步骤,最后可以进行Y86模拟,也练了很多书上的代码。果然,多看多学习有很大的帮助。
确定下面的Y86指令序列的字节编码。.pos 0x100表明这段代码的起始地址应该是0x100
irmovl $15,%ebx
rrmovl %ebx,%ecx
loop:
rmmovl %ecx,-3(%ebx)
addl %ebx,%ecx
jmp loop
答案:
irmovl $15,%ebx ##30f30f000000
rrmovl %ebx,%ecx ##2031
loop:
rmmovl %ecx,-3(%ebx) ##4013fdffff
addl %ebx,%ecx ##6031
jmp loop
写出信号xor的HCL表达式,xor就是异或,输入为a和b。信号xor和上面定义的eq有什么关系?
bool xor = (a && !b) || (!a && b)
与bool eq = (!a && !b) || (a && b)的区别为:互补
写一个电路的HCL代码,对于输入字A,B,C,选择中间值。
int Med3 = [
A<=B && A>=C :A;
A<=C && A>=B :A;
B<=A && B>=C :B;
B<=C && B>=A :B;
C<=A && C>=B :C;
C<=B && C>=A :C;
];
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 24篇 | 350小时 | |
第一周 | 0/0行 | 1/2 | 8小时 | |
第二周 | 49/49行 | 1/3 | 10/18小时 | |
第三周 | 0/49行 | 2/5 | 10/28小时 | |
第四周 | 0/149行 | 0/5 | 0/28小时 | |
第五周 | 42/91行 | 1/6 | 15/43小时 | |
第六周 | 184/275行 | 1/7 | 30/73小时 |
标签:hal 显卡 基础 应该 bison ges 读取 信息 app
原文地址:http://www.cnblogs.com/20145205y/p/5991495.html