汇编语言设计说明书.docx
- 文档编号:29807547
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:13
- 大小:79.83KB
汇编语言设计说明书.docx
《汇编语言设计说明书.docx》由会员分享,可在线阅读,更多相关《汇编语言设计说明书.docx(13页珍藏版)》请在冰豆网上搜索。
汇编语言设计说明书
汇编语言综合程序设计说明书
题目:
显示系统的当前时间和日期
系部:
计算机科学与技术系
班级:
计算机应用技术09-1班
姓名:
张三
指导教师文凭
目录
一、题目2
二、此程序编写的基本原理2
三、程序设计2
1)主程序2
2)子程序12
3)子程序22
4)子程序33
5)子程序43
四,流程图4
五、源代码4
六、运行结果:
10
七、设计的总结:
11
一、题目
编写一程序,完成以下功能:
在出现的提示信息中输入大写字母“D”,可显示系统当前日期;输入大写字母“T”,可显示系统当前时间;输入大写字母“Q”,可结束程序。
二、此程序编写的基本原理
通过调用INT10H的功能,显示提示信息。
在显示信息提示下输入一个字符,再调用INT21H功能中断,读取键盘的状态扫描键盘输入,从键盘输入的相关内容,若输入D,则依次读取当前系统日期年、月、日,然后转换成相应的ASCII码字符,再调用21H功能中断返回dos状态显示;在键盘输入T,则会依次读取当前电脑所显示的系统时间时、分、秒,转换成相应的ASCII码字符调用21H功能中断并返回dos状态显示;若输入大写字母Q,则退出当前状态;若是D/T/Q这三个字符以外的其他字符,则无反应。
三、程序设计
1)主程序
通过调用INT10H的功能,显示提示信息。
在根据显示的提示信息下输入一个字符,通过调用INT21H中断的功能扫描键盘输入,读取键盘的当前状态,根据输入的字母,与字母“D"进行比较,若比较值不相等则执行L1,否则响应按键D,输入“T”和“Q”时与输入“D”同理。
2)子程序1
即日期时间显示程序,以日期显示程序为例,通过读取系统的日期项如“年”,通过调用CALLDATEDISPLAY把日期数值转换成相应的ASCII码字符,再通过调用DATEDISPLAYPROCNEAR日期数值转换成ASCII码字符子程序,然后返回dos界面显示出来,再以同样方法读取月,日。
3)子程序2
此子程序是显示时间子程序,当键盘输入字母“D”时所调用执行的子程序;通过调用CALLDATEDISPLAY将时间数值转换成ASCII码字符,因此需调用DATEDISPLAYPROCNEAR时间数值转换成ASCII码字符子程序,然后返回dos完成一个日期项的显示,然后再循环去读取其他时间项;最后返回主程序执行主程序。
4)子程序3
即日期时间显示程序,以时间显示程序为例,通过读取系统的时间项,通过调用CALLTIMEDISPLAY把时间数值转换成相应的ASCII码字符,再通过调用TIMEDISPLAYPROCNEAR时间数值转换成ASCII码字符子程序,然后返回dos界面显示出来,然后再循环以同样方法读取月、日。
5)子程序4
本子程序是显示时间子程序,当键盘输入字母“T”时所调用执行的子程序;通过调用CALLTIMEDISPLAY将时间数值转换成ASCII码字符,因此需调用TIMEDISPLAYPROCNEAR时间数值转换成ASCII码字符子程序,然后返回dos完成一个时间项的显示,然后再循环去读取其他时间项;最后返回主程序执行主程序。
四,流程图
五、源代码
程序源代码:
CLEAR_SCREENMACROOP1,OP2,OP3,OP4
MOVAH,06H
MOVAL,00H
MOVBH,79H
MOVCH,OP1
MOVCH,OP2
MOVCH,OP3
MOVCH,OP4
int10H
MOVAH,02H
MOVBH,00H
MOVDH1,00H
MOVDL,00H
int10H
ENDM
STACKSEGMENTSTACK;定义堆栈段
DB200DUP(0)
STACKENDS
DATASEGMENT;定义数据段
WELCOMEDB'WELCOMEYOUTOCOMEHERE!
$';提示界面
INF01DB0DH,0AH,'THISISADISPLAYPROGAME!
$'
INF02DB0DH,0AH,'PLEASEINPUT"D""T"OR"Q"TOSHOWDATATIMEOREXIT!
$'
INF03DB0DH,0AH,'D:
DISPLAYSYSTEMDATE;$'
INF04DB0DH,0AH,'T:
DISPLAYSYSTEMTIME;$'
INF05DB0DH,0AH,'Q:
QUIT.$'
INF06DB0DH,0AH,'PLEASEINPUTTHECHAR:
$'
INPUTERDB0DH,0AH,'PNPUTERROR!
$'
DATEDISDB'00-00-0000',0AH,'$';显示DATE
TIMEDISDB'00:
00:
00',0DH,0AH,0AH,'$';显示TIME
DATAENDS
CODESEGMENT;代码段定义
ASSUMECS:
CODE,DS:
DATA,SS:
STACK;主程序
MAINPROCFAR
start:
MOVAH,0;设置40*25图形显示
MOVAL,3
int10H
MOVAX,DATA
MOVDS,AX
MOVAX,STACK
MOVSS,AX;显示宏定义
SHOWMACROb
LEADX,b
MOVAH,9
int21H
ENDM
SHOWWELCOME;显示数据段落的内容
SHOWINF01
SHOWINF02
SHOWINF03
SHOWINF04
SHOWINF05
SHOWINF06
INPUT:
MOVAH,01;键盘输入回写
int21H
CMPAL,44H;与D比较
JNEL1;不相等转到L1
CALLDATEDISPLAY;相等调用DATADISPLAY
JMPEXIT1
L1:
CMPAL,54H;与T比较
JNEL2;不相等转L2
CALLTIMEDISPLAY;相等调用TIMEDISPLAY
JMPEXIT1
L2:
CMPAL,51H;与Q比较
JEEXIT;相等转到EXIT
SHOWINPUTER;显示输入错误
SHOWINF05;显示输入提示INF05
JMPINPUT
EXIT1:
SHOWINF05;显示输入提示INF05
JMPINPUT
EXIT:
MOVAH,4CH;结束
int21H
MAINENDP;日期显示子程序
DATEDISPLAYPROCNEAR
LEADX,INF03;将INF03的偏移地址放到DX中,使DX指向INF03
MOVAH,09H;调用9号功能显示字符串
INT21H
MOVAH,04H;调用bios(基本输入输出系统)1A中段获取系统日期
INT1AH;CH=BCD码格式的世纪
;CL=BCD码格式的年
;DH=BCD码格式的月
;DL=BCD码格式的日
;CF=0时钟在走,否则,时钟停止
MOVAX,CX;设置年并覆盖00/00/0000中的0000
MOVCX,4;需要循环4次,把年的4位中每一位
LEASI,DATEDIS+6;取出,并覆盖掉DATEDIS中的后四位字符
LA1:
PUSHCX
MOVCL,4
ROLAX,CL
MOVBL,AL
ANDBL,0FH
ORBL,30H
MOV[SI],BL
INCSI
POPCX
LOOPLA1
MOVAX,DX;设置月日并覆盖00-00-0000中的00-00
MOVCX,4;需要循环4次,把年的4位中每一位
LEASI,DATEDIS;取出,并覆盖掉DATEDIS中的第1.2.4.5位字符
LA2:
PUSHCX
MOVCL,4
ROLAX,CL
MOVBL,AL
ANDBL,0FH
ORBL,30H
MOV[SI],BL
INCSI
POPCX
CMPCX,3
JNZP2;跳过00-00中的'-'
INCSI
P2:
LOOPLA2
LEADX,DATEDIS;显示系统当前日期
MOVAH,09H
INT21H
RET;调用后返回
DATEDISPLAYENDP;时间显示子程序
TIMEDISPLAYPROCNEAR
LEADX,INF04;将INF04的偏移地址放到DX中,使DX指向INF04
MOVAH,09H;调用9号功能显示字符串
INT21H
MOVAH,02H;调用bios1A中断的二号功能获取系统时间;时间计数器当前值写入数据区
INT1AH;CH=BCD码格式的小时
;CL=BCD码格式的分钟
;DH=BCD码格式的秒
;DL=00H标准时间,否则,夏令时
;CF=0时钟在走,否则,时钟停止
MOVAX,CX;设置小时,分钟,并覆盖00:
00:
00中时分
MOVCX,4
LEASI,TIMEDIS
LA3:
PUSHCX
MOVCL,4
ROLAX,CL
MOVBL,AL
ANDBL,0FH
ORBL,30H
MOV[SI],BL
INCSI
POPCX
CMPCX,3;跳过00:
00中的':
'
JNZP3
INCSI
P3:
LOOPLA3
PUSHDX;设置秒,并覆盖00:
00:
00中的最后的秒
MOVCL,4
SHRDH,CL;DH右移CL
ORDH,30H
MOVTIMEDIS+6,DH;将DH传送到DIMEDIS+6
POPDX
ANDDH,0FH
ORDH,30H
MOVTIMEDIS+7,DH
LEADX,TIMEDIS;显示时间
MOVAH,09H
INT21H
RET;时间调用后返回
TIMEDISPLAYENDP
codeends
endstart
六、运行结果:
输入“D”时出现的结果如图所示
输入“T”时出现的结果如下所示
如果按除了D/T/Q以外的字符时,出现的结果如下所示:
输入大写的Q时:
下面如图所示:
七、设计的总结:
1.在出现的提示信息中输入大写字母“D”,可显示系统当前日期;输入大写字母“T”,可显示系统当前时间;输入大写字母“Q”,可结束程序;若不是相关字符,则显示从新输入信息。
2在完成课程设计过程中,我认识到平时学习基础知识的重要性,只有能够熟练的掌握才能在课程设计过程中得心应手,否则就会不知从何处入手,因此,扎实的理论知识是课程设计成功的重要保障!
通过这次课程设计,我们对各个指令以及语句有了进一步的了解,对各个语句的功能有了更深刻的认识和体会,平时上课的理论知识只是停留在理论概念的层面,而通过了这次的课程设计才真正的体会到,也做到了理论概念和汇编实际的相结合,使理论知识真正运用到了实用中去。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 设计 说明书