汇编语言课程设计年月日的接收显示.docx
《汇编语言课程设计年月日的接收显示.docx》由会员分享,可在线阅读,更多相关《汇编语言课程设计年月日的接收显示.docx(8页珍藏版)》请在冰点文库上搜索。
![汇编语言课程设计年月日的接收显示.docx](https://file1.bingdoc.com/fileroot1/2023-6/15/6e5a26d7-4fbf-4a58-9136-44e48efb949a/6e5a26d7-4fbf-4a58-9136-44e48efb949a1.gif)
汇编语言课程设计年月日的接收显示
课程设计报告
(汇编语言程序设计)
设计题目接收年、月、日信息并显示的程序
年级专业
学生姓名
学号
指导老师
2008年 6 月
一、设计目的
学会将课本上的理论知识和实际有机的结合起来,锻炼自己分析解决实际问题的能力。
提高适应实际,实践编程的能力。
巩固响铃符使用方法,掌握年、月、日输入方法。
二、设计内容
设计一个程序,显示字符串“whatisthedate?
”,并响铃一次。
然后从键盘输入年月日,最后再输出显示出来,判断月和日是否输入正确。
首先在屏幕上显示字符串“whatisthedate?
”,然后调用响铃程序,并响铃一次。
然后屏幕显示从键盘输入年月日,最后再在屏幕上输出所输入的年月日信息。
三、程序流程图
四、源程序
DATASSEGMENT
masgdb'whatisthedate?
',13,10,'$'
mess1db'pleaseinputthemonth:
',13,10,'$'
mess2db13,10,'pleaseinputtheday:
',13,10,'$'
mess3db13,10,'pleaseinputtheyear:
',13,10,'$'
errmessdb13,10,'error!
!
pleaseinputrightdate!
',13,10,'$'
mondb2dup(?
)
daydb2dup(?
)
yeardb4dup(?
)
DATASENDS
STACKSSEGMENT
db200dup(?
) ;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
mainprocfar
MOVAX,DATAS
MOVDS,AX
leadx,masg
movah,9
int21h
callsound
;inputmonth
leadx,mess1
movah,9
int21h
movcx,2
movsi,0
lop1:
moval,mon[si]
movah,1
int21h
movmon[si],al
incsi
looplop1
;判断月份是否输入正确
compar1:
mov bl,mon[0]
sub bl,30h
mov al,10
mul bl
mov cl,mon[1]
sub cl,30h
sub ch,ch
add ax,cx
cmp ax,1
jl err
cmp ax,12
jg err
;判断日期是否输入正确
;inputday
leadx,mess2
movah,9h
int21h
movcx,2
movsi,0
lop2:
moval,day[si]
movah,1
int21h
movday[si],al
incsi
looplop2
compar2:
mov bl,day[0]
sub bl,30h
mov al,10
mul bl
mov cl,day[1]
sub cl,30h
sub ch,ch
add ax,cx
cmp ax,1
jl err
cmp ax,30
jg err
;inputyear
leadx,mess3
movah,9h
int21h
movcx,4
movsi,0
lop3:
moval,year[si]
movah,1
int21h
movyear[si],al
incsi
looplop3
jmpexit
err:
leadx,errmess
movah,9h
int21h
jmpexit
exit:
MOVAH,4CH
INT21H
mainendp
;--------------------------------------------------
;发声子程序
soundprocnear
pushax
pushdx
movcx,1b
movbx,10000
movax,cx
movdx,cx
inal,61h
andal,11111100b
trig:
xoral,2
out61h,al
movcx,bx
delay:
loopdelay
decdx
jnetrig
popdx
popax
ret
soundendp
;--------------------------------------------------
CODESENDS
ENDSTART
五、用户使用说明
1、用文本文档建立asm文件;
2、用汇编程序masm(或asm)对源文件汇编产生目标文件obj;
3、用连接程序link产生执行文件exe;
4、执行程序。
用命令-u显示程序,以便了解指令地址。
然后用命令-g将断点
六、实验结果
1.输入正确的月日年:
2.输入错误的月份:
3.输入错误的日:
七、参考文献
1.IBM—PC汇编语言程序设计(第二版) 沈美明,温冬婵编著清华大学出版社出版 第五章和第九章
2.IBM—PC汇编语言程序设计实验教程 沈美明,温冬婵,张赤红编著清华大学出版社出版