You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NASM中DY、DZ伪指令的工作机制及zmm寄存器零值声明方法

DY、DZ伪指令机制及64字节零值声明方案

DY、DZ基本工作规则

  • 属于NASM的Dx类初始化数据声明伪指令,DY对应256位(32字节)数据单元,匹配YMM寄存器位宽;DZ对应512位(64字节)数据单元,匹配ZMM寄存器位宽,二者要求NASM 2.14及以上版本支持
  • 正如官方文档说明:

DB、DW、DD、DQ、DT、DO、DY和DZ(本文档中统称“Dx”类指令)的用法与MASM中类似,用于在输出文件中声明已初始化数据,支持多种调用方式:……DT、DO、DY、DZ不接受整数数值常量作为操作数。

  • 二者支持的合法操作数包括:字符串常量、浮点数值常量、DUP重复声明语法,操作数会自动扩展对齐到对应位宽填充

64字节零值数据的实现方案

方案1:使用DZ伪指令(匹配ZMM位宽,语义更明确)

由于DZ不支持整数常量,可通过浮点零常量或DUP语法实现:

; 写法1:直接传入浮点零,自动扩展为64字节零值
dz 0.0

; 写法2:使用DUP语法,兼容性更强
dz 1 DUP(0.0)

方案2:通用兼容写法(适用于所有NASM版本)

如果需要兼容不支持DZ的旧版本NASM,可直接使用times前缀配合db声明:

times 64 db 0

两种方案生成的二进制数据完全一致,均为连续64字节的零值,可直接适配ZMM寄存器的读写操作。

内容的提问来源于stack exchange,提问作者BeeOnRope

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 09:27:00