自己写:变长下的地址表

自己写:变长下的地址表

每条指令长度各不相同,算出各自的起始地址。⚠️ 这次只能顺着往下累加。

阅读更多 →
自己写:定长下的地址表

自己写:定长下的地址表

每条指令 4 字节,算出前 5 条各自的起始地址。

阅读更多 →
定长下,地址一算就出来

定长下,地址一算就出来

运行下面这段程序,填写它打印出来的结果。 for i in range(5): print(i * 4, end="/")

阅读更多 →
同一段程序,三种编码各占多少字节

同一段程序,三种编码各占多少字节

运行下面这段程序,填写它打印出来的结果。 progs = [("定长四字节", 5, 4), ("定长两字节", 5, 2)] for name, n, eac

阅读更多 →
RISC-V 最特别的地方

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) + "/"

阅读更多 →