如何将NASM程序分解成部分......?

时间:2013-02-27 01:53:47

标签: nasm

我目前正在学习NASM,教科书中有很多未解释的内容。我已经习惯了“那就是接受它的方式”教授的答案和我其他一些问题的答案,但我也更好地知道哪些答案更有可能得到一个真实答案

NASM计划分为三个部分的技术原因是什么 - .data.bss.text?幕后真的发生了什么?为什么汇编程序需要提前知道是否存在常量,为什么不随着程序进行它们呢?

1 个答案:

答案 0 :(得分:0)

data部分是所有初始化数据的所在位置。字符串,DWORDS,WORDS,BYTES,QWORDS等,程序启动时需要有值的任何内容。本节是读/写的。此外,的任何内容都会添加到最终的exe大小,所以如果你有一个非常长的字符串;比方说200字节,你的程序将比你没有这个字符串大200字节。

bss部分是所有未初始化数据在程序启动时不需要值的任何内容。此处添加的任何内容都不会添加到最终的exe大小。你放在这里,告诉exe加载器为这样的变量分配内存,因为它们在程序执行期间需要内存空间。本节是可读/写的。

text部分是所有程序代码所在的部分。此部分是只读的。

如果需要,您可以将属性更改为每个部分,如果需要,您可以创建自己的部分。

所有这些都可以通过研究找到。