好文档 - 专业文书写作范文服务资料分享网站

西电微机基础原理上机课后复习第三

天下 分享 时间: 加入收藏 我要投稿 点赞

-/

微机上机作业三

内容:

编写如下程序,并在机器上调试成功。程序采用菜单式选择,可以接收用户从键盘输入的五个命令(1-5),各命令功能分别为:

(1) 按下“1”键,完成字符串小写字母变成大写字母。 (2) 按下“2”键,完成找最大值(二选一)。 (3) 按下“3”键,完成排序(二选一)。 (4) 按下“4”键,显示时间。

(5) 按下“5”键,结束程序运行,返回系统提示符。 汇编程序:

STACK TOP STACK DATA TABLE

SEGMENT STACK LABEL WORD ENDS SEGMENT

DW G1, G2, G3, G4, G5

DB 256 DUP(?)

STRING0 DB' Form the school ID is 02111460 Li Cheng',0DH,0AH,'$'

STRING1 DB '1. Change small letters into capital letters of string;', 0DH, 0AH, '$' STRING2 DB '2. Find the maximum of string;', 0DH, 0AH, '$' STRING3 DB '3. Sort for datas;', 0DH, 0AH, '$' STRING4 DB '4. Show Time;', 0DH, 0AH, '$' STRING5 DB '5. Exit.', 0DH, 0AH, '$'

STRINGN DB 'Input the number you select (1-5) : $' IN_STR PRESTR

DB 'Input the string (including letters & numbers, less than 60 letters) :', 0DH, 0AH, '$'

DB 'Original string : $'

NEWSTR DB 'New string : $' OUT_STR DB 'The string is $' MAXCHR DB 'The maximum is $' IN_NUM OUT_NUM IN_TIM

DB 'Input the numbers (0 - 255, no more than 20 numbers) : ', 0DH, 0AH, '$' DB 'Sorted numbers : ', 0DH, 0AH, '$' DB 'Correct the time (HH:MM:SS) : $'

HINTSTR DB 'Press ESC, go back to the menu; or press any key to play again!$' KEYBUF DB 61

DB ? DB 61 DUP (?) DB 20 DUP (?) ENDS

NUMBUF DB ? DATA

-/

CODE START:

SEGMENT

ASSUME CS:CODE, DS:DATA, SS:STACK MOV AX, DATA MOV DS, AX MOV AX, STACK MOV SS, AX MOV SP, OFFSET TOP

CALL FAR PTR MENU

; 设置显示器

MAIN: AGAIN: G1: G2: G3:

MOV AH, 2 MOV BH, 0 MOV DL, 41 MOV DH, 10 INT 10H MOV AH, 1 INT 21H CMP AL, '1' JB AGAIN CMP AL, '5' JA AGAIN SUB AL, '1' SHL AL, 1 CBW

LEA BX, TABLE ADD BX, AX JMP WORD PTR [BX] CALL FAR PTR CHGLTR MOV AH, 8 INT 21H CMP AL, 1BH JZ MAIN JMP G1

CALL FAR PTR MAXLTR MOV AH, 8 INT 21H CMP AL, 1BH JZ MAIN JMP G2

CALL FAR PTR SORTNUM MOV AH, 8

; N-1 ; (N-1)*2 ; AL->AX

; 页号 ; 列号 ; 行号

; 光标位置设置

INT 21H CMP AL, 1BH JZ MAIN JMP G3

G4: CALL FAR PTR TIMCHK MOV AH, 8 INT 21H CMP AL, 1BH JZ MAIN JMP G4 G5: MOV AH, 4CH INT 21H

MENU PROC FAR

MOV AH, 0 MOV AL, 3; MOV BL, 0; INT 10H

MOV AH, 2 MOV BH, 0 MOV DL, 5 MOV DH, 5 INT 10H

MOV AH, 9 LEA DX, STRING0 INT 21H MOV AH, 2 MOV DL, 5 MOV DH, 6 INT 10H

MOV AH, 9 LEA DX, STRING1

INT 21H MOV AH, 2 MOV DL, 5 MOV DH, 7 INT 10H

MOV AH, 9 LEA DX, STRING2 INT 21H

MOV AH, 2

-/

; 显示主界面

;设置显示器方式 ; 清屏

; 页号 ; 列号 ; 行号

; 光标位置设置

; 列号 ; 行号

; 光标位置设置

; 列号 ; 行号

; 光标位置设置

-/

MOV DL, 5 MOV DH, 8 ; 列号 ; 行号

INT 10H

MOV AH, 9

LEA DX, STRING3 INT 21H MOV AH, 2 MOV DL, 5 MOV DH, 9 INT 10H

MOV AH, 9 LEA DX, STRING4 INT 21H

MOV AH, 2 MOV DL, 5 MOV DH, 10 INT 10H

MOV AH, 9 LEA DX, STRING5 INT 21H MOV AH, 2 MOV DL, 5 MOV DH, 11 INT 10H

MOV AH, 9 LEA DX, STRINGN INT 21H

RET

MENU ENDP

CHGLTR

PROC FAR

RECHG: ;设置显示器方式 MOV AH, 0 MOV AL, 3 MOV BL, 0 INT 10H

MOV AH, 2 MOV BH, 0 MOV DL, 5 MOV DH, 5 INT 10H

MOV AH, 9 LEA DX, IN_STR

INT 21H

; 光标位置设置

; 列号 ; 行号

; 光标位置设置

; 列号 ; 行号

; 光标位置设置

; 列号 ; 行号

; 光标位置设置

; 将输入字符串中小写字母便换成大写字母

; 清屏

; 页号 ; 列号 ; 行号

; 输入提示光标位置设置

; 输入字符串提示

-/

MOV AH, 2 MOV DL, 5 MOV DH, 6 INT 10H MOV AH, 0AH LEA DX, KEYBUF INT 21H JZ RECHG

; 输入字符串

; 判断输入字符串是否为空串

CMP KEYBUF + 1, 0 LEA BX, KEYBUF + 2 MOV AL, KEYBUF + 1 CBW MOV CX, AX ADD BX, AX

MOV BYTE PTR [BX], '$' ; 在输入字符串尾加结束标志$ MOV AH, 2 MOV BH, 0 MOV DL, 5 MOV DH, 7 INT 10H MOV AH, 9 LEA DX, PRESTR INT 21H MOV AH, 9 LEA DX, KEYBUF + 2 INT 21H

; 输出源字符串

LEA BX, KEYBUF + 2 CMP BYTE PTR [BX], 61H JB NOCHG

AND BYTE PTR [BX], 0DFH INC BX LOOP LCHG MOV AH, 2 MOV BH, 0 MOV DL, 5 MOV DH, 8 INT 10H MOV AH, 9 LEA DX, NEWSTR

; 输出新字符串提示

MOV AH, 9 LEA DX, KEYBUF + 2

; 页号 ; 列号 ; 行号

; 新字符串提示光标位置设置

; 将字符串中小写字母转换成大写字母

; 输出源字符串提示

; 页号 ; 列号 ; 行号

; 源字符串提示光标位置设置

; 列号 ; 行号

; 输入字符串光标位置设置

LCHG:

NOCHG:

INT 21H

西电微机基础原理上机课后复习第三

-/微机上机作业三内容:编写如下程序,并在机器上调试成功。程序采用菜单式选择,可以接收用户从键盘输入的五个命令(1-5),各命令功能分别为:(1)按下“1”键,完成字符串小写字母变成大写字母。(2)按下“2”键,完成
推荐度:
点击下载文档文档为doc格式
7727e6cyma6ksx797jw59jajr88ky400wy2
领取福利

微信扫码领取福利

微信扫码分享