汇编跳转指令

跳转指令会导致执行切换到程序中的一个全新的位置。

跳转的目的通常用一个标号指明。


jmp L1

在产生目标代码文件是,汇编器会确定所有带标号的指令地址,并将跳转目标(目的指令的地址)编码为跳转指令的一部分。

1 jmp 指令无条件跳转,它可以直接跳转,间接跳转。

直接跳转:跳转目标是作为指令封一部分编码。

间接跳转:目标是从寄存器或存储器位置读出来的。

直接跳转:

jmp  L1

间接跳转:

jmp *%eax     用寄存器%eax的值作为条转目标

jmp (*%eax)   以%eax中的值作为读地址,从存储器中读出跳转目标

其他的跳转指令是有条件的,他们根据条件码的某个相结合,这些指令与SET指令是匹配的。同SET指令一样,一些底成的机器指令有多个名子。


跳转指令的编码格式(PC相关的  PC-relative)

1他们会将目标指令的的地址与紧跟在跳转指令后面那条指令的地址枝的差作为编码

2给出绝对地址

当PC相关寻址时,程序计数器是跳转指令和面那条指令的地址而不是本身的地址处理器会将跟新的程序计数器作为执行执行一条语句的第一步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值