Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.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
Loops 跳转语句偏移还是移位?_Loops_Assembly_Conditional_X86 16_Transfer - Fatal编程技术网

Loops 跳转语句偏移还是移位?

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将被有符

8086条件和无条件跳转是否从当前指令有符号移位(是8位还是16位?),或者它们是否指定了从代码段寄存器到标签的偏移量

e、 g,当我写:

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位有符号偏移量的条件跳转。)

为什么不参考指令集参考,它清楚地回答了这些问题?