汇编的问题: 为什么写汇编要有多个段? 分成代码段数据段堆栈段不就行了?

来源:百度知道 编辑:UC知道 时间:2024/05/13 00:43:40
程序中有BSS, TXET, DATA, STACK段不就行了.
在汇编中我们可以定义很多个段.
那定义多个段有没有什么意义或者好处呢?????

还有就是在MASM中有NEAR(段内)和段间(FAR)调用之分, 在NASM 和 GAS有没有如此区别??
望汇编高人解答,不胜感激,等我发财了,送你1000分.

也可以就只有一个段,COM文件就是一个段.EXE文件就要分成多个段,这文件格式规定的,因为在DOS汇编,为了突破64KB的限制,必须把一个程序分成多个段.因为一个段最大只能达到64KB,但在Windows汇编中就不存在这样的问题,只需要一个段就行.
至于你说的MASM中有NEAR(段内)和段间(FAR)调用之分,因为有的EXE文件超过了64KB,代码在一个段内,放不下了,必须再写一个代码段,那么其他的代码段要调用该代码段中的代码,就必须设置成FAR型的,或者引用数据段的变量也需要,EXE文件的代码段中的主过程都要设置成FAR型的.如果是COM文件主过程就是NEAR型的,因为COM文件中,代码段和数据段都在一个段内.