jmp是转移指令,且是无条件转移指令,在8086架构下,可以只修改IP,也可以同时修改CS和IP,转移指的就是转移CPU在代码段中执行的代码位置,分段内转移和段间转移,如果只修改IP,则叫段内转移,如果修改了CS,则叫段间转移,不过区别不大,总的来说都是转移,如果一个指令能修改IP或者CS寄存器里的值,那么这个指令就是转移指令
1.jmp short 标号,也叫短转移,通过偏移量来达到跳转
段内转移,对IP寄存器的修改范围-128至+127,这个数字是一个偏移量,而不是地址,比如当前ip=1,jmp某个地址的时候,机器码本质上的操作是告诉CPU跳转到距离当前指令有多远的地方,而不是告知CPU跳转到具体的某个地址
2.jmp far ptr 标号,要跳转的地址通过标号来获得
段间,将标号处的段地址和偏移地址放到CS和IP中
3.jmp 寄存器,要跳转的地址从寄存器中获得
4.jmp word ptr 某个地址,要跳转的地址在内存中的某个地方
mov ax,0123H
mov ds:[0],ax
jmp word ptr ds:[0]