这是我在DPCU第一次尝试,我检查通过DPCU-16组件产生的机器代码SET A,0X1E VS集合A,0x1F的
我使用这个仿真器:http://dcpu.ru/
我想以比较由生成
SET A, 0x1E
SET A, 0x1F
代码生成的代码如下:
fc01
7c01 001f
我不知道为什么要使用the next version of the DCPU-16 spec这两个值
这是我在DPCU第一次尝试,我检查通过DPCU-16组件产生的机器代码SET A,0X1E VS集合A,0x1F的
我使用这个仿真器:http://dcpu.ru/
我想以比较由生成
SET A, 0x1E
SET A, 0x1F
代码生成的代码如下:
fc01
7c01 001f
我不知道为什么要使用the next version of the DCPU-16 spec这两个值
0x1F(dec:31)不再是短文字(值为-1到30),因此必须将其作为“下一个词”参数进行读取。
的操作码是这样的:
SET A, 0x1E
SET = 00001
A = 00000
1E = 111111
op = 1111110000000001 = fc01
SET A, 0x1F
SET = 00001
A = 00000
NW = 011111
op = 0111110000000001 = 7c01 + 001f
看来,仿真器之间的操作数大小的变化,它指定为a
允许值相同的字面值从0xFFFF
(-1),以0x1E
(30) 。这意味着要获得超出此范围的任何字面值,汇编器必须使用下一个字的文字语法,这会使操作数变大一个字节。