如何理解DCPU-16规格组装示例的第一行?

tuc*_*son 9 assembly dcpu-16

我试图理解规范,但未能理解给出的示例的第一行:

SET A, 0x30              ; 7c01 0030
Run Code Online (Sandbox Code Playgroud)

以下是我从规格中理解的内容:

  • 第一个字(7c01)完全定义了指令
  • 运算符是0x1,这是命令 SET a, b
  • b = 111100 = 0x3C(当我转换为十六进制时)=字面值0x3C
  • a = 000000 =登记册A.

所以我理解指令为SET A,0x3C

任何人都可以建议我哪里出错了?

cli*_*hlt 9

好评,我终于得到了答案.

您缺少规范中的"值"部分,其中说:

Values:
....
0x1f: next word (literal)
Run Code Online (Sandbox Code Playgroud)

所以我们有:

0x7c01 = 0111110000000001

0001 = SET
000000 = register A
011111 = 1F -> next word -> [PC++]
Run Code Online (Sandbox Code Playgroud)

下一个词是0x0030......瞧.