多模块程序结构

文章目录

  • 多模块程序结构
    • 一、多模块方法
      • (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)宏汇编的特点

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

【汇编语言】多模块程序结构相关推荐

  1. ARM汇编语言中的程序结构

    在 ARM ( Thumb )汇编语言程序中,以程序段为单位组织代码.段是相对独立的指令或数据序列,具有特定的名称.段可以分为代码段和数据段,代码段的内容为执行代码,数据段存放代码运行时需要用到的数据 ...

  2. ABB机器人的程序结构与模块属性

    ABB机器人的程序结构 在ABB机器人中,机器人所运行的程序被称为RAPID, RAPID下面又划分了Task(任务),任务下面又划分了module(模块),模块是机器人的程序与数据的载体,模块又分为 ...

  3. abb机器人指令手册_ABB机器人的程序结构与模块属性

    ABB机器人的程序结构与模块属性ABB机器人的程序结构在ABB机器人中,机器人所运行的程序被称为RAPID, RAPID下面又划分了Task(任务),任务下面又划分了module(模块),模块是机器人 ...

  4. 汇川H3U标准程序,程序有本体脉冲控制的三轴定位,有总线控制 的汇川伺服定位,轴点动,回零,相对定位绝对定位,程序结构清晰,分模块控制,是工控者学习的好案

    汇川H3U标准程序,程序有本体脉冲控制的三轴定位,有总线控制 的汇川伺服定位,轴点动,回零,相对定位绝对定位,程序结构清晰,分模块控制,是工控者学习的好案例.

  5. 汇编语言(四) - 程序结构

    简介 掌握汇编语言程序设计方法 顺序程序结构 分支程序结构 循环程序结构 重点 控制转移指令 转移指令的寻址方式 编制汇编语言程序的步骤 分析问题,确定算法 找出合理的算法及适当的数据结构 根据算法画 ...

  6. [转]使用设计模式改善程序结构(二)

    使用设计模式改善程序结构(二) 在本系列的 第一篇文章中,描述了如何通过设计模式来指导我们的程序重构过程,并且着重介绍了设计模式意图.动机的重要性.在本文中我们将继续上篇文章进行讨论,这次主要着重于设 ...

  7. python编程语法-Python学习笔记(Ⅰ)——Python程序结构与基础语法

    作为微软的粉丝,最后终于向Python低头了,拖了两三个月终于下定决心学习Python了.不过由于之前受到C/C#等语言影响的思维定式,前期有些东西理解起来还是很费了些功夫的. 零.先抄书: 1.Py ...

  8. Python学习笔记(Ⅰ)——Python程序结构与基础语法

    作为微软的粉丝,最后终于向Python低头了,拖了两三个月终于下定决心学习Python了.不过由于之前受到C/C#等语言影响的思维定式,前期有些东西理解起来还是很费了些功夫的. 零.先抄书: 1.Py ...

  9. 《Go语言圣经》学习笔记 第二章 程序结构

    Go语言圣经学习笔记 第二章 程序结构 目录 命名 声明 变量 赋值 类型 包和文件 作用域 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记,几乎是书上的内 ...

最新文章

  1. 转《两个个很形象的依赖注入的比喻》
  2. 还在用JDK6的同学,来看看JDK13新特性详解吧
  3. 【视频课】模型剪枝+模型量化+知识蒸馏典型实践!
  4. [flask 优化] 由flask-bootstrap,flask-moment引起的访问速度慢的原因及解决办法
  5. ctc网络结构中接口服务器信号交换的方式有哪些,通信工程复习资料
  6. 【PAT甲】1007 Maximum Subsequence Sum (25分),求最大字段和及区间
  7. cad计算机绘图实训内容,cad绘图实训心得体会
  8. 新增Tao插件,Red Giant 经典特效插件 Trapcode Suite 13 for Win/Mac
  9. 2020年内蒙古自治区第十五届大学生程序设计竞赛榜单
  10. oracle数据库数值函数,oracle数据库函数对照表
  11. TzT233的大盘鸡(未完成)
  12. 猎人打猎(二)----利用继承
  13. 不要把5G压力都留给运营商,华为自动驾驶网络是个聪明的方法
  14. 微信小程序 button 按钮
  15. 201902-Java面试总结
  16. 20美金 php,树莓派|个头小本事大:13 种 20 美元以下的树莓派 Zero 替代品
  17. 小程序swiper月份日历滑动
  18. 2023年PMP考试---备考教材清单!
  19. [Synthetic-data-with-text-and-image]
  20. 红外线测速仪 简易实现

热门文章

  1. C#之获取网卡IP地址
  2. educoder第六章 关联挖掘 实验二:FP-growth
  3. Linux安装nginx详细步骤
  4. 伊洛纳登录显示服务器连接中,伊洛纳萌新入坑常见问题汇总
  5. sdhc 读写 扇区 linux,SD卡读写扇区注意事项(转)
  6. 代码证年审 年报 附文档 短消息类服务接入代码 电信业务资源综合管理系统用户手册-码号年报 (码号使用单位)
  7. python爬考研_用Python爬取了考研吧1000条帖子,原来他们都在讨论这些!
  8. android 缓冲区,android – 超过最小排队缓冲区数
  9. 怎样用计算机进行文字采集,怎么将照片上的文字自动录入电脑
  10. 樊登高效休息法心得400字_超级干货!让你快速恢复精力的高效休息法!!