相关疑难解决方法(0)

RESB,RESW,RESD,RESQ在NASM中分配多少字节?

DB 分配1个字节.

DW 分配2个字节.

DD 分配4个字节.

DQ 分配8个字节.

所以我假设:

RESB 1 分配1个字节.

RESW 1 分配2个字节.

RESD 1 分配4个字节.

RESQ 1 分配8个字节.

我对么?


文件并没有太多发言权:

3.2.2 RESB和朋友:声明未初始化的数据

RESB,RESW,RESD,RESQ,REST,RESO,RESY和RESZ设计用于模块的BSS部分:它们声明未初始化的存储空间.每个操作数采用一个操作数,即字节数,字数,双字数或任何要保留的值.如2.2.7节所述,NASM不支持通过编写DW来保留未初始化空间的MASM/TASM语法?或类似的东西:这就是它的作用.RESB类型伪指令的操作数是一个关键表达式:参见3.8节.

例如:

缓冲区:resb 64; 保留64个字节

wordvar:resw 1; 保留一个字

realarray resq 10; 十个实际的阵列

ymmval:resy 1; 一个YMM注册

zmmvals:resz 32; 32个ZMM寄存器

x86 assembly nasm

7
推荐指数
1
解决办法
2万
查看次数

无法使用 nasm 编译具有 xmmword 操作数大小的汇编代码

我试图使用nasm( nasm -o file input.asm) 编译汇编代码,并在以下代码片段的第 2 行抛出错误:

mov rsi, 0x400200
movdqu xmm0,xmmword [rsi]
nop
Run Code Online (Sandbox Code Playgroud)

我不确定是否可以使用 128 位寄存器的指令进行编译nasm,但是在涉及 128 位寄存器的情况下,是否有其他方法可以使用 nasm 进行编译?

assembly sse nasm 128-bit

3
推荐指数
1
解决办法
735
查看次数

两个十个字节而不是 20 个字节如何?

所以我试图找出的大小zword,并yword当我偶然发现这是很有帮助的线程其中有各种规模的名单,但有一两件事让我感到困惑。它在编辑中说 atword是 10 个字节,但这对我来说没有意义。一个字是两个字节,所以一个tword字应该是 10 个字,也就是 20 个字节,不是吗?我发现更奇怪的是 anoword确实是 8 个字/16 字节,所以 anoword实际上比 a 大tword。这种奇怪的命名选择有什么解释吗?

assembly nasm

2
推荐指数
1
解决办法
97
查看次数

标签 统计

assembly ×3

nasm ×3

128-bit ×1

sse ×1

x86 ×1