实验三综合程序设计_第1页
实验三综合程序设计_第2页
实验三综合程序设计_第3页
实验三综合程序设计_第4页
实验三综合程序设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、实验要求编写程序实现下列5项功能,通过从键盘输入15进行菜单式选择:1) 按数字键“1”,完成将字符串中的小写字母变换成大写字母。用户输入由英文大小写字母或数字09组成的字符串(以回车结束),变换后按下列格式在屏幕上显示:例如:abcdgyt0092 ABCDGYT0092按任一键重做;按Esc键返回主菜单。2) 按数字键“2”,完成在字符串中找最大值。用户输入由英文大小写字母或数字09 组成的字符串(以回车结束),找出其中数字字符的最大值,按下列格式在屏幕上显示: The maximum number is 按任一键重做;按Esc键返回主菜单。3) 按数字键“3”,完成输入数据组的排序。

2、用户输入一组(小于50个)十进制数值(小于255),中间以逗号分隔,回车表示输入结束。按递增方式进行排序,并将结果按下列格式在屏幕上显示:按任一键重做;按Esc键返回主菜单。4) 按数字键“4”,完成系统时间的显示。首先提示用户对时,即改变系统的定时器HH:MM:SS(以冒号间隔,回车结束),然后在屏幕的右上角实时显示出时间:HH:MM:SS。按任一键重新对时;按Esc键返回主菜单。5) 按数字键“5”,结束程序的运行,返回系统。二、实验目的学习掌握DOS常用功能的调用方法,综合进行程序设计。增强和提高汇编语言程序设计的能力,掌握模块化程序的设计方法。三、实验过程(调试分析)name menu

3、showdata segment HEX1 DB Change the small letter to capital in hex, please press 1,0AH,0DH,$ HEX2 DB Find the max number in hex, please press 2,0AH,0DH,$ HEX3 DB Reorder the numbers,please press 3,0AH,0DH,$ HEX4 DB show up the systems time, please press 4,0AH,0DH,$ HEX5 DB End the program, please pr

4、ess 5,0AH,0DH,$ HEX6 DB The maximum number is ,$ HEX7 DB You didnt input any number!,$ HEX8 DB What you input is wrong!,$ NUM DB 50 DUP(0) NUMS DB 3 DUP(0) HEX DB 51 DUP(0)endsstack segment DB 256 DUP(0)endscode segmentstart: ASSUME DS:DATA, CS:CODE, SS:STACK MOV AX, DATA MOV DS, AX MOV AX, STACK MO

5、V SS, AX ;print main menuSHOW_MENU: LEA DX, HEX1 MOV AH, 09H INT 21H LEA DX, HEX2 INT 21H LEA DX, HEX3 INT 21H LEA DX, HEX4 INT 21H LEA DX, HEX5 INT 21H JMP SELCT_TARGETSHOW_MENU_TIP: MOV AH, 02H MOV DL, 0AH INT 21H MOV DL, 0DH INT 21H JMP SHOW_MENU ;select targetSELCT_TARGET: MOV AH, 01H INT 21H PU

6、SH AX MOV DL, 0AH MOV AH, 02H INT 21H MOV DL, 0DH INT 21H POP AX CMP AL, 49 JZ PRO_CHOOSE1 CMP AL, 50 JZ PRO_CHOOSE2 CMP AL, 51 JZ PRO_CHOOSE3 CMP AL, 52 JZ PRO_CHOOSE4 CMP AL, 53 JZ PRO_CHOOSE5 PRO_CHOOSE1: CALL program1 MOV AH, 01H INT 21H CMP AL, 27 JZ SHOW_MENU_TIP MOV DL, 0AH MOV AH, 02H INT 21

7、H MOV DL, 0DH INT 21H CMP AL, 27 JNZ PRO_CHOOSE1PRO_CHOOSE2: CALL program2 MOV AH, 01H INT 21H CMP AL, 27 JZ SHOW_MENU_TIP MOV DL, 0AH MOV AH, 02H INT 21H MOV DL, 0DH INT 21H CMP AL, 27 JNZ PRO_CHOOSE2PRO_CHOOSE3: CALL program3 MOV AH, 01H INT 21H CMP AL, 27 JZ SHOW_MENU_TIP MOV DL, 0AH MOV AH, 02H

8、INT 21H MOV DL, 0DH INT 21H CMP AL, 27 JNZ PRO_CHOOSE3PRO_CHOOSE4: CALL program4 MOV AH, 0BH INT 21H MOV DL, AL MOV AH, 06H INT 21H;这一段就是改进过的对时部分 CMP AL, 27 JZ SHOW_MENU_TIP CMP DL, 0FFH JZ TIP6 MOV DL, 0DH MOV AH, 02H INT 21H JMP PRO_CHOOSE4TIP6: MOV AH, 02H MOV DL, 0AH INT 21H MOV DL, 0DH INT 21H

9、JMP PRO_CHOOSE4 PRO_CHOOSE5: HLT ;-program1- program1 proc near PUSH SI PUSH CX PUSH AX PUSH DX MOV CX, 50 LEA SI, HEX READ1: MOV AH, 01H INT 21H CMP AL, 0DH JZ PRO1-1 MOV SI, AL INC SI LOOP READ1PRO1-1: MOV SI+1, $ LEA SI, HEXTIP1: CMP SI, $ JZ PRO1_STOP CMP SI, 97 JB PRO1-2 CMP SI, 122 JA PRO1-2 M

10、OV AX, SI SUB AX, 32 MOV SI, AX PRO1-2: INC SI JMP TIP1PRO1_STOP: MOV DL, 0AH MOV AH, 02H INT 21H MOV DL, 0DH INT 21H LEA DX, HEX MOV AH, 09H INT 21H POP DX POP AX POP CX POP SI RET program1 endp ;-program2- program2 proc near PUSH SI PUSH CX PUSH AX PUSH DX PUSH BX MOV CX, 50 LEA SI, HEX READ2: MOV

11、 AH, 01H INT 21H CMP AL, 0DH JZ PRO2-1 MOV SI, AL INC SI LOOP READ2PRO2-1: MOV SI, $ LEA SI, HEXTIP2: CMP SI, $ JZ PRO2-4 CMP SI, 48 JB PRO2-2 CMP SI, 57 JA PRO2-2 MOV BH, SI JMP PRO2-3 TIP3: CMP SI, $ JZ PRO2-5 CMP SI, 48 JB PRO2-3 CMP SI, 57 JA PRO2-3 CMP BH, SI JNB PRO2-3 MOV BH, SI JMP PRO2-3 PR

12、O2-2: INC SI JMP TIP2PRO2-3: INC SI JMP TIP3PRO2-4: MOV DL, 0AH MOV AH, 02H INT 21H MOV DL, 0DH INT 21H LEA DX, HEX7 MOV AH, 09H INT 21H JMP PRO2_STOPPRO2-5: ;PUSH BX MOV DL, 0AH MOV AH, 02H INT 21H MOV DL, 0DH INT 21H LEA DX, HEX6 MOV AH, 09H INT 21H ;POP BX MOV DL, BH MOV AH, 02H INT 21H JMP PRO2_

13、STOPPRO2_STOP: POP BX POP DX POP AX POP CX POP SI RET program2 endp;-transfered by program3- translate proc near CMP CX, 4 JZ PRO3_NULL CMP CX, 3 JZ PRO3-1 CMP CX, 2 JZ PRO3-2 CMP CX, 1 JZ PRO3-3 CMP CX, 0 JZ PRO3_WRONGPRO3_NULL: LEA DX, HEX7 MOV AH, 09H INT 21H JMP PRO3_STOPPRO3_WRONG: LEA DX, HEX8

14、 MOV AH, 09H INT 21H JMP PRO3_STOP PRO3-1: LEA SI, NUMS MOV AX, SI SUB AX, 48 MOV DI, AX INC DI JMP translate_stopPRO3-2: PUSH BX LEA SI, NUMS MOV AL, SI SUB AL, 48 MOV AH, 10 MUL AH MOV BX, AX MOV AX, SI+1 SUB AX, 48 ADD BX, AX MOV DI, BX INC DI POP BX JMP translate_stop PRO3-3: PUSH BX LEA SI, NUM

15、S MOV AL, SI SUB AL, 48 MOV AH, 100 MUL AH MOV BX, AX MOV AL, SI+1 SUB AL, 48 MOV AH, 10 MUL AH ADD BX, AX MOV AX, SI+2 SUB AX, 48 ADD BX, AX MOV DI, BX INC DI POP BXtranslate_stop: RET translate endp;-program3- program3 proc near PUSH SI PUSH DI PUSH CX PUSH AX PUSH DX PUSH BX LEA DI, NUM MOV BX, 0

16、READ3: INC BX LEA SI, NUMS MOV CX, 4TIP4: MOV AH, 01H INT 21H CMP AL, , JZ TRANSLATE1 CMP AL, 0DH JZ TRANSLATE2 MOV SI, AL INC SI LOOP TIP4 TRANSLATE1: CALL translate JMP READ3TRANSLATE2: CALL translate REORDER: MOV DI, $ DEC BX ;NUM中元素的数目减一 MOV CX, BX ;冒泡排序 JUDGE1: LEA DI, NUM PUSH CX PUSH BX MOV C

17、X, BX JUDGE2: MOV AL, DI MOV BL, DI+1 CMP AL, BL JC NEXT1 MOV DI+1, AL MOV DI, BL NEXT1: INC DI LOOP JUDGE2 POP BX POP CX LOOP JUDGE1TRANSLATE2_PRINT: LEA DI, NUM MOV DL, 0AH MOV AH, 02H INT 21H MOV DL, 0DH INT 21HTIP5: CMP DI, 9 JNA PRO3-4 CMP DI, 99 JNA PRO3-5 CMP DI, 255 JNA PRO3-6 PRO3-4: MOV AL

18、, DI ADD AL, 48 MOV DL, AL MOV AH, 02H INT 21H CMP DI+1, $ JZ PRO3_STOP MOV DL, , INT 21H INC DI JMP TIP5PRO3-5: MOV AX, DI MOV AH, 0 MOV BL, 10 DIV BL MOV DL, AL ADD DL, 48 ;保护余数 PUSH AX MOV AH, 02H INT 21H POP AX MOV DL, AH ADD DL, 48 MOV AH, 02H INT 21H CMP DI+1, $ JZ PRO3_STOP MOV DL, , INT 21H

19、INC DI JMP TIP5 PRO3-6: MOV AX, DI MOV AH, 0 MOV BL, 100 DIV BL MOV DL, AL ADD DL, 48 PUSH AX MOV AH, 02H INT 21H POP AX MOV AL, AH MOV AH, 0 MOV BL, 10 DIV BL MOV DL, AL ADD DL, 48 PUSH AX MOV AH, 02H INT 21H POP AX MOV DL, AH ADD DL, 48 MOV AH, 02H INT 21H CMP DI+1, $ JZ PRO3_STOP MOV DL, , INT 21

20、H INC DI JMP TIP5 PRO3_STOP: POP BX POP DX POP AX POP CX POP DI POP SI RET program3 endp ;-program4- program4 proc near PUSH AX PUSH DX PUSH BX MOV AH, 2CH INT 21H ;hours MOV AL, CH CALL program4help MOV DL, : MOV AH, 02H INT 21H ;mimutes MOV AL, CL CALL program4help MOV DL, : MOV AH, 02H INT 21H ;second MOV AL, DH CALL program4help POP BX POP DX POP AX RET program4 endp program4help proc near PUSH AX PUSH DX PUSH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论