[转载]call/jmp offset 段内调用

段内的调用/跳转的特性:

不改变 CS,也就是不用重新加载 code segment descriptor,当然也就不需要进行权限的检查,但是这里需要做 segment 的 limit 检查,检测到越 segment limit 会产生 #GP 异常。
由于在段时调用,所以使用 call offset 时,processor 仅会做 push eip 的处理,不会做 push cs。在执行 ret 返回时,processor 同样会做 limit 检查。

对于 call 来说,offset 值可以是:

1、16 位的 displacement 值、32 位的 displacement 值,这个 displacement 是个符号数。
在 64 bit 模式下,rip = rip + disp32,这个 disp32 值会符号扩展为 64 位再加上 rip。

2、16 位、32 位的内存操作数,这个内存操作数支持 x86 的所有内存寻址模式。在 64 bit 模式下支持 64 位的内存操作数。
16 位、32 位的寄存器操作数。在 64 bit 模式下支持 64 位的寄存器操作数。

3、64 bit 模式下还支持新增的 rip-relative (RIP 相对寻址)寻址模式。

时间: 2024-07-30 10:44:09

[转载]call/jmp offset 段内调用的相关文章

帝国cms调用随机文章 支持一个id段内的调用

随机调用文章可以从某个角度上说是更新了网页,如果是动态网页每次刷新网页那个调用列表都是不同,如果是静态网页后台重新生成html后也会变化.那么帝国cms调用随机文章怎么做呢?我们可以用灵动标签(e:loop),插入如下代码,哪里需要插哪里,哈哈 [e:loop={"select * from {$dbtbpre}ecms_news order by rand() desc limit 11",20,24,0}] //11是随机调用的数量 <li><a href=&qu

转载FPGA学习之内嵌乘法器调用

补充一点,除法的时候如果直接a/b那么就会调用lpm模块,不管输入是否是常数,乘法的时候输入都是reg型变量会调用硬件乘法器,有一个是常数就会调用lpm模块. 上课的时候一直听老师说真正实践的时候你别想着要自己写一个乘法器,那样子做的孩子是笨蛋. 不管老师说得对不对,总之,既然FPGA内部有硬件乘法器那么为啥不直接使用呢,而且在写verilog使用是非常简单的,只是用个*号就轻易搞定. 只要所使用的FPGA内嵌有乘法器,则综合软件在综合的时候就会自动帮你调用乘法器实现. 下面是一段简单代码: m

微服务间的调用和应用内调用的有啥区别

摘要 目前大部分的系统架构都是微服务架构,就算没有注册中心.服务管理,也肯定是多个服务,单体服务比较少了. 大家平时需要在应用内调用rpc接口也比较多,那么有没有思考过微服务之间的调用和应用内直接调用有什么区别呢?面试时是不是经常被被问到微服务呢,本篇文章针对微服务间的方法调用和应用内方法调用的有啥区别这个很小的点,谈谈我的经验 微服务调用特点 先从单体应用说起 单体应用 单体引用通过一个服务节点直接组装好数据,返回给调用者.所有的方法调用都发生在应用内部. 微服务应用 商品详情服务需要调用商品

javascript 防止多次提交或执行(在规定时间段内只允许执行一次) 默认 3000ms

"use strict" class Func{ constructor(){} //防止多次提交或执行(在规定时间段内只允许执行一次) 默认 3000ms isRun(id, isExit, time){ if(this.list === undefined){Func.prototype.list = {};} if(id === undefined){return "参数id未定义";} if(isExit === true){delete(this.list

JavaScript遍历IP段内所有IP

思路:将两个IP转换为数字进行比较,小的那个慢慢加一,直到变成大的那个IP所转换的数字,将这其中的数字再转换为IP地址即为IP段内所有的IP. 1 //IP转数字 2 function ip2int(ip) 3 { 4 var num = 0; 5 ip = ip.split("."); 6 num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(i

[转载]android常用的API接口调用

原文地址:android常用的API接口调用作者:宋耀 显示网页:         Uri uri = Uri.parse("http://www.google.com"); Intent it = new Intent(Intent.ACTION_VIEW,uri); startActivity(it);显示地图: Uri uri = Uri.parse("geo:38.899533,-77.036476"); //Uri uri = Uri.parse(&quo

判断用户ip是否在指定的一个ip段内

/** * 判断ip是否在一个ip段内 * * @param args */ public static boolean ipExistsInRange(String ip, String ipSection) { ipSection = ipSection.trim(); ip = ip.trim(); int idx = ipSection.indexOf('-'); String beginIP = ipSection.substring(0, idx); String endIP = i

php面向对象、语法【访问成员的情形:外和方法内调用对象的关键字this】、构造函数的场景和析构函数的场景

1.面向对象[一种编程思想,并不表示比面向过程天生高端,实质上是一种更好扩展维护的编程思想] [编程思想本身没有高下之分,但是会有个选择的过程] 面向过程:将一个业务逻辑拆分成各个过程,分别实现各个过程,从而实现业务逻辑的思想就是面向过程. [面向过程的问题:对业务整体逻辑的抽象化一直存在.面向过程是一个动作的罗列.但是面向对象则是主体的描述.所以面向过程不可能完全描述业务逻辑] 实质上面向对象更加切合现实生活[通过主体的控制] 以上是本质上的区别和选择.[如何为了切合现实生活的话,面向过程需要

【转载】博客园背景音乐调用,让音乐为你的博文加点料

[转载]博客园背景音乐调用,让音乐为你的博文加点料 单调的文字怎么行,让音乐为你的博文加点料.什么?你写的是技术型博客不搞这么多文艺,大叔,技术型博客也可以很文艺的诶. 今天下三分,网易云.虾米.所有的XX音乐各占据了国内的音乐市场,不过要论曲库哪家全,网易云虾米撕破脸.所以呢,要想博客加上稳定的音乐外链,就在这两者之间选择吧. 在网站上选择合适的背景音乐并外链 何为“合适的背景音乐”呢?首先是前奏不要太唐突,不然网友一打开你的博客就是“咚咚咚”的声音,撸管到一半犯心脏病怎么办?其次就是曲调柔和