基于8086的微机原理3.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于8086的微机原理 补充课件参考教材 微型计算机原理与接口技术(第四版) (中国科技大学-周荷琴 吴秀清主编) 第2章 8086 系统结构 第3章 8086的寻址方式和指令系统 第4章 汇编语言程序设计 第4章 汇编语言程序设计 【例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次,所以可以采用计数法控制循环。 4.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 4.3.2BIOS功能调用举例 例如: MOV AH,0 INT 16H 上面的程序段利用BIOS中断服务,实现从键盘读一个字符的功能。 4.4汇编语言程序设计 8086汇编语言程序采用模块化结构,通常由一个主程序模块和多个子程序(过程)模块构成。 对于简单程序,只有主程序模块,没有子程序模块。 汇编语言程序有3种基本结构: 顺序结构 分支结构 循环结构 4.4.1程序的质量标准 衡量程序的质量通常有以下几个标准: 程序正确、完整; 程序易读性强; 程序的执行速度快; 程序占内存小,程序代码的行数少。 4.4.2汇编语言程序设计的基本步骤 ① 分析问题,抽象出描述问题的数学模型; ② 确定解决问题的算法或算法思想; ③ 程序模块划分——在解决复杂实际问题时,往往需要把它分成若干功能模块,在进行功能模块划分后,必须确定各功能模块间的通信问题; ④ 绘制各功能模块流程图或结构图; ⑤ 分配存储空间、寄存器等工作单元; 4.4.2汇编语言程序设计的基本步骤(续) ⑥ 根据流程图,编写程序; ⑦ 静态检查,纠正错误; ⑧ 上机运行调试,纠正错误,直至测试通过; ⑨ 整理资料,建立完整的文档。 4.4.3顺序结构程序设计 顺序结构程序又称简单程序。 采用这种结构的程序,

文档评论(0)

smdh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档