我正在尝试理解specs,但未能理解给出的示例的第一行:
SET A, 0x30 ; 7c01 0030
以下是我从规格中理解的内容:
SET a, b
所以我将指令理解为SET A, 0x3C
有人可以告诉我哪里出错吗?
答案 0 :(得分:9)
好评,我终于得到了答案。
您缺少规范中的“值”部分,其中包含:
Values:
....
0x1f: next word (literal)
所以我们有:
0x7c01 = 0111110000000001
0001 = SET
000000 = register A
011111 = 1F -> next word -> [PC++]
下一个字是0x0030
......瞧瞧。
答案 1 :(得分:0)
@cli_hlt几乎是正确的
dcpu文档说:
在基本指令中,第一个字的低五位 指令是操作码,剩下的11位是分开的 进入五位值b和六位值a。
b总是在a之后由处理器处理,并且是低五 位。在位(LSB-0格式)中,基本指令的格式为: aaaaaabbbbbooooo
所以正确的答案是:
0x7c01 = 0111110000000001
00001 = SET
00000 = register A
011111 = 1F -> next word -> [PC++]