36 位存储在 DWORD 中?(x86 汇编 MASM)

Sta*_*owl -1 x86 assembly masm

.data
source DWORD 20 DUP(0FFFFFFFFh)
target DWORD 20 DUP(?)
.code
...
Run Code Online (Sandbox Code Playgroud)

上面的代码取自 Kip Irvine 最新的第 7 版第 355 页。显然,20x36 位存储到 32?

Ton*_*000 5

0FFFFFFFFh 是 32 位。您在某些编译器上添加了前导零,但它仍然是 32 位。

0Fh = 1111 二进制,4 位。

00000000Fh 仍然是二进制的 1111。

DUP 20 只是说重复该 DWORD 20 次,因此源分配给 0FFFFFFFFh 的 20 个 DWORD,目标仅分配给未初始化值的 20 个 DWORD。我认为代码将继续将数据从源复制到目标。