华工微机实验报告实验四子程序的调用文档格式.docx

上传人:b****2 文档编号:13447210 上传时间:2022-10-10 格式:DOCX 页数:24 大小:208.57KB
下载 相关 举报
华工微机实验报告实验四子程序的调用文档格式.docx_第1页
第1页 / 共24页
华工微机实验报告实验四子程序的调用文档格式.docx_第2页
第2页 / 共24页
华工微机实验报告实验四子程序的调用文档格式.docx_第3页
第3页 / 共24页
华工微机实验报告实验四子程序的调用文档格式.docx_第4页
第4页 / 共24页
华工微机实验报告实验四子程序的调用文档格式.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

华工微机实验报告实验四子程序的调用文档格式.docx

《华工微机实验报告实验四子程序的调用文档格式.docx》由会员分享,可在线阅读,更多相关《华工微机实验报告实验四子程序的调用文档格式.docx(24页珍藏版)》请在冰豆网上搜索。

华工微机实验报告实验四子程序的调用文档格式.docx

按1键完成字符串小写字母变大写字母

用户输入一由英文大小写字母或数字0~9组成的字符串(以回车结束),程序逐个检查字符串中各字符,将原串中小写字母变成大写字母,其它字符不变,并在屏幕上显示。

用户按任一键,重做,按ESC键,返回主菜单。

按2键完成找最大值(二选一)

1、接收用户输入的可显示字符串(以回车结束),程序将其中ASCII码值最大的字符显示出来。

2、接收用户输入若干无符号8位数(以空格或逗号为分隔符,以回车结束),程序将其中最大的数显示出来。

按3键完成排序(二选一)

1、接收用户输入的可显示字符串,以回车结束。

程序按ASCII码值大小由大到小排序并输出显示。

2、接收用户输入若干个有符号8位数(以空格逗号为分隔符,以回车结束)。

程序将其中最大的数显示出来。

按4键显示时间

首先提示用户对时,即用户输入时,分,秒(以空格或冒号分隔,以回车结束),然后,在屏幕上不断显示时间,格式为:

×

(时):

(分):

(秒),最好定点显示。

用户按任一键,重新对时,按ESC键,返回主菜单。

按5键,结束程序运行,返回系统提示符。

四、流程图与程序代码

流程图:

流程图1—主菜单

 

流程图2--过程一流程图3—过程二

流程图4—过程三流程图5—过程四

代码:

STACKSEGMENTSTACK'

STACK'

DW100DUP(?

TOPLABELWORD

STACKENDS

DATASEGMENT

ORG3500H

;

数据段主要保存一些字符串以及定义一些字符串变量

COPYRIGHTDB'

-------ALLPROGRAMEDBYMRZHU--------'

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,防止中断指令时

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1