【发布时间】:2016-10-30 21:30:59
【问题描述】:
我正在学习汇编语言,我遇到了FWORD(6 个字节)。我很好奇F 代表什么? wiki 页面上没有任何内容,MSDN 上也没有任何内容。
【问题讨论】:
-
代表
FAR
标签: assembly x86 definition word low-level
我正在学习汇编语言,我遇到了FWORD(6 个字节)。我很好奇F 代表什么? wiki 页面上没有任何内容,MSDN 上也没有任何内容。
【问题讨论】:
FAR
标签: assembly x86 definition word low-level
FWORD 中的字母“F”代表单词“far”,就像 32 位远指针一样,这是 FWORD 类型的主要用途。 32 位远指针在前 4 个字节中具有 32 位偏移量,在后 2 个字节中具有 16 位选择器。
32 位远指针通常没有多大用处,因为大多数 32 位操作系统都可以通过所有选择器访问整个 32 位 4G 地址空间。您可能会在低级操作系统代码中看到它们用于切换代码段,因为 CS 选择器决定了代码执行的特权级别,以及代码是在 16 位、32 位还是 64 位模式下执行。
【讨论】:
lgdt fword ptr gdtr
lgdt 操作数中,16 位长度在 32 位基数之前。如果您不小心,编译器将在长度后添加两个填充字节,以将基本字段对齐在 32 位边界上。使用一对“低”/“高”16 位值作为基数,或者告诉编译器该结构已打包。
显然它似乎是“远字”。你可以在这个网站上找到它,第 12 节:
【讨论】: