在SIC汇编器输出中生成目标代码的困惑

时间:2015-04-03 23:14:26

标签: assembly mnemonics object-code

所以现在我正在试图理解如何生成目标代码,但是这两条线真的让我感到困惑,有人想向我解释一下吗?

RSUB is 4C0000, I understand RSUB is 4C Mnemonic, but where did 0000 came from?
EOF BYTE C'EOF'  Object code is 454F46, how did they get that?

INPUT BYTE X'F1'      F1
how did generate F1 in the object code?

STCH BUFFER, X        549039

BUFFER is 1039, and STCH in mnemonic is 54, but shouldn't it be 541039?


also after a few lines,

LDCH BUFFER, X       509039?

1 个答案:

答案 0 :(得分:4)

所有这些都应该在您的架构的指令集参考和汇编程序的手册中得到解答。

  

RSUB是4C0000,我理解RSUB是4C助记符,但0000在哪里   来自哪里?

SIC似乎使用24位字和固定长度的指令编码。由于该指令显然不占用操作数,因此为零。也许cpu忽略地址字段,所以你可以使用你想要的任何东西,或者它可能必须为零。无法找到答案。

  

EOF BYTE C' EOF'对象代码是454F46,他们是怎么做到的?

454F46分别只是EOF的ascii代码。据推测,汇编程序的C运算符指示它发出以下字符的ascii代码。

  

INPUT BYTE X' F1' F1如何在目标代码中生成F1?

大概是汇编程序的X运算符意味着发出具有给定十六进制值的字节。

  

STCH BUFFER,X 549039 BUFFER是1039,而助记符号是STCH   54,但不应该是541039?

地址仅为低15位。位#15用作指示索引寻址模式的标志,因此1039变为9039