汇编课程设计

发布 2022-10-01 07:13:28 阅读 1541

汇编语言程序设计。

课程设计。一。 系统主要功能说明。

日份牌窗口。

1. 显示当天的日期:年、月、日和星期。

2. 显示变化的时间:时、分、秒。

3. 输入闹钟的定时时间,到时响铃(dos的7号调用)。

二。 设计要求。

1. 将清窗口,设置窗口颜色和日期显示颜色,设置光标位置,回车换行,dos的2号和9号功能调用,保护和恢复现场等编制成宏,存入宏库中供调用。

2. 将二进制转换成十进制,获取变化的时间等编成子程序。

3.日期的获取采用dos功能调用2ah号;时间则采用读取cmos时钟方法获得。

三。 系统调用说明。

主要的系统调用:

日期,时间的功能调用。

读取系统日期:

格式: (ah)=2ah

int 21h

返回值: (cx)=年,(dh)=月,(dl)=日,(al)=星期。均为16进制。

读取系统时间:

格式: (ah)=2ch

int 21h

返回值: (ch)=小时(0~23), cl)=分(0~59)

dh)=秒(0~59), dl)=百分秒(0~99).

2.时钟中断 int 1ah的调用。

读取时钟计数器的当前值。

格式: (ah)=0

int 1ah

返回值: (cx)=计值高字 (dx)=计值低字。

说明:8086系统中的8253定时器/计数器每秒产生18.2次中断,即每隔1/18.

2秒(约55ms)产生一次中断。每产生一次中断计数器加1.利用这种特性, 不断测试两次调用该功能得到的低值的差值,是否为18可获得1秒的计时。

用来控制秒的计时。

3. 读取cmos时钟。

利用in和out指令读取cmos芯片提供的端口中系统时钟。其端口地址:70h为地址端口,71h为数据端口。

在cmos的ram中,前14个字节(00~0dh)保存时钟的时间信息(如下),以bcd码存放,一个字节存放两位十进制的数,转换比较方便。

地址: 单元信息地址单元信息。

00秒06星期。

02分07日。

04时08月。

09年。四:设计思路。流程图:y

nny大致想法:

首先在数据段开辟一显示缓冲区,用来存储系统时间。调用bios中断,返回系统时间,并将来返回的二进制时间转换成ascii码,方便时间显示时的调用。分别将来小时数、分钟数、秒数存入显示缓冲区。

通过写显存将时间显示出来。由于获取了的系统时间不会自动刷新,所以我们要设计成刷新的方式来不断获取系统的时间,这样就形成了会跳动的电子钟了。定时功能主要指定一个报警时间作为比较,到了需要响铃时间调用一个**程序表示时间到。

具体实现步骤:

1 将清窗口,设置窗口颜色和日期显示颜色,设置光标位置,回车换行,dos的2号和9号功能调用,保护和恢复现场等编制成宏,存入宏库中供调用。

2. 将二进制转换成十进制,获取变化的时间等编成子程序。

3.日期的获取采用dos功能调用2ah号;时间则采用读取cmos时钟方法获得。

主要的系统调用:

1. dos日期,时间的功能调用。

读取系统日期:

格式: (ah)=2ah

int 21h

返回值: (cx)=年,(dh)=月,(dl)=日,(al)=星期。均为16进制。

读取系统时间:

格式: (ah)=2ch

int 21h

返回值: (ch)=小时(0~23), cl)=分(0~59)

dh)=秒(0~59), dl)=百分秒(0~99).均为16进制。

2.时钟中断 int 1ah的调用。

读取时钟计数器的当前值。

格式: (ah)=0

int 1ah

返回值: (cx)=计值高字 (dx)=计值低字。

五:源**。

宏:clearsc macro清屏。

mov ah,06h

mov al,0

mov bh,0f0h

mov ch,0

mov cl,0

mov dl,79

int 10h

mov dx

mov dh,23

mov ah,0

int 10h

endmclearsw macro row1,rank1,row2,rank2,color ;开窗口。

mov ah,06h

mov al,0

mov ch,row1

mov cl,rank1

mov dh,row2

mov dl,rank2

mov bh,color

int 10h

endmwindows macro row1,rank1,row2,rank2,color ;刷屏,向上。

mov ah,6

mov al,1

mov ch,row1

mov cl,rank1

mov dh,row2

mov dl,rank2

mov bh,color

int 10h

endmcursor macro row,rank置光标。

mov ah,2

mov dh,row

mov dl,rank

mov bh,0

int 10h

endmdispl macro opr2号功能显示。

mov ah,2

mov dl,opr

int 21h

endmenter macro换行。

mov ah,2

mov dl,0dh

int 21h

mov dl,0ah

int 21h

endmstore macro现场保护宏。

push ax

push bx

push cx

push dx

endmrestore macro恢复现场宏。

pop dx

pop cx

pop bx

pop ax

endm主程序:

stack segment stack

db 200 dup(0)

stack ends

data segment

a db 10 dup(0)

low1 dw 0

low2 dw 0

g db 'press the alarm time:$'

h db 0ah,0dh,'$

i db 30

db ?db 30 dup('$

j db 0

k db 'welcome to the time and alarm system!$'

l db 10 dup(?)

b dw ?

c db ?

d db ?,

e db ?,

f db ?,

data ends

code segment

assume cs:code,ss:stack,ds:data

cmos_clock_alarm proc ;获取变化的时间和响铃。

p_cmov si,0 ;给偏移指针si赋初值。

s_a_t: lea dx,g ;把读取时间相应的ascii码显示于屏幕。

mov ah,9

int 21h

lea dx,i

mov ah,10

int 21h

be: mov bl,4 ;

*bl为时分秒在cmos的rams地址值,此时赋初值4,为时的地址值*/

r_t: mov al,bl ;读时。

out 70h,al;

*传送时分秒地址值于地址端口同时从数据端口获取时的bcd码*/

in al,71h

push ax ;保护现场。

mov cl,4;开始分离时的bcd码的值。

/*使用逻辑右移指令,右移四位以分离时的bcd码的十位*/

shr al,cl

add al,30h

mov a[si],al

inc si

pop ax ;恢复现场。

and al,00001111b;

*使用逻辑乘指令,分离时的bcd码的个位*/

汇编课程设计

直流电机调速系统设计。摘要。脉宽调制的全称为 pulse widthmodulator 简称pwm 直流电机调速器就是调节直流电动机速度的设备,由于直流电动机具有低转速大力矩的特点,是交流电动机无法取代的,因此调节直流电动机速度的设备 直流调速器,由于它的特殊性能 常被用于直流负载回路中 灯具调光或...

汇编课程设计

湖南农业大学课程设计报告。学院 信息科学与技术学院班级 计算机科学与技术2班 姓名 陈小湾学号 200841842226 课程设计报告题目 时钟显示程序。课程名称 微机原理与接 术。评阅成绩 评阅意见 成绩评定教师签名 日期 年月日。第一部分 任务与要求。利用芯片8253和8259a完成时钟显示程序...

汇编课程设计

汇编语言课程临近结束时,将利用实验课和理论课最后阶段时间 大约14周开始,具体安排听通知 让同学们进行题目的答辩。分组 每5到6人一组,推选出组长。每组同学选一组题目,且任两组同学不得选重复组的题目,两班同学不要选相同组题目。请班长在第三周周一前将分组及选题的汇总excel电子版发到我邮箱。选第一组...