根据DCPU specification,SET
指令失败的唯一时间是a
值是文字。
以下工作会如何?
SET [PC],0x1000
更有用的版本是设置PC
的偏移量,所以一个相当奇怪的无限循环将是:
SET [PC+0x2],0x89C3 ; = SUB PC,0x2
答案 0 :(得分:7)
可能(=我认为它应该有用,但我没试过)。
这被称为“自修改”代码,并且在8位时代非常普遍,因为a)有限的RAM和b)有限的代码大小。这样的代码非常强大但容易出错。如果您的代码库增长,这很快就会成为维护的噩梦。
着名用例:
JMP
)答案 1 :(得分:4)
[PC]没有任何价值,所以我猜你需要通过将PC存储在可用作指针(注册表或内存)的东西中来实现这种方式。
SET A , PC SET [A+3], 0x8dc3 ; SUB PC, 3 (if A can't be changed from outside SUB PC,2 works too.)