【汇编语言】多模块程序结构

多模块程序结构

在这里插入图片描述

一、多模块方法

(1)源文件包含

使用源文件包含伪指令INCLUDE

include 文件名;将指定文件内容插入主体源程序文件

大型源程序可以合理地分放在若干个文本文件中

  • 各种常量定义、声明语句等组织在包含文件(*.INC)
  • 常用的或有价值的宏定义存放在宏定义文件(*.MAC)
  • 常用的子程序形成汇编语言源文件(*.ASM)
  • 任何文本文件

源文件包含的使用:

  • 被包含文件
    ►文件名要符合操作系统规范
    ►只能是文本文件
    ►内容被插入源文件包含include语句所在的位置
  • 实质仍然是一个源程序
    ►只是分开在若干个文件中
    ►只需针对主体源程序文件进行汇编、连接

(2)模块连接

;定义标识符的模块使用

public 标识符 [,标识符 …] 

;调用标识符的模块使用

extern 标识符:类型 [,标识符:类型 …]
  • 子程序单独编写一个源程序文件
    ►使用共用伪指令PUBLIC和外部伪指令EXTERN声明
    ►子程序在代码段,与主程序文件采用相同的存储模型
    ►没有开始执行和结束执行点,但有汇编结束语句
    ►处理好子程序与主程序之间的参数传递问题

  • 子程序源文件汇编形成目标模块OBJ文件

  • 连接时输入子程序目标模块文件名

(3)子程序库和库文件包含

1.子程序库

子程序库的概念

  • 子程序库是子程序模块的集合,便于统一管理子程序
  • 编写存入库文件的子程序
    ►遵循更加严格的子程序模块要求
    ►应该遵循一致的规则(以免在使用时造成混乱)
  • 子程序文件编写完成、汇编形成目标模块
  • 利用库管理工具程序把子程序模块加入到子程序库

子程序库的使用

  • 子程序单独编写一个源程序文件
  • 子程序源文件汇编形成目标模块OBJ文件
  • 利用库管理工具把子程序模块加入到子程序库
  • 在连接主程序时提供子程序库文件名
2.库文件包含

使用库文件包含伪指令INCLUDELIB

includelib 文件名
;使用库文件中的子程序

二、宏汇编

(1)宏汇编的定义

  • 宏(Macro)是具有宏名的一段汇编语句序列
  • 宏需要先使用MACRO/ENDM伪指令进行定义
  • 然后在程序中使用宏名(带参数)进行宏调用
  • 源程序进行汇编时,宏名被汇编程序用宏定义的,代码序列替代,实现宏展开

(2)宏定义、宏调用和宏展开

宏定义

宏名 macro [形参表];宏定义体
endm

宏调用

宏名  [实参表]

宏展开
在这里插入图片描述

(3)宏汇编的特点

  • 宏需要先定义后使用,且不必在任何段中
    ►常书写于源程序开始位置
    ►常用的宏定义可以单独写成一个宏定义文件
  • 宏定义中更改了寄存器内容,最好进行保护和恢复
  • 宏定义的参数灵活,宏定义允许嵌套和递归调用
  • 宏调用不需要控制的转移与返回
    ►宏调用将相应的语句序列复制到宏指令的位置
    ►宏展开被嵌入源程序,成为一体
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BkbK-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值