简介
P3课上考试加的指令都比较常规,个人认为P3考试最大的难点就是机房的鼠标。我只能劝你手别抖了😨。
一些前置知识
开始P3之后,你所了解的用于P0的元件已经不够用了,下面列举几个新的P3课上常用的元件。
- Bit Adder:输入一个n位二进制数,输出总共有几位1。
- Bit Finder:输入一个n位二进制数,输出最低位的1/最高位的1/最低位的0/最高位的0的index,还有一个输出端口代表n位二进制数是否含有1。
- 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 |
解:重点在奇偶比较,比较最低位即可。最低位为0是偶数,为1是奇数。
github仓库里为大家提供了这三道题目的代码:
Lyrics Sharing
谁与我画明月天地间 |