Loops 跳转语句偏移还是移位?
8086条件和无条件跳转是否从当前指令有符号移位(是8位还是16位?),或者它们是否指定了从代码段寄存器到标签的偏移量 e、 g,当我写:Loops 跳转语句偏移还是移位?,loops,assembly,conditional,x86-16,transfer,Loops,Assembly,Conditional,X86 16,Transfer,8086条件和无条件跳转是否从当前指令有符号移位(是8位还是16位?),或者它们是否指定了从代码段寄存器到标签的偏移量 e、 g,当我写: label1: .. .. jmp label1 (unconditional) 该标签1是否会被有符号位移或代码段偏移所取代 cmp ex, 0 je label2 ( conditional) 这个标签2会被有符号位移或代码段的偏移所取代吗 另外,当我使用循环指令时,如下所示: loop1: .. .. loop loop1 此loop1将被有符
label1:
..
..
jmp label1 (unconditional)
该标签1是否会被有符号位移或代码段偏移所取代
cmp ex, 0
je label2 ( conditional)
这个标签2会被有符号位移或代码段的偏移所取代吗
另外,当我使用循环
指令时,如下所示:
loop1:
..
..
loop loop1
此loop1将被有符号移位(是8位还是16位?)或从代码段的偏移量替换?在所有这些情况下,使用的标签将被从当前指令后部的有符号偏移量替换。因此与代码段的开头无关
cmp ex, 0
je label2 ( conditional)
jmp label1的无条件跳转有两种风格:
- 使用8位有符号偏移量
- 使用16位有符号偏移量
条件跳转
je label2
和循环指令loop loop1
仅使用8位有符号偏移量。(这在8086上是正确的。后来的处理器也给出了16位有符号偏移量的条件跳转。)为什么不参考指令集参考,它清楚地回答了这些问题?