什么是jmp指令的近转移和远转移
答案:2 悬赏:30
解决时间 2021-02-21 10:00
- 提问者网友:喜遇你
- 2021-02-20 15:03
什么是jmp指令的近转移和远转移
最佳答案
- 二级知识专家网友:一池湖水
- 2021-02-20 16:25
jmp指令的近转移是指在同一个段里面的转移,也叫做段内近转移,用汇编编码就是这样的jmp near ptr 标号
jmp指令的远转移是指段与段之间的转移,就是说不在同一个段的转移,用汇编编码就是这样的jmp far ptr 标号
jmp指令的远转移是指段与段之间的转移,就是说不在同一个段的转移,用汇编编码就是这样的jmp far ptr 标号
全部回答
- 1楼网友:花一样艳美的陌生人
- 2021-02-20 17:26
(1)根据位移进行转移的jmp指令jmp short 标号(转到标号处履行指令)这类格式的jmp指令实现的是段内短转移,它对ip的修改范围为⑴28~127,也就是说,它向前转移时最多超出128个字节,向后转移最多可超出127个字节。指令中的“short”符号,说明指令进行的是短转移。“标号”是代码段中的标号,指明了要转移的目的地址,转移指令结束后,cs:ip应当指向标号处的指令。原理:该指令所对应的机器码中,其实不包括转移目的地址,而包括的是转移的位移。即:(ip) = (ip) + 8位位移1、8位位移 = “标号”处的地址 - jmp指令后的第1个字节的地址2、short指明此处的位移为8位位移。3、8位位移的范围为⑴28~127,用补码表示4、8位位移由编译程序在编译时算出。jmp near ptr 标号 段内近转移 ,和上同理(ip) = (ip) + 16位位移1、16位位移 = 指令“标号” 处的地址 - jmp指令后的第1个字节的地址2、near ptr指明此处的位移为16位移,进行的是段内近转移。3、16位位移的范围为⑶2768~32767,用补码表示。4、16位位移由编译程序在编译时算出。(2)转移的目的地址在指令中的jmp指令指令“jmp far ptr 标号”实现的是段间转移,又称为远转移。功能以下:(cs) = 标号所在段的段地址:(ip)=标号在段中的偏移地址。far ptr指明了指令用标号的段地址和偏移地址修改cs和ip。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯