微机实验报告实验四子程序的调用文档格式.docx
- 文档编号:14629244
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:23
- 大小:194.25KB
微机实验报告实验四子程序的调用文档格式.docx
《微机实验报告实验四子程序的调用文档格式.docx》由会员分享,可在线阅读,更多相关《微机实验报告实验四子程序的调用文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
(时):
(分):
(秒),最好定点显示。
用户按任一键,重新对时,按ESC键,返回主菜单。
按5键,结束程序运行,返回系统提示符。
四、流程图与程序代码
流程图:
流程图1—主菜单
流程图2--过程一流程图3—过程二
流程图4—过程三流程图5—过程四
代码:
STACKSEGMENTSTACK'
STACK'
DW100DUP(?
)
TOPLABELWORD
STACKENDS
DATASEGMENT
ORG3500H
;
数据段主要保存一些字符串以及定义一些字符串变量
COPYRIGHTDB'
-------ALLPROGRAMEDBY@MRZHU--------'
0DH,0AH,'
$'
COMMONDB'
Pleaseinput1to5toselectafunction'
S1DB'
1.Inputastring,thenconvertthesmallletterstobigletters'
S2DB'
2.Findthebiggest-ASCII-codecharacter'
S3DB'
3.SortthecharacterbyASCIIcodebydecreasingorder'
S4DB'
4.displaythetickingtime'
S5DB'
5.Exittheprogram'
CR_LFDB0DH,0DH,'
IN_MAINDB'
Nowinputanumber(1-5):
'
'
MAIN_ERRORDB0DH,0AH,'
ERROR:
Pleaseinputacorrectnumber;
'
PRO_1_S1DB0DH,0AH,'
Nowinputastring(numberorletter):
PRO_1_S2DB0DH,0AH,'
Thestringhasbeenchangedto:
PRO_2_S1DB0DH,0AH,'
Nowinputastring(anysymbol):
PRO_2_S2DB0DH,0AH,'
Thebiggest-ASCII-codesymbolis:
PRO_3_S1DB0DH,0AH,'
PRO_3_S2DB0DH,0AH,'
Thestringhasbeensorted:
PRO_4_S1DB0DH,0AH,'
Settingtime(XX:
XX:
XX<
Hours:
Minutes:
Seconds>
):
PRO_4_S2DB0DH,0AH,'
SETTINGDONE!
PRO_4_S3DB0DH,0AH,'
TIME_NOW(Pressanykeytostop):
PRO_4_ERROR_LENDB0DH,0AH,'
!
ERROR(Lengthoverflow):
Pleaseinputinthecorrectformat!
PRO_4_ERROR_NOT_NUMDB0DH,0AH,'
ERROR(Notnumberornot"
:
"
PRO_4_ERROR_NUM_OVERDB0DH,0AH,'
ERROR(Numberoverflow):
Pleaseinputthecorrectnumber!
PRO_END_SDB0DH,0AH,'
PressanykeytocontinueexceptESC'
STRING1DB50
DB?
DB50DUP(?
STRING2DB50
DB?
DB50DUP(?
STRING3DB50
STRING4DB50
DATAENDS
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,STACK
MOVSS,AX
MOVSP,OFFSETTOP
PUSHDS
SUBAX,AX
PUSHAX;
初始化堆栈
MOVAX,DATA
MOVDS,AX
MENU:
MOVDX,OFFSETCOPYRIGHT
MOVAH,9
INT21H
MOVDX,OFFSETCOMMON
MOVDX,OFFSETS1
MOVDX,OFFSETS2
MOVDX,OFFSETS3
MOVDX,OFFSETS4
MOVDX,OFFSETS5
MOVDX,OFFSETCR_LF
IN_A_NUM:
MOVDX,OFFSETIN_MAIN
INT21H;
显示主菜单信息
MOVAH,01H
INT21H;
输入一个字符
CMPAL,'
1'
JEP1
2'
JEP2
3'
JEP3
4'
JEP4
5'
JEP5_EXIT;
判断输入的字符并跳转
MOVDX,OFFSETMAIN_ERROR
INT21H
JMPIN_A_NUM;
其他字符时输出提醒并跳转到重新输入
P1:
CALLPRO_1
换行
JMPMENU
P2:
CALLPRO_2
P3:
CALLPRO_3
P4:
CALLPRO_4
P5_EXIT:
RET;
返回DOS
MAINENDP;
MAIN段结束
PRO_1PROCNEAR;
过程一
PRO_1_START:
MOVDX,OFFSETPRO_1_S1
INT21H;
输出提示语
MOVDX,OFFSETSTRING1
MOVAH,0AH
把STRING1的字符串首地址给DX,输入一个字符串
MOVCX,0
MOVCL,STRING1[1]
MOVBX,1
LOOP1:
;
循环,将小写字母改为大写
INCBX
MOVAL,STRING1[BX]
CMPAL,61H
JBNEXT1
CMPAL,7AH
JANEXT1
SUBAL,20H
MOVSTRING1[BX],AL
NEXT1:
LOOPLOOP1
MOVSTRING1[BX],'
MOVDX,OFFSETPRO_1_S2
输出提示的句子
MOVDX,OFFSETSTRING1[2]
输出改变后的字符串
MOVDX,OFFSETPRO_END_S;
输出通用结束提示语
输入一个字符,实现跳转的判断
CMPAL,1BH
JENEXT1_2
JMPPRO_1_START;
如果是ESC则不跳转到子程序开头,是则跳转
NEXT1_2:
RET
PRO_1ENDP
PRO_2PROCNEAR;
过程二
PRO_2_START:
MOVDX,OFFSETPRO_2_S1;
MOVDX,OFFSETSTRING2;
把STRING2的字符串首地址给DX,接收一个字符串
MOVCL,STRING2[1]
MOVAL,0
LOOP2:
CMPAL,STRING2[BX]
JAENEXT2_1;
AL大于等于字符ASCII值时跳转
MOVAL,STRING2[BX]
NEXT2_1:
LOOPLOOP2
MOVSI,BX;
把BX的值放到SI,也就是指向回车的位置
MOVBL,AL;
把AL放到BL,防止中断指令时破坏AL
MOVDX,OFFSETPRO_2_S2
INT21H;
MOVDL,BL
MOVAH,2
显示最大ASCII的字符
MOVDX,OFFSETPRO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 实验 报告 子程序 调用