微型计算机系统原理及应用第四章第十二次课程序.ppt

微型计算机系统原理及应用第四章第十二次课程序.ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * 2010年10月28日 2010年10月28日 济南大学控制学院 * 4.5 汇编语言程序设计及举例 本课内容: 4.5.7 有关I/O的DOS调用 4.5.8 宏汇编与条件汇编(简单介绍) 济南大学控制学院 * 回顾上次课的内容: 字符串处理程序设计 码转换程序设计 子程序结构(补充掌握内容) 济南大学控制学院 * 本课要求: 掌握程序设计的设计方法和技巧 1、明确DOS功能的调用方法 2、了解宏汇编与条件汇编 3、能够运用汇编编译调试汇编程序 济南大学控制学院 * 4.5.7 有关I/O的DOS功能调用 1.操作: 用软中断的方式调用DOS现成的子程序 (调用BIOS的叫“BIOS调用”)? 2.功能: 键盘、显示、打印、磁盘文件、串行通信、日期时钟、程序结束、内存管理等等。 ? 3. 一般格式: (1)?置操作码→某一寄存器(如AH) (2)?参数传递→某些寄存器(如AL) (3)?执行INT XXH(如INT 21H) (调用DOS现成的子程序) (4)?在某些固定的寄存器(如AL)中取结果。 MOV DL,31H;入口参数 MOV AH,2 H;功能号… INT 21H ;中断号……..… 济南大学控制学院 * 4. 什么时候用? (1)??无法自编的程序。 (2)??可以自编但自编较长的程序。 (3)?可以自编但对硬件有危险的程序(用“系统调用”要安全得多,因为操作系统的编写人员往往比初学者考虑问题要更全面、更成熟一些)。 5. 用哪些? 参见: 1)DOS调用: 周明德(“修订版”上册):P177~191 周明德(“修订版”下册):P554~593 沈美明:P229~276 ? 2)BIOS调用: 沈美明:P229~276,P410~413 济南大学控制学院 * 例1 在CRT上连续输出字符0~9 要显示的数放在BL中(0,1,2,3,4,5,6,7,8,9) name output_char_0_9 stack segment para stack ‘stack’ db 100 dup (?) stack ends;堆栈段 ;--------------------------------------------------- code segment;代码段开始 assume cs:code,ss:stack start proc far;过程开始 begin: push ds mov ax,0 push ax 济南大学控制学院 * mov bl,0; 要显示的二进制数→BL (0~9,初值为0) push bx ;二进制数BL→栈 ;∵DOS调用是一段程序, (我们看不见) ;∴有可能冲掉BL的内容? GOON: MOV DL,20H ;输出空格 MOV AH,2 INT 21H? POP BX ;取回二进制数到BL MOV AL,BL ;BL→AL ADD AL ,1 ; 二进制数加1 ;(变成:下一个要显示的数)? DAA ; 十进制调整 AND AL,0FH ;屏蔽高4位 (始终保持是十进制) MOV BL,AL ;新产生二进制数→BL PUSH BX ; 新产生二进制数→栈, push的目的: 济南大学控制学院 * ;INT 21H是一段程序, ;可能会破坏BX的内容 ? OR AL,30H ;转换为ASCII码? MOV DL,

文档评论(0)

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

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

1亿VIP精品文档

相关文档