跳转指令会导致执行切换到程序中的一个全新的位置。
跳转的目的通常用一个标号指明。
jmp L1
在产生目标代码文件是,汇编器会确定所有带标号的指令地址,并将跳转目标(目的指令的地址)编码为跳转指令的一部分。
1 jmp 指令无条件跳转,它可以直接跳转,间接跳转。
直接跳转:跳转目标是作为指令封一部分编码。
间接跳转:目标是从寄存器或存储器位置读出来的。
直接跳转:
jmp L1
间接跳转:
jmp *%eax 用寄存器%eax的值作为条转目标
jmp (*%eax) 以%eax中的值作为读地址,从存储器中读出跳转目标
其他的跳转指令是有条件的,他们根据条件码的某个相结合,这些指令与SET指令是匹配的。同SET指令一样,一些底成的机器指令有多个名子。
跳转指令的编码格式(PC相关的 PC-relative)
1他们会将目标指令的的地址与紧跟在跳转指令后面那条指令的地址枝的差作为编码
2给出绝对地址
当PC相关寻址时,程序计数器是跳转指令和面那条指令的地址而不是本身的地址处理器会将跟新的程序计数器作为执行执行一条语句的第一步。