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

2024-11-20 12:26:06
推荐回答(1个)
回答1:

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