這是我在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) 。這意味着要獲得超出此範圍的任何字面值,彙編器必須使用下一個字的文字語法,這會使操作數變大一個字節。