「BUAA-CO」 P3课上


简介

P3课上考试加的指令都比较常规,个人认为P3考试最大的难点就是机房的鼠标。我只能劝你手别抖了😨。

一些前置知识

开始P3之后,你所了解的用于P0的元件已经不够用了,下面列举几个新的P3课上常用的元件。

  1. Bit Adder:输入一个n位二进制数,输出总共有几位1。
  2. Bit Finder:输入一个n位二进制数,输出最低位的1/最高位的1/最低位的0/最高位的0的index,还有一个输出端口代表n位二进制数是否含有1。
  3. Shifter:输入一个数以及移动的位数,输出得到的结果

rev

题目:将GPR[rt] 的高index位翻转后放到低位,剩下的位数顺序排列到高位。然后将结果写到GPR[rt]

解:先将GPR[rt]用splitter整体翻转,再左移+右移得到0000...0+高index位反转结果,和GPR[rt]左移得到的剩余位数+000...000
相加就可以得到结果。总的来说就是位数转换都可以通过移位操作来实现。

blz

题目:大概是数出GPR[rs] GPR[rt]的前导零的数量,然后比大小决定NPC的操作,以及向GRF写入tmp1或tmp2

解:重点在数前导0,用bit Finder时记得考虑没有1的情况。

lwf

题目:

lwf base rt offset
从offset(base)的内存中读出一个数据
判断这个数和rt的and的各个数位之和的奇偶性
奇数则存入(rt+1)mod32寄存器
偶数则存入rt寄存器

解:重点在奇偶比较,比较最低位即可。最低位为0是偶数,为1是奇数。

github仓库里为大家提供了这三道题目的代码:

Lyrics Sharing

谁与我画明月天地间
落笔话呢喃
谁遇我南山望北川
扶摇向九天
谁予我谈笑伴云轩
知己醉桌前
任我清风眠
梦回世外仙

文章作者: Cordial-Kid
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Cordial-Kid !
  目录