回 帖 发 新 帖 刷新版面

主题:谁能告诉我?

谁能告诉我,源代码都是文本文件,汇编之前怎么确定段没有超过64KB?
标号的near 和 far 是如何确定的?

回复列表 (共8个回复)

沙发

near和far是指地址的远近,那是在汇编以后的,现在你存储格式不是和汇编的一样,等改变了汇编的连接了以后就行了。

板凳

near和far不是编源代码时就要由编程者确定的吗?我的意思是根据什么原则确定何时用“”远,何时用“近”?

3 楼

near和far平时用得不算太多吧,只是在子程序调用里用得多,如果主程序和子程序不在同一个段,那么一般用far,如果在同一个段里的话就用near,这里的段可以是代码段和数据段之间,也可以是数据段数据段之间,或是和附加段之间什么的,如果是两个数据段什么的也算不同的段,我也讲不太明白,你最好再等等其它人的回复。

4 楼

谢谢!我觉得有道理,要是再有人支持一下就好了,我不明白为什么要这样规定,让系统来识别并不是一见很难的事。

5 楼

如果程序很大,就会有很多段,这些段中标号或者过程名字一样是在所难免的,那样编译器怎么来区分是远调用还是近调用?

6 楼

这倒不成问题,转移或调用时由near和far就指明了,问题是你怎么知道一个段是否冒顶了(>64KB)?程序短或模块单一,可以先汇编试试,多模块时有很多外部引用,单独汇编一个模块好象不接受。

7 楼

怎么那么多人讨论DOS汇编的,都是做作业的吗?反而Win32汇编很少人问,奇怪?

8 楼

是跟主板有关的,必须在DOS下运行,有些驱动程序最好也用汇编语言。

我来回复

您尚未登录,请登录后再回复。点此登录或注册