.
汇编语言课程设计报告
课 题:指导老师:学 部:专业班级:学 号: .
设计时钟显示程序 袁全 清 信息科学与技术学部 10软件工程(1)班
.
汇编程序设计报告
一、任务及要求:
任务:编程设计时实时钟(数字、模拟均可) 要求:数字尽量大,颜色应鲜艳,程序尽量少。 二、程序设计的分析 1、时钟的获取: ① 用软中断INT 1AH
AH 功0 1 2 3 4 5 6 7 读写读写读写写请入口参数 CX、DX=高、低 CH\\CL\\DH=时 CX\\DH\\DL=年CH\\CL\\DH=时 出口参数 CX、DX=高、低字AL=0,若时 CH\\CL\\DH=时分秒CF=1,时钟未 CX\\DH\\DL=年月日 CF=1,时钟未操作或已置响铃 请除响铃 说明 双字为((时*60+ 分)*60+秒)*18.2 均为压缩BCD码 ②直接读取CMOS中的数据 MOV AH,2CH
INT 21H;通过2ch号DOS调用,获得时间信息 MOV AL,CH;小时 LEA SI,HOUR CALL PL 2、时钟的显示 7段显示
.
.
如右图,由三横线和四竖线组成。每条线需要显示时,每一方块的ASCII码为219;不需显示时,方块的ASCII码为32。
由此7段显示和不显示的组三、程序流程图如下:
开始
ZF=0 MOV AH,1 INT 16H JZ NO-KEY CALL NEAD-TIME CALL NEAD-DAY CALL ZHUAN CALL DISPLAY EXIT COMPATRE PROC NEAR
STATR N Y CMP AL,30H .
JNZ Y1 合,形成0—9的数字。 显示横线:先定位左边位置,显示数个方块
显示竖线:数次定位每行位置并显示一个方块
LEA DL,B0 CALL SHOW .
四.完整程序
STACK SEGMENT STACK 'STACK' DB 1024 DUP (0) STACK ENDS DATA SEGMENT
BWORD EQU THIS BYTE R0 DW (0) R1 DW (0) R2 DW (0) R3 DW (0) R4 DW (0) R5 DW (0) R6 DW (0) R7 DW (0) ;
TEMP1 DW (0) TEMP2 DW (0) TEMP3 DW (0) TEMP4 DW (0)
;
LED1 DB (0) ;时针十位显示 LED2 DB (0) ;时针个位显示 LED3 DB (0)
LED4 DB (0) ;分针十位显示 LED5 DB (0) ;分针个位显示 LED6 DB (0)
LED7 DB (0) ;秒针十位显示 LED8 DB (0) ;秒针个位显示
S_REG DB (0) M_REG DB (0) H_REG DB (0)
;---1-9个数字的显示方式------------- F0 DB 0
DB 5FH,0AH,0,0
DB 7CH,0AH,1,-1 DB 7CH,0AH,1,0
.
.
DB 5FH,0AH,0,1 DB 7CH,0AH,0,1 DB 7CH,0AH,-1,0
DB 5FH,0,0,-1 ;中间段
F1 DB 0
DB 5FH,0,0,0 ;0灭 DB 7CH,0,1,-1 ;0AH亮 DB DB DB DB DB
F2 DB DB DB DB DB DB DB DB
F3 DB DB DB DB DB DB DB DB
F4 DB DB DB DB DB .
7CH,0,1,0 5FH,0,0,1
7CH,0AH,0,1 7CH,0AH,-1,0 5FH,0,0,-1 0
5FH,0AH,0,0 7CH,0,1,-1 7CH,0AH,1,0 5FH,0AH,0,1
7CH,0,0,1 7CH,0AH,-1,0 5FH,0AH,0,-1 0
5FH,0AH,0,0 7CH,0,1,-1 7CH,0,1,0 5FH,0AH,0,1 7CH,0AH,0,1 7CH,0AH,-1,0 5FH,0AH,0,-1 0
5FH,0,0,0 7CH,0AH,1,-1 7CH,0,1,0 5FH,0,0,1
;中上 ;中下 ;左上 ;左下