机器码有与汇编中类似标号的东西吗?

来源:百度知道 编辑:UC知道 时间:2024/06/05 17:43:16
比如X86汇编中可以有这样的:

label1: //标号1
mov ax,1
label2: //标号2
mov bx,2
jmp label1 //跳转到标号1

那么把这样的汇编代码汇编成的机器码中还包含类似标号的东西(当然是二进制表示的了,只是形式不同)吗?
请高手指点!
多谢!

我仅学过8051单片机,就以8051单片机为例说明,X86的道理是基本相同的.
你所说的标号实际上是"符号地址",符号地址又分绝对地址和相对地址,这取决于哪条指令(ljmp label,lcall label就是绝对地址,cjne a,Rx,label就是相对寻址),程序的每条指令都有它唯一的绝对地址,绝对寻址就是把要跳转到的指令的绝对地址直接装入程序计数器,而相对寻址是把当前程序计数器的值加上当前程序计数器的值与目标指令的绝对地址之间的偏移量.
因此,机器码中含有绝对寻址所须的绝对地址和相对寻址所须的偏移量!

给点分啊,悬赏分一点也没有,太小气了吧?