




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、附件二:西安郵電學院汇编语言程序设计报告 小型多任务管理系统专业班级软件1205 计科1204 软件1204学生姓名潘珂 刘振威 张娅娇学号04123158 04121111 04123136时间2011年11月21日-2011年12月1日 汇编语言程序设计报告一、 设计题目小型多任务管理系统二、 设计内容 总体设计:设计任务管理系统,对多个任务进行管理和调度,能够实现多个任务之间的切换,并保存信息。 三、 需求分析1.功能描述:设计一个多任务管理系统,对多个任务进行管理和调度,并可实现在多个任务之间的切换,保存信息,使任务能够通过屏幕显示运行结果
2、或状态。2.实现目标:(1)可以采用公平级策略实现任务调度,即时间片轮转法,保证每个任务都能得到执行。(2)可以采用优先级方式实现任务调度,对任务进行分级,高优先级的任务可以抢占式执行。(3)可以创建任务队列,实现任务的有序执行。(4)对内存和指令指针的管理,实现上下文信息的保存和切换。(5)任务调度程序可以使用硬件中断或软件中断,通过中断服务程序来完成。3.测试数据:四、 概要设计1、 方案设计两个十进制数加减法模块:(1)首先从键盘分别获取两个十进制数;(2)然后定义X,Y分别保存这两个十进制数;(3)接着让用户选择加或者减,加则执行加法子程序,减则执行减法子程序最后定义Z 保存两个数相加
3、或相减的结果;(4)输出Z。显示系统时间日期模块(1) 该模块主要完成的功能分为三个:显示当前系统的日期(包括年月日)、显示当前系统时间(具体到分秒)、退出该模块;(2) 采用分层次的模块结构,使代码一目了然。数字等腰三角形模块(1)该模块主要完成一个功能:显示出来一个由数字1,2,3,4,5,6,7,8组成的等腰三角形,如下图所示: 1 212 32123 4321234 543212345 65432123456 7654321234567 876543212345678(3) 这个子任务直接由系统调用,退出,不需要输入任何参数。(4) 主要运用嵌套的模块结构,使代码循环有序。(5)总体结
4、构图 显示系统时间和日期显示数字等腰三角形两个十进制数字加减法小型多任务管理系统 选择界面两个十进制数加减法结构图主程序Main(输入X和Y,判断执行加法或减法) 子程序change (判断X,Y的大小)子程序qiucha(X>Y:Z=X-Y输出Z;X<Y:Z=Y-X输出- Z)子程序qiuhe(Z=X+Y,输出Z)显示系统时间和日期结构图主程序MAIN(显示界面提示信息,根据键输入的字符调用各子程序) 子程序DATEDISPLAY (调用DOS的2AH功能,取系 统当前日期,将日期转换成对应的ASCII码值并显示)子程序DATEDISPLAY (调用DOS的2AH功能,取系 统当
5、前日期,将日期转换成对应的ASCII码值并显示)显示数字等腰三角形结构图 在主程序MAIN中 rep4函数(主要包括三个子程序,循环调用三个子程序,直到退出这个函数) rep1函数(循环产生生空格,在当前的一行中) rep3函数(在当前的中,循环产生以1为界右边数字)rep2函数(在当前一行中,循环产生以1为界左边数字)2、模块功能说明模块功能(1) 界面模块功能:(a)提示用户已进入小型多任务管理系统; (b)可在此界面模块进行选择需要执行的功能; (c)如果选择数字1或按Tab键,则进入界面中的第二个模块执行add or sub功能,进行十进制数加减法计算; (d)如果选择数字2或继续按T
6、ab键,则进入界面中第三个模块执行input time功能,进行系统时间和日期显示功能; (e)如果选择数字3或继续按Tab键,怎进入界面中第四个模块执行input graphical功能,进行数字等腰三角形显示功能; (f)如果选择ESC键,则退出该系统,返回DOS。 (注:在每执行完一个模块后,按Tab键会执行下一个模块,一直循环执行,直到退出该系统)通过截图显示功能:(2) 两位十进制数加减法模块功能:进行两个十进制数的加法计算;进行两个十进制数的减法计算。(3) 显示系统日期和时间模块功能:通过选择D显示日期通过选择T显示时间,通过选择Q退出来显示用户需要的功能。(4) 显示数字等腰三
7、角形模块功能:输出一个等腰三角形五、 详细设计及运行结果流程图, 函数之间相互调用的图示 ,程序设计主要代码, 运行结果。1. 两个十进制数加减法功能模块(1)流程图: 开始 输入第一个数并存入X 输入第二个数并存入Y 提示输入+或- 判断AL +- X=Y Z=X+YYN X>YYN Z=Y-X Z=X-Y输出-Z 输出Z输出0 结束(2)函数调用图: 主程序Main(输入X和Y,判断执行加法或减法)+- 子程序change (判断X,Y的大小) 子程序qiucha(X>Y:Z=X-Y输出Z;X<Y:Z=Y-X输出- Z) 子程序qiuhe (Z=X+Y,输出Z)(3)程序
8、设计主要代码:输入模块主要代码: X0:MOV AH,01H ;X0段的功能是接收从键盘输入的数字存入X,并在屏幕上显示 INT 21H MOV DL,AL CMP DL,13 ;比较DL是否为回车 JZ X1 ;如果DL为回车,则跳转至X1 MOV XSI,DL ;如果DL不为回车,则将DL存入X INC SI LOOP X0 求和模块主要代码: CLC PUSHF A0:MOV CX,10 MOV BX,90 A1:MOV DL,XSI-1 ;A1的功能是实现加法运算,将X存入DL,从个位开始赋值 MOV AL,YDI-1 POPF ;CF出栈 ADC AL,DL ;AL与DL相加并把结果
9、存入AL AAA ;处理进位 PUSHF ;CF入栈 ADD AL,30H ;将AL转成ASC码 MOV ZBX,AL ;AL内容存入Z DEC SI DEC DI DEC BX LOOP A1 ;CX-1,并循环执行A1 INC BX POPFA2:CMP ZBX,30H ;A2的功能是判断Z的高位是否为0,如果为0,则不显示 JNZ A3 ;如果Z的高位不为0,则跳转至A3 INC BX ;如果Z的高位为0,则BX+1LOOP A2 A3:CURS 6,40 ;CURS为宏定义的光标定位函数 MSG INFOR3 MSG ZBX求差模块主要代码: CLC ;CF清零 PUSHF ;CF内容
10、入栈 CALL CHANGE CMP CX,0 JE NEXT1 CMP BX,'<' JE A00 X<Y执行A00 CMP BX,'>' JE B00 X>Y执行B00 NEXT1:CURS 6,40 X=Y输出0 MSG INFOR3 MSG LINGX>Y则执行:B00:MOV CX,10 MOV BX,90 B11: MOV AL,XSI-1 ;B11的功能是实现加法运算,将X存入DL,从个位开始赋值 MOV DL,YDI-1 POPF ;CF出栈 SBB AL,DL ;AL与DL相加并把结果存入AL AAS ;处理进位
11、PUSHF ;CF入栈 ADD AL,30H ;将AL转成ASC码 MOV ZBX,AL ;AL内容存入Z DEC SI DEC DI DEC BX LOOP B11 INC BX POPFB22:CMP ZBX,30H ;B22的功能是判断Z的高位是否为0,如果为0,则不显示 JNZ B33 ;如果Z的高位不为0,则跳转至A3 INC BX ;如果Z的高位为0,则BX+1LOOP B22 B33: CURS 6,40 MSG INFOR3 MSG ZBXX<Y时:交换X与Y的位置,即用Z=Y-X,输出的时候在Z的前面加个负号(5) 运行结果:2. 显示系统日期和时间模块(1)流程图(2
12、)程序设计主要代码:数据定义: STR DB ' |* Welcome! *|',0DH,0AH DB '| |* *|',0DH,0AH DB '| |* This is a display program. *|',0DH,0AH DB '| |* D: display Date *|',0DH,0AH DB '| |* T: display Time *|',0DH,0AH DB '| |* Q: Quit *|',0DH,0AH DB '| |* *|',0DH,0AH DB
13、 '| |*|',0DH,0AH STR1 DB '| Please input a char: $'注:(a)以上代码是进入这个子任务时,显示在当前模块的菜单。(b)这个菜单指示用户按键盘上键,选择所要完成的功能,例如:D当前系统日期、T当前系统时间,Q退出这个子任务。菜单下有一条提示命令,光标定位在当前,提示用户输入要选择功能的键。MSG2 DB 'INPUT ERROR!$'(c)当输入错误时,自动提示:INPUT ERROR!DATEDISPLAY PROC NEAR ;显示当前系统日期 MOV AH,2AH INT 21H MOV AX
14、,CX MOV BX,10 LEA SI,DATEDIS+4 MOV CX,4 PUSH DXTAB: XOR DX,DX DIV BX ADD DL,30H MOV SI,DL DEC SI LOOP TAB POP DX MOV AL,DL XOR AH,AH DIV BL ADD AX,3030H LEA SI,DATEDIS+9 MOV SI,AX MOV AL,DH XOR AH,AH DIV BL ADD AX,3030H LEA SI,DATEDIS+6 MOV SI,AX CURS 21,5 MSG DATEDIS RETDATEDISPLAY ENDP(3)运行结果通过截图显
15、示功能: 3. 显示等腰三角形模块(1) 流程图:开始 进入MAIN函数,用AX,BX,CX的值来限制REP4函数,自动结束看是否需要产生空格,JNA LEFT准备产生空格,连续产生空格,调用REP1(1) 是(2)否调用LEFT,以1为界REP2函数产生从大到小的数(左边)REP3函数从小到大的数(右边)判断是否为第1行否 自动回车换行(3)(2)程序主要代码rep4: ;控制运行总行数 cmp cx,8je onecmp cx,7je twocmp cx,6je threecmp cx,5je fourcmp cx,4je fivecmp cx,3je sixcmp cx,2je seve
16、ncmp cx,1je eightone:curs 12,50jmp continuetwo:curs 13,50jmp continuethree:curs 14,50jmp continuefour:curs 15,50jmp continuefive:curs 16,50jmp continue six:curs 17,50jmp continueseven:curs 18,50jmp continueeight:curs 19,50jmp continuecontinue:push ax push bx push cx sub al,bl ;jna left mov cx,ax mov
17、 ah,2 mov dl,20h rep1: ;rep1在rep4控制每行产生的空格数int 21h loop rep1 left:mov cx,bx mov ah,2 mov dl,30h add dl,bl rep2: ;rep2在rep4内,与rep1并列控制以1为界,产生左半边的逆序排列的数字int 21h dec dl loop rep2 sub bl,1 jna next mov cx,bx add dl,2 rep3: ;rep3在rep4内,与rep1,rep2并列控制以1为界,产生右半边的升序排列的数字int 21h inc dl loop rep3 next:mov dl,
18、0dh int 21h mov dl,0ah int 21h pop cx pop bx pop ax inc bl loop rep4(3)运行结果: 注:程序编译连接运行截图如下:六、 调试情况,设计技巧及体会1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。2、在设计过程中的感受。1.评价:(1)通过本次汇编语言大赛,我们实现了小型多任务管理系统,同时,对于本次比赛中的要求基本都得到实现。(2)对于这次比赛,我们也付出了很多,通过在网上查找相关资料,在图书馆翻阅相关书籍来了解多任务管理系统的具体要求及实现,三个人相互合作,共同努力。(3)我们的代码具有高效性,可读性,通过多个子程序调用和宏指令等实现功能,将其写成多个模块,方便调用。2.合理之处:(1)可以采用优先级方式实现任务调度,对任务进行分级,高优先级的任务可以抢占式执行。(2)可以创建任务队列,实现任务的有序执行。(3)对内存和指令指针的管理,实现上下文信息的保存和切换。(4) 任务调
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年船底防污漆项目发展计划
- 2025年年托育项目合作计划书
- 试用合同范本(2篇)
- 教务处开题报告范文
- 新财务试用期转正个人工作总结
- 物流主管2024年上半年工作总结3
- 2025年度钢材居间服务佣金结算协议
- 二零二五年度水利工程款结算与防洪安全合同
- 2025年度门窗维修与户外安全防护合同
- 二零二五年度手房买卖意向金退还与房屋维修责任合同
- 公司厂区保洁培训
- 江苏省招标中心有限公司招聘笔试冲刺题2025
- 2024年防盗门销售合同范本
- 支付令申请书(2025版)
- 《干细胞及其应用》课件
- 课题申报书:生成式人工智能提升中小学教师数字素养的路径探究
- 临床妇产题库+参考答案
- 麻醉护士的 工作职责
- 2025年中考语文一轮复习:九年级下册知识点梳理
- 旅游健康与保健知识
- 亚朵酒店前台述职报告
评论
0/150
提交评论