2016-04-24 111 views
0

我在研究8086指令集,并在emu8086中编写简单的汇编代码。我理解了所有MOV,ADD和其他指令,直到遇到LOOP指令。 LOOP被转换成E2,没关系。但是要分支的标签,汇编器如何转换它?如果代码很简单,许多时间'标签'被转换为FC。有时候给FA,F8和其他人。如果您讨论将标签名称转换为相应机器码的机制,这将非常可观。8086汇编程序如何将标签转换为操作码?

感谢。

回答

2

正如在this page上所解释的那样,标签对我们来说只是一个助记符(程序员)。汇编器将该标签翻译成数字,例如要添加到要跳转到的指令指针的偏移量,而CX不为零。 在您显示的示例中,这些偏移量是负数(符号位设置为1)。所以它会跳回几条指令,就像你期望的循环一样。