微机原理课程设计-显示时间日期_第1页
微机原理课程设计-显示时间日期_第2页
微机原理课程设计-显示时间日期_第3页
微机原理课程设计-显示时间日期_第4页
微机原理课程设计-显示时间日期_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、 课程设计目的用汇编语言独立完成一个程序题,以达到熟练运用汇编语言编程实现有比较完整功能的程序的目的。(1)学习分支、中断、和逻辑表达。(2)熟悉汇编语言程序的编译、链接过程。二课程设计任务设计一个显示日期或时间的汇编程序间且满足以下要求:基本功能:运行可执行程序systime.exe,在出现的提示信息中输入大写字母“D”,可显示系统当前日期;输入大写字母“T”,可显示系统当前时间;输入大写字母“Q”,可结束程序。三、总体设计方案通过调用bios 16H 中断的1号功能,读取键盘的状态扫描键盘输入,根据键盘输入的相关内容,如:若输入D,则设计程序代码依次读取系统日期年、月、日,并转换成BC

2、D码调用号中断予以显示;若在键盘输入T,则设计程序代码依次读取系统时间时、分、秒,并转换成码并调用号中断予以显示;若输入大写字母Q,则退出当前状态;若不是相关字符,则不于任何响应,并不显示任何信息。四、部分程序设计及功能解说1、 扫描键盘输入用SCANK:;扫描键盘输入,根据键盘输入调用bios 16H 中断的1号功能,读取键盘的状态,根据输入的字母,与字母“进行比较,若值为则去执行CHKT,并响应按键D扫描键盘输入部分程序如下: XOR AX,AX INT 16H;调用bios 16H 中断的1号功能,读取键盘的状态.CMP AL,'D'JNE CHKT;如果输入的是字母“D

3、”则跳转执行CHKT子程序 CALL DSPD;响应按键'D' JMP SCANK2、 BCD码转换将读取的二进制代码循环右移4位,相当于将二进制转换成16进制;将寄存器内容与进行或运算,把单元传递于寄存器;程序代码如下:ROR AX,CL SHR AH,CL OR AX,3030H MOV CH,AH3、 显示部分调用10号中断的0E功能显示AL寄存器的内容,即BCD码将显示在屏幕上。注意:BL=前景色;AL=字符。BCD码显示代码如下所示:MOV AH,0EHINT 10H;调用10号中断的0E功能显示 MOV AL,CH INT 10H五、程序设计流程图开 始扫描键盘输入

4、输 入 字 母是、?读取系统时间读取系统时间退出当前文件结束输入“”输入“T”输入Q转换为BCD码显示转换为BCD码显示六.程序段功能汇总1、MAIN程序用SCANK:;扫描键盘输入,根据键盘输入调用bios 16H 中断的1号功能,读取键盘的状态,根据输入的字母,与字母“进行比较疑惑,若异或值为则去执行CHKT,并响应按键D。其他如输入“T”和“Q”时同理。2、DSPBCD PROC子程序即日期时间显示程序,以日期显示程序为例,通过读取系统的日期项如“年”, 由于读取的日期项是二进制代码,所以调用DSPBCD,把读取的系统日期项存为BCD码,然后将其显示出来,然后再循环以同样方法读取月,日。

5、3、DSPD PROC子程序本子程序是当键盘输入字母“D”时所调用执行的子程序;首先定义堆栈寄存器,按循环要求读取系统日期项,由于读取的日期项是二进制代码,因此需调用DSPBCD PROC子程序转换为BCD码并予以显示;执行完DSPBCD PROC子程序后调用10号中断显示一个分隔符,完成一个日期项的显示,然后再循环去读取其他日期项;最后返回主程序执行主程序。4、DSPT PROC子程序本子程序是当键盘输入字母“T”时所调用执行的子程序;首先定义堆栈寄存器,按循环要求读取系统时间项,由于读取的日期项是二进制代码,因此需调用DSPBCD PROC子程序转换为BCD码并予以显示;执行完DSPBCD

6、 PROC子程序后调用10号中断显示一个分隔符,完成一个日期项的显示,然后再循环去读取其他日期项;最后返回主程序执行主程序。其执行过程与执行DSPD PROC子程序相似。七.程序清单STACK SEGMENT STACK ;定义堆栈段STACKH DB 20H DUP(?)STSIZE EQU $-STACKHSTACK ENDSCODE SEGMENT ASSUME CS:CODE,SS:STACK;,DS:DATASTART: ;程序执行的起始地址 MOV AX,STACK;堆栈段经AX寄存器转移到SS寄存器 MOV SS,AX MOV SP,STSIZESCANK:;扫描键盘输入 XOR

7、 AX,AX INT 16H;调用bios 16H 中断的1号功能,读取键盘的状态. CMP AL,'D';AL=D ? JNE CHKT;如果不相等跳转到子程序 CALL DSPD;响应按键'D' JMP SCANKCHKT: CMP AL,'T';与字母“T”进行比较 JNE CHKQ;如果不相等跳转到子程序执行 CALL DSPT;响应按键'T' JMP SCANK;跳转到CHKQ: ;可以添加代码以响应其他按键 ;否则,它们将被忽略 CMP AL,'Q' JE EXIT;响应按键'Q' JM

8、P SCANK;跳转执行到子程序EXIT: MOV AX,4C00H;退出当前系统 INT 21H;功能: 显示一个压缩BCD码;入口: BH=页号; BL=前景色; AL=压缩BCD码DSPBCD PROC PUSH AX PUSH CX MOV CL,4;串长度为4 MOV AH,0;把读取的二进位数转为BCD码 ROR AX,CL SHR AH,CL OR AX,3030H MOV CH,AH;显示BCD码 MOV AH,0EH INT 10H;调用10号中断的0E功能显示 MOV AL,CH INT 10H POP CX;退出当前堆栈段 POP AX RETDSPBCD ENDP;功能

9、: 显示系统日期;入口: BH=页号,BL=前景色; DSPD直接传给DSPBCDDSPD PROC PUSH AX;定义堆栈段地址 PUSH CX MOV AL,9 MOV CX,3;定义循环次数3次GETD: ;子程序定义 PUSH AX;读取系统日期项 OUT 70H,AL IN AL,71H CALL DSPBCD ;显示一个日期项,如:年 MOV AX,0E2EH ;'.'的ASCII码为2E INT 10H ;显示一个分隔符'.' POP AX DEC AL LOOP GETD;继续循环GETD POP CX POP AX RETDSPD ENDP;

10、功能: 显示系统时间;入口: BH=页号,BL=前景色; DSPT直接传给DSPBCDDSPT PROC PUSH AX PUSH CX MOV AL,04H;定义串长度 MOV CX,3;定义循环次数3次,分别读取时、分、秒GETT: ;子程序GETT PUSH AX;读取一个系统时间项 OUT 70H,AL IN AL,71H CALL DSPBCD ;显示一个日期项,如:日 MOV AX,0E3AH ;':'的ASCII码为3A INT 10H ;显示一个分隔符':' POP AX SUB AL,2 LOOP GETT;条件下继续循环GETT POP CX

11、;退出堆栈段 POP AX RET;返回主程序执行DSPT ENDPCODE ENDS END START;程序结束八.试验结果及分析、实验结果双击systime.exe,程序初始运行界面:如果按错了键,会出现如下界面,没任何反应,也不显示任何信息:如果输入正确如“D”将出现如下界面(每输入一次就显示一次系统日期):如果输入正确如“T”将出现如下界面(每输入一次就显示一次系统时间):如果输入“Q”,则退出以上界面。、实验结果分析:通过以上的结果显示可以看出结果成功完成本次课程设计的目的和任务,本次课程设计严格按照课程设计任务的要求:运行可执行程序systime.exe,在出现的提示信息中输入大

12、写字母“D”,可显示系统当前日期;输入大写字母“T”,可显示系统当前时间;输入大写字母“Q”,可结束程序;若不是相关字符,则不于任何响应,并不显示任何信息。但还有缺陷的是不能实时刷新时间,由于这点在课程设计任务中没有相关要求,因此这次课程设计可以认为是成功的。九.课程设计总结和体会1. 在完成课程设计过程中,我认识到平时基础知识的重要性,只有能够熟练的掌握才能在实验过程中得心应手,否则一步错则整个试验都会陷入困境,因而,严谨的态度是试验成功的重要保障!2. 通过这次课程设计,我们对各个函数以及语句有了进一步的了解,对各个语句的功能有了更深刻的认识和体会,平时上课的理论知识只是停留在理论的层面,只有通过了这样的试验才能更好的体会

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论