- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 8086汇编语言程序设计 微机原理与接口技术知识课件(基于8086和Proteus仿真).ppt
【例5-7】(续) MOV BX,20 MOV CX,16 ; 计数器CX,置初值16 NEXTCHAR: ROL BX,1 ;显示顺序是从左往右, MOV DL,BL ;要显示的值仅占最低位D0 AND DL,1 ;清除D7~D1 OR DL,30H 【例5-7】(续) MOV AH,2 INT 21H ;利用2号DOS调用显示 LOOP NEXTCHAR ;循环执行16次 FINISH: MOV DL,B MOV AH,2 INT 21H ;利用2号DOS调用,显示B 【例5-7】(续) MOV AH,4CH INT 21H ; 返回操作系统 CODE ENDS END START 本例中,由于已知BX是16位的,因此,循环的次数就是16次,所以可以采用计数法控制循环。 5.4.6子程序设计 在许多应用程序中,常常需要多次用到一段程序。这时,为了避免重复编写程序,节省内存空间,可以把该程序段独立出来,以供其他程序调用,这段程序称为“子程序”或“过程”。 子程序是可供其他程序调用的具体特定功能的程序段。 调用子程序的程序体,称为“主程序”或“调用程序”。 采用子程序进行程序设计的注意点 现场保护和恢复 所谓“现场保护”是指子程序运行时,对可能破坏的主程序用到的寄存器、堆栈、标志位、内存数据值进行的保护。 所谓“现场恢复”指由子程序结束运行返回主程序时,对被保护的寄存器、堆栈、标志位、内存数据值的恢复。常利用堆栈和空闲的存储区实现现场保护和现场恢复。 子程序嵌套 一个程序可以调用某个子程序,该子程序可以调用其他子程序,这就形成了子程序嵌套。 子程序嵌套调用的层次不受限制,其嵌套层数称为“嵌套深度”。 由于子程序中使用堆栈来保护断点,堆栈操作的“后进先出”特性能自动保证各个层次子程序断点的正确入栈和返回。 在嵌套子程序设计中,应注意寄存器的保护和恢复,避免各层子程序之间寄存器发生冲突。特别是在子程序中使用PUSH、POP指令时,要格外小心,以免造成子程序无法正确返回。 参数传递 主程序在调用子程序时,经常需要向子程序传递一些参数或控制信息,子程序执行完成后,也常常需要把运行的结果返回给调用程序,这种调用程序和子程序之间的信息传递,称为“参数传递”。 参数传递的主要方法有:寄存器传递、内存变量传递和堆栈传递。 传递的内容如果是数据本身,称为“值传递”;如果是数据所在单元的地址,称为“地址传递”。 4.编写子程序调用方法说明 为了方便地使用子程序,应编写子程序调用说明。 子程序调用方法说明包括: 子程序功能 入口参数 出口参数 使用的寄存器或存储器及调用实例。 子程序设计举例 【例5-8】 利用寄存器传递参数。编写子程序,实现以二进制形式显示BX的值(假设为无符号数)。 【例5-8】(续) ; ;子程序名:DISP_BINARY ;功能:以二进制形式显示BX的值(假设为无符号数) ;入口参数:BX ;出口参数:无 ; DISP_BINARY PROC PUSH CX PUSH DX PUSH AX PUSHF ;保护现场 【例5-8】(续) MOV CX,16 NEXTCHAR: ROL BX,1 MOV DL,BL AND DL,1 OR DL,30H MOV AH,2 INT 21H LOOP NEXTCHAR 5.3.2BIOS功能调用(续) 键盘I/O程序以16H号中断处理程序的形式存在,它提供若干功能,每一个功能有一个编号。 在调用键盘I/O程序时,把功能编号置入AH寄存器,然后发出中断指令INT 16H。调用返回后,从有关寄存器中取得出口参数。 5.3.2BIOS功能调用举例 例如: MOV AH,0 INT 16H 上面的程序段利用BIOS中断服务,实现从键盘读一个字符的功能。 5.4汇编语言程序设计 8086汇编语言程序采用模块化结构,通常由一个主程序模块和多个子程序(过程)模块构成。 对于简单程序,只有主程序模块,没有子程序模块。 汇编语言程序有3种基本结构: 顺序结构 分支结构 循环结构 5.4.1程序的质量标准 衡量程序的质量通常有以下几个标准: 程序正确、完整; 程序易读性强; 程序的执行速度快; 程序占内存小,程序代码的行数少。 5.4.2汇编语言程序设计的基本步骤 ① 分析问题,抽象出描述问题的数学模型; ② 确定解决问题的算法或算法思想; ③ 程序模块划分——在解决复杂实际问题时,往往需要把它分成若干功能模块,在进行功能模块划分后,必须确定各功能模块间的通信问题; ④ 绘制各
您可能关注的文档
- 第14章 应用程序集成和 与发布 visual foxpro全套资料(计算机国家二级课件).ppt
- 第14章 排序 计算机软件技术知识基础教程 .ppt
- 第14章 机械图形的打印与输出 《AutoCAD 2008机械图形的设计实用教程》课件.ppt
- 第14章 格和 与布尔代数 电子科大离散数学内部.ppt
- 第14章 求救要领 求救和 与营救 .ppt
- 第14章 消费者市场研究 营与销调研基础课件.ppt
- 第14章 硬件系统的故障和 与维修 计算机组装维修和 与维护.ppt
- 第14章 私人持有公司的估价 兼并和 与收购课件.ppt
- 第14章 第14课 动态网页数据库基础 Dreamweaver网页的设计 .ppt
- 第14章 筹资和 与投资循环审计 审计原理和 与实务三版 .ppt
- 第5章 C51的设计基础 单片机原理与实践指导课件.ppt
- 第5章 Dreamweaver 8基础相关知识 《网页设计与制作》 .ppt
- 第5章 FX2N 系列PLC《电气控制和 与PLC系统》课件.ppt
- 第5章 Microsoft Project 2010与IT项目资源计划 项目相关管理与IT项目相关管理课件.ppt
- 第5章 Windows Server 2003 网络安全 网络维护与安全技术知识教程与实训电子教案.ppt
- 第5章 三相供电与用电 《电工技术知识(非电类)(第3版)》课件.ppt
- 第5章 三相异步电动机的运行和 与维护 常用机床电气控制线路 .ppt
- 第5章 中国市场经济的微观体制 中国市场经济理论和 与实践课件.ppt
- 第5章 中断系统 51单片机基础和 与实例进阶课件.ppt
- 第5章 中断系统 单片机原理及接口技术知识(C51编程)课件.ppt
文档评论(0)