我正在尝试学习 DCPU。
;Set b to 1
SET B,1 ;00001 (1)
SHL B,1 ;00010 (2)
SHL B,1 ;00100 (4)
SHL B,1 ;01000 (8)
SHL B,1 ;10000 (16)
我所做的只是向左移动,所以它不应该只是在每次移动时自动翻倍。在我的代码中,您可以看到我有最后一个班次将注册表 B 变为 16,但是当运行 B 时最终变为 10,为什么会这样。
我正在尝试学习 DCPU。
;Set b to 1
SET B,1 ;00001 (1)
SHL B,1 ;00010 (2)
SHL B,1 ;00100 (4)
SHL B,1 ;01000 (8)
SHL B,1 ;10000 (16)
我所做的只是向左移动,所以它不应该只是在每次移动时自动翻倍。在我的代码中,您可以看到我有最后一个班次将注册表 B 变为 16,但是当运行 B 时最终变为 10,为什么会这样。
注册窗口显示 0x0010 ...
你得到了正确的答案,你只是在hexadecimal中查看它。
以数字开头的数字0x
是表示十六进制数字的标准方式;所以这个数字0x0010
实际上是数字 10 16 (“以十六为底的一个零”),在十进制中,它是数字十六。