- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8086 汇编 子程序的连接
8086汇编程序中,如何将几个模块连接在一起呢?
如:将几个.asm文件连接在一起编译形成一个.obj文件。
主要有三种方法:
1、在编译的时候连接。
这种方法主要是在需要连接的地方使用INCLUDE伪指令,使得已独立编辑好的若干个.asm文件在汇编时被连接在一起,形成一个完整的.obj文件,然后对此.obj文件继续其他操作,直至调试通过,满足要求。
下面举例说明:利用下面的程序输出“AB”
文件A.asm
CSEG SEGMENT
ASSUME CS:CSEG
START : CALL SUB1
CALL SUB2
MOV AH,4CH
INT 21H
INCLUDE B.ASM
INCLUDE C.ASM
CSEG ENDS
END START
文件B.asm
SUB1 PROC NEAR
MOV DL,A
MOV AH,2
INT 21H
RET
SUB1 ENDP
文件C.asm
SUB2 PROC NEAR
MOV DL,B
MOV AH,2
INT 21H
RET
SUB2 ENDP
操作过程如下:
这里有几点要说明:
要汇编在一起的文件中的自定义的符号名(标号)不允许有重复的。
(3)子程序的类型必须定义为NEAR. 因为INCLUDE伪指令在对现行的源程序文件汇编时,是把另外的源程序文件 加入 到现行源程序中的INCLUDE处的。拿上面的例子来说,文件B.asm的源程序和文件C.asm的源程序在汇编时会被插入到A.asm文件的INCLUDE处,三个源代码在同一个代码段CSEG中,属于段内调用。
如果你写成FAR,在编译时会出现下面的错误提示,
2、在LINK的时候连接。
这种方法主要使用LINK命令的连接格式,把事先独立编辑、编译、调试好的程序模块(.obj文件)再用LINK连接生成.exe文件时连接在一起,即把多个.obj文件连接成一个完整的.exe文件。
LINK的主要格式:LINK A+B+C ,其中A、B、C是已编译好的.obj文件名。
下面举例说明:
文件A.asm
EXTRN SUB1 : FAR , SUB2 : FAR
CSEG SEGMENT
ASSUME CS : CSEG
START : CALL SUB1
CALL SUB2
MOV AH,4CH
INT 21H
CSEG ENDS
END START
文件B.asm
PUBLIC SUB1
CSEG SEGMENT
ASSUME CS:CSEG
SUB1 PROC FAR
MOV DL,A
MOV AH,2
INT 21H
RET
SUB1 ENDP
CSEG ENDS
END
文件C.asm
PUBLIC SUB2
CSEG SEGMENT
ASSUME CS:CSEG
SUB2 PROC FAR
MOV DL,B
MOV AH,2
INT 21H
RET
SUB2 ENDP
CSEG ENDS
END
注:注意加粗的语句和斜体语句(和第一种方法比较着看)
操作过程如下:
要注意以下几点:
(1)各源程序要设置必需 的段地址,至少要设置代码段(其他段根据需要安排)。
(2)要组织在同一个物理段内的各个段的名字要相同,如果段名不同,要用GROUP伪指令说明。
(3)模块中要使用其他模块的标号时,用EXTRN语句说明,本模块中存在可以被其他模块引用的标号要用PUBLIC语句说明。EXTRN 和PUBLIC 语句放在所有段的前面。
3、子程序库法。
事先将子程序装入一个子程序库中,在LINK 主程序时Libraries选择子程序库名即可。
这种方法和方法2本质上是一样的,所以程序源代码和方法2中的源代码一样。
操作过程如下:
您可能关注的文档
最近下载
- 数字水务智慧水务整体解决方案.docx VIP
- 高中物理力学探究活动设计.doc VIP
- 温州大学432统计学2020---2021年考研专业课初试真题.pdf VIP
- 海底捞绩效考核海底捞绩效考核.doc
- 海南大宗商品交易所.pptx VIP
- 2020年温州大学考研真题432统计学(2020年) .pdf VIP
- 石河子大学2023-2024学年第1学期《宏观经济学》期末考试试卷(A卷)附标准答案.docx
- 2025届全国各地高三模拟试题分类精编01集合与常用逻辑用语学生版.pdf VIP
- 储能系统并网发电启动试运行方案.pdf VIP
- 食品饮料行业深度报告:社会减糖大势所趋,明星产品呼之欲出-241114-东北证券-56页.pdf VIP
文档评论(0)