Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 在DCPU 16的原始规范中,IFN A、0x10如何转换为0xc00d_Assembly_Dcpu 16 - Fatal编程技术网

Assembly 在DCPU 16的原始规范中,IFN A、0x10如何转换为0xc00d

Assembly 在DCPU 16的原始规范中,IFN A、0x10如何转换为0xc00d,assembly,dcpu-16,Assembly,Dcpu 16,我正试图为Notch的DCPU-16规范编写一个汇编程序。 可以找到此CPU的原始规格 相关线路: SET A, 0x30 ;7c01 0030 到目前为止,我理解这些说明,但对我来说,这个说明应该至少有2个单词长,而不仅仅是0xc00d SET A, 0x10 将是7c01 0010。所以 IFN A, 0x10 应该是7c0d 0010不是吗 为什么IFN中的b参数不会导致指令需要[PC++]或nextword组件 0x1f: next word (literal) 0

我正试图为Notch的DCPU-16规范编写一个汇编程序。 可以找到此CPU的原始规格

相关线路:

SET A, 0x30 ;7c01 0030

到目前为止,我理解这些说明,但对我来说,这个说明应该至少有2个单词长,而不仅仅是
0xc00d

SET A, 0x10 
将是
7c01 0010
。所以

IFN A, 0x10 
应该是
7c0d 0010
不是吗

为什么
IFN
中的
b
参数不会导致指令需要[PC++]或nextword组件

     0x1f: next word (literal)
0x20-0x3f: literal value 0x00-0x1f (literal)
这是你要问的规范的核心部分。可以在操作码中对0和31(0x1f)之间的文字值进行编码。如果值太大,则文字值需要一个额外的字,用0x1f表示

因此
IFN A,0x10
只需要一个字,因为0x10文本足够小,可以放入操作码中。16位操作码分解为6位的b操作数、6位的a操作数和4位的指令。所以b=0x30(0x20+文字),a=0x00(寄存器a),instr=0xd(IFN)。将它们与
opcode=(b)放在一起
这是您要询问的规范的核心部分。0到31(0x1f)之间的文字值可以在操作码中编码。如果该值太大,则文字值需要一个额外的字,用0x1f表示


因此
IFN A,0x10
只需要一个字,因为0x10文本足够小,可以放入操作码中。16位操作码分解为6位用于b操作数,6位用于A操作数,4位用于指令。因此b=0x30(0x20+文本),A=0x00(寄存器A),instr=0xd(IFN)。将它们与
opcode=(b对于新规范,它实际上介于-1(0xFFFF)和30(0x1e)之间,谢谢Hans-这在我现在看到的规范中已经解释过了-doh。@ratchetfreak Aye-我想从原始版本开始,并从那里构建汇编程序-这主要是一个学习练习;)对于新规范,它实际上介于-1(0xFFFF)和30(0x1e)之间谢谢Hans-我现在看到的规范中已经解释了这一点-doh。@ratchetfreak是的-我想从原始版本开始,并从那里构建汇编程序-这主要是一个学习练习;)这是旧的规范。新的规范是感谢-我知道新的规范-但我开始实施它从旧的一开始,为了逐步学习。链接存档在第一个链接(从问题和我以前的评论)是由,第二个链接(从评论由BlueRaja-Danny Pflughoeft)令人困惑的是,它的标题是。年,我发现规范的一个更高版本,标题是。这是旧规范。新规范是感谢的-我知道新规范-但我开始从旧规范开始实施它,以便以增量方式学习。链接在第一个链接存档(来自问题和我之前的评论)第二个链接(来自BlueRaja-Danny Pflughoeft的评论)的标题是,令人困惑的是,第二个链接的标题是。
     0x1f: next word (literal)
0x20-0x3f: literal value 0x00-0x1f (literal)