【汇编语言】多模块程序结构
多模块程序结构
文章目录
- 多模块程序结构
- 一、多模块方法
- (1)源文件包含
- (2)模块连接
- (3)子程序库和库文件包含
- 1.子程序库
- 2.库文件包含
- 二、宏汇编
- (1)宏汇编的定义
- (2)宏定义、宏调用和宏展开
- (3)宏汇编的特点
一、多模块方法
(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)宏汇编的特点
- 宏需要先定义后使用,且不必在任何段中
►常书写于源程序开始位置
►常用的宏定义可以单独写成一个宏定义文件 - 宏定义中更改了寄存器内容,最好进行保护和恢复
- 宏定义的参数灵活,宏定义允许嵌套和递归调用
- 宏调用不需要控制的转移与返回
►宏调用将相应的语句序列复制到宏指令的位置
►宏展开被嵌入源程序,成为一体
【汇编语言】多模块程序结构相关推荐
- ARM汇编语言中的程序结构
在 ARM ( Thumb )汇编语言程序中,以程序段为单位组织代码.段是相对独立的指令或数据序列,具有特定的名称.段可以分为代码段和数据段,代码段的内容为执行代码,数据段存放代码运行时需要用到的数据 ...
- ABB机器人的程序结构与模块属性
ABB机器人的程序结构 在ABB机器人中,机器人所运行的程序被称为RAPID, RAPID下面又划分了Task(任务),任务下面又划分了module(模块),模块是机器人的程序与数据的载体,模块又分为 ...
- abb机器人指令手册_ABB机器人的程序结构与模块属性
ABB机器人的程序结构与模块属性ABB机器人的程序结构在ABB机器人中,机器人所运行的程序被称为RAPID, RAPID下面又划分了Task(任务),任务下面又划分了module(模块),模块是机器人 ...
- 汇川H3U标准程序,程序有本体脉冲控制的三轴定位,有总线控制 的汇川伺服定位,轴点动,回零,相对定位绝对定位,程序结构清晰,分模块控制,是工控者学习的好案
汇川H3U标准程序,程序有本体脉冲控制的三轴定位,有总线控制 的汇川伺服定位,轴点动,回零,相对定位绝对定位,程序结构清晰,分模块控制,是工控者学习的好案例.
- 汇编语言(四) - 程序结构
简介 掌握汇编语言程序设计方法 顺序程序结构 分支程序结构 循环程序结构 重点 控制转移指令 转移指令的寻址方式 编制汇编语言程序的步骤 分析问题,确定算法 找出合理的算法及适当的数据结构 根据算法画 ...
- [转]使用设计模式改善程序结构(二)
使用设计模式改善程序结构(二) 在本系列的 第一篇文章中,描述了如何通过设计模式来指导我们的程序重构过程,并且着重介绍了设计模式意图.动机的重要性.在本文中我们将继续上篇文章进行讨论,这次主要着重于设 ...
- python编程语法-Python学习笔记(Ⅰ)——Python程序结构与基础语法
作为微软的粉丝,最后终于向Python低头了,拖了两三个月终于下定决心学习Python了.不过由于之前受到C/C#等语言影响的思维定式,前期有些东西理解起来还是很费了些功夫的. 零.先抄书: 1.Py ...
- Python学习笔记(Ⅰ)——Python程序结构与基础语法
作为微软的粉丝,最后终于向Python低头了,拖了两三个月终于下定决心学习Python了.不过由于之前受到C/C#等语言影响的思维定式,前期有些东西理解起来还是很费了些功夫的. 零.先抄书: 1.Py ...
- 《Go语言圣经》学习笔记 第二章 程序结构
Go语言圣经学习笔记 第二章 程序结构 目录 命名 声明 变量 赋值 类型 包和文件 作用域 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记,几乎是书上的内 ...
最新文章
- 转《两个个很形象的依赖注入的比喻》
- 还在用JDK6的同学,来看看JDK13新特性详解吧
- 【视频课】模型剪枝+模型量化+知识蒸馏典型实践!
- [flask 优化] 由flask-bootstrap,flask-moment引起的访问速度慢的原因及解决办法
- ctc网络结构中接口服务器信号交换的方式有哪些,通信工程复习资料
- 【PAT甲】1007 Maximum Subsequence Sum (25分),求最大字段和及区间
- cad计算机绘图实训内容,cad绘图实训心得体会
- 新增Tao插件,Red Giant 经典特效插件 Trapcode Suite 13 for Win/Mac
- 2020年内蒙古自治区第十五届大学生程序设计竞赛榜单
- oracle数据库数值函数,oracle数据库函数对照表
- TzT233的大盘鸡(未完成)
- 猎人打猎(二)----利用继承
- 不要把5G压力都留给运营商,华为自动驾驶网络是个聪明的方法
- 微信小程序 button 按钮
- 201902-Java面试总结
- 20美金 php,树莓派|个头小本事大:13 种 20 美元以下的树莓派 Zero 替代品
- 小程序swiper月份日历滑动
- 2023年PMP考试---备考教材清单!
- [Synthetic-data-with-text-and-image]
- 红外线测速仪 简易实现
热门文章
- C#之获取网卡IP地址
- educoder第六章 关联挖掘 实验二:FP-growth
- Linux安装nginx详细步骤
- 伊洛纳登录显示服务器连接中,伊洛纳萌新入坑常见问题汇总
- sdhc 读写 扇区 linux,SD卡读写扇区注意事项(转)
- 代码证年审 年报 附文档 短消息类服务接入代码 电信业务资源综合管理系统用户手册-码号年报 (码号使用单位)
- python爬考研_用Python爬取了考研吧1000条帖子,原来他们都在讨论这些!
- android 缓冲区,android – 超过最小排队缓冲区数
- 怎样用计算机进行文字采集,怎么将照片上的文字自动录入电脑
- 樊登高效休息法心得400字_超级干货!让你快速恢复精力的高效休息法!!