8086 汇编 子程序的连接.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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中的源代码一样。 操作过程如下:

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档