- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果
最佳答案
电话:DR : 在 NASM 中,在 RESB/RESW/RESD/RESQ 之后是 RESO、RESY 和 RESZ .在指令助记符和 Intel 术语(在手册中使用)中,都使用了 O(八进制)和 DQ(双四线)。但是不使用 DQWORD,只使用 OWORD。
反汇编者将使用 xmmword ptr [rsi]
用于 MASM 或 .intel_syntax
中的内存操作数显式大小GNU 语法。 IIRC,没有指令说明助记符和/或寄存器尚未暗示该大小。
请注意,此问题特定于 x86,并且与 Intel 的术语有关。在大多数其他 ISA(如 ARM 或 MIPS)中,“字”是 32 位,但 x86 术语起源于 8086。
指令助记符中的术语
Octword 用于一些 x86-64 指令的助记符。例如CQO将 rax 符号扩展为 rdx:rax。
CMPXCHG16B是另一个对 16 字节进行操作的非向量指令,但英特尔在描述中的任何地方都没有使用“oct”。相反,他们将内存位置描述为 m128。该手动输入不使用任何基于“单词”的大小。
SSE/AVX 整数指令通常将元素大小作为助记符的一部分。在这种情况下,使用 DQ (double-quad),从不使用 O (oct)。例如,PUNPCKL*将两个源向量的一半中的元素交织到一个完整的目标向量中的指令:
128
在名称中,例如
VEXTRACTF128 ,这是英特尔的新功能(CMPXCHG8B 除外)。
3.2.1 DB and Friends: Declaring Initialized Data
DB, DW, DD, DQ, DT, DO, DY and DZ are used ... (table of examples)
DO, DY and DZ do not accept numeric constants as operands.
DT
是一个十字节的 x87 浮点数。 DO 是 16 字节,DY 是 YMMWORD(32 字节),DZ 是 64 字节(AVX512 ZMM)。由于它们不支持数字常量作为初始化器,我猜您只能将它们与字符串文字初始化器一起使用?无论如何,对于带有逗号分隔的每个元素初始值设定项列表的 DB/DW/DD/DQ 会更正常。
realarray resq 10 ; array of ten reals
ymmval: resy 1 ; one YMM register
zmmvals: resz 32 ; 32 ZMM registers
epi32
,不是
d
. (即
_mm256_broadcastd_epi32(__m128i)
,
_mm256_broadcastw_epi16(__m128i)
。b/w/d/q 是完全多余的。也许这是一个错误?)
关于assembly - QWORD 之后是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39645078/
如果 8 位是一个字节 两个字节就是一个字 四个字节是一个双字 8 个字节是一个 qword 16 字节的好名字是什么? 最佳答案 电话:DR : 在 NASM 中,在 RESB/RESW/RESD/
我有一个 unsigned long long,我想把它拆分成更小的字节。例如 unsigned long long TEST = 0x465958432E1F0199; 我希望它分成如下字符。cha
我目前正在寻找上述问题的答案。到目前为止,我发现有人说,字长是指处理器寄存器的大小,这表明在 64 位机器上,字长是 64 位,因此 QWORD(4 * 字)的大小是 256 位。 但另一方面,我发现
我似乎有一个有趣的问题,尽管我可能做错了一些事情。 我的问题是我试图将 AAAABBBBCCCC 压入堆栈,然后通过标准输出打印它们。然而,在我的 x86_64 环境中,push 0x41414141
mov rax,QWORD PTR [rbp-0x10] mov eax,DWORD PTR [rax] add eax,0x1 mov DWORD PTR [rbp-0x14], eax 下
我想将 Qword 转换为 Dword。通过程序员计算器,我很容易转换它但在 python 中找不到任何方法。 Qword = 562949953442333 Dword = 21021 最佳答案 您
我不知道为什么这不起作用。我想使用 struct modul 读取 1 个整数(双字)和 4 个四字。这代表 4 + 4 * 8 = 36 字节,但 python 给了我这个: >>> import
我注意到 DWord 和 QWord 值在写入注册表时应该是有符号整数,而不是无符号整数。如果值为 UInt64 或 UInt32,此代码将抛出异常: registryKey.SetValue(nam
考虑以下x64 NASM语法程序集: inc qword [rax] inc qword [rcx] inc qword [rdx] inc qword [rbx] inc qword [rsp] i
想象一个如下所示的加载-存储循环,它从非连续位置加载 DWORD 并将它们连续存储: top: mov eax, DWORD [rsi] mov DWORD [rdi], eax mov eax, D
我正在汇编中调试 CLR 代码,并到达一行 mov rax, qword ptr [ff4053c0h] 我认为 qword ptr [ff4053c0h] 引用了我感兴趣的字符串,但 ff4053c
我有十六进制数: FFFFFCE3 然后,如果我尝试将其转换为十进制数。我做了: printf "%d" "0xFFFFFCE3" 输出: 4294966499 但是如果我将它存储在 QWORD 中,
我想测试创建 NVMe I/O 提交队列无效队列地址偏移量 我使用 C posix_memalign 来分配内存范围 但是如何检查我得到的地址是否是 QWord 对齐的? 我知道如果我希望地址是字对齐
我正在寻找一种表示以下值范围的方法:0 - 18446744073709551615使用少于 8 个字节。 我试过想一些方法可以做到,但没有任何效果。理论上,例如:用一个字节来表示至少2个字节的位序列
我正在尝试通过这种方式将带符号的十六进制数转换为 WORD、DWORD 和 QWORD: #include #include #include int main(void) { printf
我是 z3py 的新手。 我正在对代码进行逆向工程,其中 XMM 寄存器中存储有两个 QWORD。 并且对其执行不同的操作。 假设我必须找到 2 个 qword,p1 和 p2,给出以下等式: x =
我有很多相互继承的对象等等。 默认的 Embarcadero C++ Builder 2009 已将属性中的数据对齐设置为 QWORD。如果我将其更改为 DWORD,我的许多对象的大小都会缩小,因为它
我想知道在任何 SIMD 指令系列中是否可以执行以下操作。 我有一个具有 63 个有效位(从不为负)的 qword 输入。从 LSB 开始的每个连续的 7 位都被混洗对齐到一个字节,左填充为 1(除了
所以我得到了以下内容(例如): 0x00000001000022c4 db "Apple", 0 0x0000000100002347 db "Ducks", 0 在一个程序中
我正在开发 Java 多媒体 IO 项目,并且遇到了一个问题,每当我尝试编写 DWORD 时,结果发现长度是 16 字节而不是 4 字节。我使用以下代码将 4 个字符的字符串转换为 16 位小端字节数
我是一名优秀的程序员,十分优秀!