已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 4 3汇编语言程序设计的基本方法 一 程序设计步骤二 源程序的汇编 连接与调试三 IBMPC汇编语言程序源程序的完整结构及伪指令四 顺序结构五 分支结构六 循环结构七 子程序八 DOS系统功能调用九 字符串处理十 宏指令 2 七 子程序 1 过程定义 3 六 子程序 概念 子程序为功能确定 且独立的程序段 优点 可以将任何一段独立的程序归整为一个子程序 当需要该段程序时 只需调用子程序即可 调用后会自动返回到调用指令的下一条指令 因此采用子程序设计时 可以简化程序设计 从调试程序的角度 由于原本在多处出现的程序段 缩减为子程序调用指令 使调试程序更加方便 4 缺点 采用子程序设计后 由于调用子程序和从子程序中返回需要执行指令 并且为保护某些寄存器的内容 需要进行压入堆栈和弹出堆栈的操作 因此会使程序执行速度受到一定的影响 六 子程序 5 实现 子程序调用是通过自动修改 IP 和 或 CS 的内容实现的 为了确保子程序调用后能够返回到调用指令之后 CALL指令会自动保存返回地址 IP和 或CS 而RET指令会自动返回到CALL指令的下一条指令 六 子程序 6 2 调用和返回指令 CALL指令 段内调用段间调用 段内直接调用段内间接调用 段间直接调用段间间接调用 六 子程序 7 IP cs 8 段内调用 子过程与原调用程序在同一代码段 在调用之前会自动把断点的偏移地址压栈 调用指令的下一条指令的地址 断点 入口地址 CALLTIMERCALLWORDPTR SI 六 子程序 9 段间调用 子过程与原调用程序不在同一代码段 在调用之前会自动把断点的段基地址和偏移地址压栈 先将断点的CS压栈 再压入IP CALLFARPTRTIMERCALLDWORDPTR SI 六 子程序 10 返回指令 格式 RETRETF近返回 从栈顶弹出两个字节内容送IP SP内容加2远返回 从栈顶弹出四个字节内容分别送CS和IP SP内容加4 从堆栈中弹出断点地址 返回源程序 六 子程序 11 3 主程序和子程序间的参数传递 入口参数 将主程序给子程序提供的初始数据或获得初始数据的信息称为子程序的入口参数 出口参数 子程序返回给主程序的结果称为子程序的出口参数 参数传递可用以下3种方法完成 利用寄存器 利用内存单元 变量 传递参数 利用堆栈 六 子程序 12 4 子程序说明文件 六 子程序 13 5 过程的嵌套 递归调用 过程的嵌套 六 子程序 递归调用当子程序嵌套时 若某子程序要调用的子程序就是其本身 则称为递归调用 14 例1子程序设计 编写子程序实现统计一个字 AX 中 1 的个数 解 利用移位指令或循环移位指令 每次对CF位进行检测 当CF 1时 则总个数加1 当CF 0时 则总个数不变 这种操作可以采用有条件转移指令来实现 也可采用方便的ADC指令实现 子程序如下 六 子程序 15 COUNTER1PROCNEARPUSHAXMOVCX 16XORBL BLCOU1 SHRAX 1ADCBL 0LOOPCOU1POPAXRETCOUNTER1ENDP 六 子程序 16 例1子程序应用 利用上例设计的子程序 统计字型变量VAR1中1的个数 解 在数据段中定义变量VAR1和CounterVar1 VAR1DW1234HCounterVar1DB 则可在代码段中编写程序 MOVAX VAR1CALLCOUNTER1MOVCounterVar1 BL执行后 结果单元CounterVar1的值为5 说明1234H中包含有5个 1 六 子程序 17 例2编写程序 完成将一组BCD数转换成16位二进制数 BCD数转换成16位二进制数用子程序实现 BCD数转换成16位二进制数的算法步骤为 DX 0 用DX存放结果 取要转换的一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年宇宙法合同
- 浙江省温州市十五校联盟联合体2026届数学高二第一学期期末质量跟踪监视模拟试题含解析
- 西安市航空六一八中学2025年数学高一上期末检测试题含解析
- 单纯疱疹病毒Ⅱ型感染合并抗病毒个案护理
- 吐鲁番职业技术学院《数码摄影与后期制作》2024-2025学年第一学期期末试卷
- 重庆市外国语学校2025-2026学年高一物理第一学期期末考试试题含解析
- 上海市丰华中学2025年高一物理第一学期期末监测试题含解析
- 新疆昌吉玛纳斯县第一中学2025年高一上化学期中教学质量检测模拟试题含解析
- 两癌筛查前中后护理全周期管理实务
- 护理一般系统论在慢性病管理中的实践探索
- 货运车辆挂靠合同协议书
- 年产30万吨功能性饮料技术改造项目可行性研究报告模板立项申批备案
- 变电站安全运行维护课件
- 保密三员培训课件
- 基于单片机智能鞋柜控制系统设计
- 伤寒-本科完整版本
- 初识scratch教学课件
- 2025年全国硕士研究生考试西医综合试卷试题(含答案)
- 酒店防偷拍管理制度
- 2025至2030中国保险行业产业运行态势及投资规划深度研究报告
- 药品网络交易服务三方平台质量管理体系文件-B2B平台(完整版)
评论
0/150
提交评论