【发布时间】:2017-11-25 01:51:42
【问题描述】:
我目前正在按照 Kip Irvine 的“x86 处理器的汇编语言”学习汇编编程。在第 3.4.12 节中,作者指出:
.DATA?指令声明了未初始化的数据。当定义一个 大块未初始化的数据,.DATA?指令减少 编译程序的大小。例如,下面的代码是 有效地声明:.data smallArray DWORD 10 DUP(0) ; 40 bytes .data? bigArray DWORD 5000 DUP(?) ; 20,000 bytes, not initialized另一方面,下面的代码生成一个编译程序 大 20,000 字节:
.data smallArray DWORD 10 DUP(0) ; 40 bytes bigArray DWORD 5000 DUP(?) ; 20,000 bytes
想看程序编译后各版本代码的内存占用情况,所以自己看.data?的效果,但不知道怎么弄。
【问题讨论】:
-
它在链接地图中列出。如果编译 并且 使用 ml.exe 链接,则使用 /Fm 开关,如果使用 link.exe 在单独的步骤中链接,则使用 /link。
-
Very similar question;我正在考虑将这两者结合起来,并将其标记为重复,以便将信息集中在一个地方。
-
@CodyGray 我同意你的观点,它们确实非常相似
-
@CodyGray:将另一个标记为这个的副本,因为这个现在有一个更详细的答案。
标签: arrays assembly x86 masm irvine32