自己写:变长下的地址表
每条指令长度各不相同,算出各自的起始地址。⚠️ 这次只能顺着往下累加。
阅读更多 →
自己写:定长下的地址表
每条指令 4 字节,算出前 5 条各自的起始地址。
阅读更多 →
定长下,地址一算就出来
运行下面这段程序,填写它打印出来的结果。 for i in range(5): print(i * 4, end="/")
阅读更多 →
同一段程序,三种编码各占多少字节
运行下面这段程序,填写它打印出来的结果。 progs = [("定长四字节", 5, 4), ("定长两字节", 5, 2)] for name, n, eac
阅读更多 →
RISC-V 最特别的地方
RISC-V 和 x86、ARM 最不一样的一点是【0】。
阅读更多 →
三家在指令长度上的区别
x86 的指令是变长的,ARM 和 RISC-V 的主体指令是定长的。这个差别带来的是【0】。
阅读更多 →
两套编译结果对一遍账
用四组输入,检查「没有乘法」和「有乘法」两套编译出来的结果是不是永远一致。
阅读更多 →
换一套合同,重编一次
换到一个有乘法指令的指令集上,重编同一个表达式。把两套的指令条数和结果都打出来。
阅读更多 →
把一个表达式编成指令序列
把 (a + b) * 2 编成本机指令序列。本机没有乘法指令,乘 2 只能用加法做。
阅读更多 →
条数不同,字节数也不同
运行下面这段程序,填写它打印出来的结果。 a_count, a_each = 2, 4 b_count, b_each = 1, 4 print(str(a_count) + "/"
阅读更多 →