微机原理与接口技术课程设计报告-系统时间显示内容摘要:

编,调试和修改,直到程序运行结果正确为止。 第一周 设计任务:( 1):明确课题对程序功能,运算精度等方面的要求及硬件条件 ( 2):把复杂问题分解为若干模块,确定各模块处理方法,画出流程图。 ( 3):存储器资源分配 第二周设计任务:( 4):编制程序,根据流程图精心选择合适的指令和寻址方式来编制源序 ( 5):对程序进行汇编,调试和修改,直到程序运行结果正确为止。 6 2 总体方案设计 整体设计思想 此程序要求结构化的显示系统时间。 程序要求能多次执行以上两种操作并有退出选项。 则我们可以设计两个选项以供用户选择: system 和 q退出程序。 两个选项分别可以用两个 过程实现其功能。 在 DOS 环境下完成, 必须用到的 DOS 功能调用;取当前系统时间:功能号为 2CH,返回值送入 CX,DX 寄存器中;在转换为 ASCII 码显示出来。 任务分配 小组成员共三位,任务分别为:了解并利用 DOS 功能调用;模块程序的编写;程序流程图的设计。 最后汇总编写完整程序,并上机调试运行。 时间安排 第一周设计任务 :每个人根据自己的任务参阅不同的资料,把自己的任务模块完成,最后将所有的汇总并讨论编写最终的设计程序。 第二周设计任务:将最终的程序上机汇编调试,解决调试过程中遇到 的问题;设计可以运行后,总结以前的内容写一份总的设计报告。 3 详细设计 DOS 功能调用 应用 INT 21H 系统功能调用的方法如下: ① 入口参数送指定的寄存器或内存; ② 功能号送 AH 中; ③ 执行 INT 21H 软中断指令; 1.键盘输入并显示( 1 号功能调用) 格式: MOV AH, 01H INT 21H 7 功能:按下任何键,将其对应字符的 ASCII 码送入 AL 中,并在屏幕上显示该字符。 如果按下的是 Ctrl+ Break 组合键,则终止程序执行。 1 号功能调用无须入口 参数,出口参数在AL 中。 2.键盘输入但不显示输入字符( 8 号功能调用) 格式: MOV AH, 08H INT 21H 功能:同 1 号功能调用,但字符不在屏幕上显示。 3.屏幕显示一个字符( 2 号功能调用) 格式: MOV DL, 39。 字符 39。 MOV AH, 02H INT 21H 功能:将置入 DL 寄存器中的字符在屏幕上显示输出。 4. 屏幕显示字符串( 9 号功能调用) 格式: MOV DX, 字符串的偏移地址 MOV AH, 09H INT 21H 功能:在屏幕上显示字符串。 在使用 9 号功能调用时,应当注意以下问题。 ① 待显示的字符串必须先放在内存一数据区( DS 段)中,且以‘ $’符号作为结束标志。 ② 应当将字符串首地址的段基址和偏移地址分别存入 DS 和 DX 寄存器中。 5.字符串输入功能调用( 0AH 号功能调用) 格式: MOV DX, 已定义缓冲区的偏移地址 MOV AH, 0AH INT 21H 功能:从键盘接收字符,并存放到内存缓 冲区。 在使用 0AH 号功能调用时,应当注意以下问题。 ① 执行前先定义一个输入缓冲区,缓冲区内第一个字节定义为允许最多输入的字符个数,字符个数应包括回车符 0DH 在内,不能为“ 0”值。 第二个字节保留,在执行程序完毕后存入输入的实际字符个数。 从第三个字节开始存入从键盘上接收字符的 ASCII 码。 若实际输入的字符个数少于定义的最大字符个数,则缓冲区其他单元自动清 0。 若实际输入的字符个数大于定义的字符个数,其后输入的字符丢弃不用,且响铃示警,一直到输入回车键为止。 整个缓冲区的长度等于最大字符个数再加 2。 8 ② 应当将缓冲区首地址的段基址和偏移地址分别存入 DS 和 DX 寄存器中。 6.返回 DOS 操作系统( 4CH 号功能调用) 格式: MOV AH, 4CH INT 21H 功能:终止当前程序的运行,并把控制权交给调用的程序,即返回 DOS 系统,屏幕出现DOS 提示符,如“ C: \ ”,等待 DOS 命令。 7.设置系统日期( 2BH 号功能调用) 格式: MOV CX, 年号 MOV DH, 月号 MOV DL, 日期 MOV AH, 2BH INT 21H 功能:设置有效的年、月、日。 当 AL= 0 时,设置成功;当 AL= 0FFH 时,设置失败。 8.设置系统时间( 2DH 号功能调用) 格式: MOV CH, 小时 MOV CL, 分 MOV DH, 秒 MOV AH, 2DH INT 21H 功能:设置有效的时间。 当 AL= 0 时,设置成功;当 AL= 0FFH 时,设置失败。 9.取系统当前时间 2CH 功能调用 格式: MOV AH, 2CH INT 21H 执行结果 CX: DX 中得到当前时间的二进制数 程序编程 STACK1 SEGMENT STACK DW 200 DUP (?) STACK1 ENDS。 堆栈段定义 HEX_DEC macro。 宏定义十六进制转换为十进制 push dx push cx 9 mov bl, 10d mov al, ch xo。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。