发布时间 : 星期六 文章汇编语言课程设计——————电子时钟的设计更新完毕开始阅读c6084a79168884868762d617
CURSOR 6,9 STRDSPY BUF3 CURSOR 7,9 STRDSPY BUF4 CURSOR 14,32 STRDSPY BUF1 CURSOR 15,36 LEA DX,BUF2 MOV AH,0AH
INT 21H ;从键盘接收当前时间
LEA BX,BUF2
ASCBCD CH ;小时值ASCII到BCD
;存CH
ASCBCD DH ;分值ASCII到BCD ;存DH
ASCBCD DL ;秒值ASCII到BCD ;存DL
TIMER: CALL DELY ;延时1秒 INCBCD DL,60H ;(DL)+1,并判 ;大于等于60?
INCBCD DH,60H ;(DH)+1,并判 ;大于等于60?
INCBCD CH,24H ;(CH)+1,并判 ;大于等于60? DISPY: LEA BX,BUF2
BCDASC CH ;时值BCD转到ASCII BCDASC DH ;分值BCD转到ASCII BCDASC DL ;秒值BCD转到ASCII INC BX MOV AL,'$' MOV [BX],AL PUSH DX
CURSOR 15,36 ;设置光标
STRDSPY BUF2+2 ;显示时,分,秒值 POP DX MOV AH,01H INT 16H CMP AL,1BH JZ X XOR AL,AL JMP TIMER X:MOV AH,4CH INT 21H RET
DELY PROC PUSH CX PUSH CX MOVE 4600 X1:DEC CX,0FFFFH
X2:DEC CX JNE X2 DEC AX JNE X1 POP AX POP CX RET
DELY ENDP CLOCK ENDP CODE ENDP
END START
开始 显示提示符 从键盘上接收当前时,分,秒 时,分,秒值ASCII码转换为BCD码,分别存入CH,DH,DL 延时1秒 DL加1,DAA调整 (DH)>=60H? DL清零,DH加1,DAA调整 (DH)>=60H? DH清零,CH加1,DAA调整 (CH)>=24H? CH清零 时,分,秒值BCD码转换为ASCII码,输出显示
六.调试过程: 1)编译源文件,命名为HULINGWEI。ASM
2)采用命令格式。MASM HULINGWEI。ASM将生成一个OBJ文件,检查源程序中的错误,并改正。
3)键入连接命令:LINK HULINGWEI。OBJ,再次键入HULILNGWEI回车,即可显示结果。
4)时间在运行中出现了不准确性,对程序的循环次调整后,时间能正常运行。
七.时遇到的问题及解决方法
在课程设计中遇到的最大的困难是如何产生中断,对中断向量表的装载还比较模糊,对中断的初始化、具体设置、中断返回还不是很清楚,程序设计一度陷入停滞状态,不知如何是好。 我们又重新翻阅了杨素行主编的《微型计算机系统原理及应用》
及周明德主编的《微型计算机的原理及应用》,重点研究了《中断》,通过对这一章的学习,我们终于对中断有了详细的认识,在设计程序
西安工业大学课程设计用纸
时也容易了很多。 八.心得体会
这是我第一次用汇编语言来设计一个小程序,历时一周终于完成,