arm
- 使用专门的跳转指令:B BL BX
- B offset 跳转
- BL offset 跳转前将下一条指令地址保存在 LR(link reg / R30)通过 MOV PC,LR 返回
- BX reg 跳转到寄存器中的地址,如果最低位为 1 则进入 Thumb 状态
- BLX label 保存,转换状态后跳转
- BLX reg 通过寄存器判断是否转换状态,保存后跳转
- 向 PC 寄存器直接写入值,RET 是 MOV PC,LR 的语法糖
x86
- jmp short 8 位偏移
- jmp near 16 位偏移
- jmp far ptr 段地址 + 偏移地址
- jmp 寄存器
- jmp (d)word ptr 内存地址
- call near ptr = push ip ; jmp near ptr 标号
- call far ptr = push cs; push ip; jmp far ptr 标号
- call reg = push ip; jmp reg(16)
- call (d)word ptr mem = (push cs); push ip, jmp (d)word ptr mem
- ret = pop ip
- retf = pop ip; pop cs
- loop label 检测 cx 不为零的时候跳转并递减 cx
- jcxz label 当 cx 为 0 的时候跳转到标号