汇编中的jmp转移指令:jmp short、jmp near ptr、jmp far ptr |
您所在的位置:网站首页 › c语言中disp是什么意思 › 汇编中的jmp转移指令:jmp short、jmp near ptr、jmp far ptr |
从8086CPU的定义上来讲,只要是可以修改IP(指令指针寄存器),或同时修改CS(代码段寄存器)和IP(指令指针寄存器)的指令统称为转移指令。也就是说,转移指令是用来控制CPU指向内存中某处代码的指令。 那么通过转移区间的不同进行分类则有以下情况: 段内转移:只修改IP的值。也就是说,CS的值不变化。 段间转移:同时修改CS和IP的值。 如果再将上述情况通过修改范围再进行细分,那么段内转移又可分为以下情况: 短转移:IP的修改范围为-128字节~127字节(2的8次方,8位) 近转移:IP的修改范围为-32768字节~32767字节(2的16次方,因为在8086中IP寄存器为16位) 接下来一起看看三种jmp指令情况: 1. jmp short 标号(转到标号处执行命令) 这种格式的jmp指令实现的是上述的段内短转移,修改范围为-128~127; 该条指令执行后,CS:IP指向标号处的指令。编写代码如下图: 2. jmp near ptr 标号(转到标号处执行命令) 这种格式的jmp指令实现的是上述的段内近转移,在跳转范围大于-128~127时使用jmp short会编译失败。 3. jmp far ptr 标号(转到标号处执行命令) 这种格式的jmp指令实现的是上述的段间转移,同时修改CS和IP,在跳转范围大于-32768~32767时使用jmp near ptr不会编译失败,但是会链接失败。 该指令执行后CS:IP将同时修改,将代码修改为如下图: 学艺不精,如有错误,请不吝指教 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |