gpt4 book ai didi

arrays - 如何查看已初始化数组与未初始化数组占用的内存

转载 作者:行者123 更新时间:2023-12-02 06:45:56 25 4
gpt4 key购买 nike

我目前正在按照 Kip Irvine 的“x86 处理器的汇编语言”学习汇编编程。在第 3.4.12 节中,作者指出:

The .DATA? directive declares uninitialized data. When defining a large block of uninitialized data, the .DATA? directive reduces the size of a compiled program. For example, the following code is declared efficiently:

.data
smallArray DWORD 10 DUP(0) ; 40 bytes
.data?
bigArray DWORD 5000 DUP(?) ; 20,000 bytes, not initialized

The following code, on the other hand, produces a compiled program 20,000 bytes larger:

.data
smallArray DWORD 10 DUP(0) ; 40 bytes
bigArray DWORD 5000 DUP(?) ; 20,000 bytes

我想查看程序编译后每个版本代码的内存占用情况,这样我就可以自己看到.data?的效果,但我不知道如何实现可以做到。

最佳答案

I want to see the memory footprint of each version of the code after the program is compiled…

区别在于编译后的可执行文件的大小,而不是执行时内存中镜像的大小。

简而言之:大多数现代操作系统都有一种方法可以让可执行文件将内存区域声明为“零填充”。可执行文件只需要说明该区域有多大,因此它比包含该区域的一堆文字零要小得多。

关于arrays - 如何查看已初始化数组与未初始化数组占用的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44688293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com