- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道什么是段寄存器。它们保存段选择器(描述符表中的索引+特权级别+本地或全局表),显然还有一个隐藏部分,也称为“描述符缓存”。我还了解什么是全局描述符表和局部描述符表,当然还有描述符本身。然而,intel 64 and IA-32 architectures software developers manual在第 3A 卷第 95 页提到描述符寄存器(第 3.4.4 章:IA-32e 模式下的段加载指令),这是我第一次听说它们。
The processor checks that all linear-address references are in canonical form instead of performing limit checks. Mode switching does not change the contents of the segment registers or the associated descriptor registers. These registers are also not changed during 64-bit mode execution, unless explicit segment loads are performed.
你们谁能解释一下描述符寄存器是什么?SS、ES、DS、CS、Es、FS 和 GS 是段寄存器,全局描述符表和局部描述符表中的每个条目称为描述符。那么什么是描述符寄存器呢?
我对 Google 进行了一些研究,但似乎没有任何内容可以回答我的问题。
最佳答案
描述符寄存器通常称为描述符缓存。每次在内存操作数中使用段寄存器时,不是从内存中的全局或局部描述符表 (GDT/LDT) 中读取适当的描述符,而是仅在加载段寄存器时从 GDT/LDT 中读取描述符。 (请注意,所有内存操作数都使用段寄存器,无论是隐式还是显式,因此如果不以这种方式工作,CPU 将会慢得多。)
这样做的副作用是描述符缓存可能与段寄存器中加载的当前选择器值不同步。例如,如果使用 LGDT 指令更改 GDT 的地址,则描述符缓存不会更新,并且仍包含旧 GDT 中的描述符值。
切换模式时也会发生同样的情况,例如从实模式到保护模式,或从保护模式到长模式(Intel 称之为 IA-32e 模式)。从实模式切换到保护模式后,描述符缓存仍然具有旧的实模式基础、限制和访问权限。这很重要,因为段寄存器还包含其实模式值,这些值在保护模式下不太可能有效。特别是,即使 CS 包含无效选择器,它也允许获取 CS:EIP 处的下一条指令。 CS 描述符缓存仍然包含指向模式更改之前相同位置的有效值。
从保护模式到长模式的转换工作方式类似,只是描述符缓存中的大多数值在长模式下被忽略。相反,除 FS 和 GS 之外的所有段都使用固定基数 0,并且不执行限制检查。这意味着切换到长模式的代码应该使用基数为 0 的代码段,这样有效的 CS 基数就不会改变。
关于assembly - 什么是描述符寄存器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52505313/
来自descriptor文档: A descriptor can be called directly by its method name. For example, d.__get__(obj).
概要 本人python理论知识远达不到传授级别,写文章主要目的是自我总结,并不能照顾所有人,请见谅,文章结尾贴有相关链接可以作为补充 全文分为三个部分装饰器理论知识、装饰器应用、装饰器延申
我正在查看 python 的描述 rune 档 here ,让我思考的陈述是: 对于物体,机械在 object.__getattribute__()转换 b.x进入 type(b).__dict__[
if((fd = creat(file_name,O_RDWR|S_IRWXU|S_IRWXG|S_IRWXO)) < 0){ perror("Create failed!");
长话短说Python 2.7.5,当使用描述符作为装饰器时,有没有办法传入参数(给 __init__ 方法)?或者如何使用带参数的方法装饰器 ( as here ) 访问类实例的属性? -- 我认为这
我试着用谷歌搜索一些关于它的东西。为什么非数据描述符适用于旧式类? 文档说他们不应该: “Note that descriptors are only invoked for new style ob
我升级到使用嵌入式 maven 3 的 netbeans 7。我有一个项目,其中包含许多模块和包含其他模块的模块。我的其他不依赖于内部项目的子模块可以在相同的配置下正常工作。在这种情况下,spring
我正在关注http://scikit-image.org/docs/0.11.x/auto_examples/plot_daisy.html ,但是不太清楚 desc[0],desc[1] 和 des
我有一个要求,其中有一个全局 FILE指针/描述符。其中一个函数将从该指针/描述符中读取。与FILE指针/描述符相关联的内部指针前进。此函数返回后,我想从同一个 FILE 指针/描述符中读取数据,并与
我正在编写一些描述符来封装数据验证,并想为它们编写测试。 我想知道是否应该通过在我的测试中创建描述符实例然后显式调用 __get__ 或 __set__ 方法来测试它们。 或者我应该在我的测试文件中创
我有这个 python 描述符: # Date Descriptor class DateAttribute(): def __init__(self, value=None):
分割: @font-face { font-family: 'RobotoLight'; src: url('../font/jura-demibold.eot'); src: url('../fon
我正在编写一个配置卷的存储自动化模块。我没有传递在存储 Controller 上实际创建卷所需的六个或更多参数,而是使用 __slots__ 创建了一个参数类,它被传递到 create 方法中,如下所
在我的应用程序中,我必须使用静态摄像头跟踪大学讲座中的讲师。目前我正在使用 Emgu CV 的默认 GPUHOGDescriptor,如果讲师的整个 body 都可见,它会很好用。在讲师站在 tabl
大家好,我正在使用 opencv3 和 contrib。问题是我想计算给定像素的筛选描述符(不使用检测到的关键点)。 我正在尝试用给定的像素构建一个关键点向量。但是,要创建关键点,除了像素位置外,我还
我正在使用 OpenCV 中的 HOGDescriptor 类进行对象检测。在我看来,该实现仅使用无符号渐变,因此无法区分亮->暗和暗->亮过渡,这是我真正需要的功能。有谁知道使用有符号梯度的 HOG
我目前正在使用 OpenCV 的 ORB 特征提取器,我确实注意到 ORB 描述符的存储方式很奇怪(至少对我来说是这样)(它基本上是一个 BRIEF-32,带有与我的问题无关的修改) .正如你们中的一
我想知道,在 MATLAB 中是否有针对“汽车”之类的对象而非人类的 HOG 描述符的任何实现? 但万一,只有人类,你能指导我找到那个代码,并给我一些提示,以改进代码以用于“汽车或摩托车等物体” 最佳
我正在尝试更好地理解描述符。 我不明白为什么在 foo 方法中描述符 __get__ 方法未被调用。 据我了解描述符 __get__ 当我通过点运算符访问对象属性或使用 __getattribute_
我想要一个类似于这个(无效)的结构: const uint8_t uArray[] = { uint8_t(sizeof(uArray)), 1, 2, 3 }; 并且 uArray[0] 应该是 4
我是一名优秀的程序员,十分优秀!