汇编上机题目代码(5)

2020-04-03 11:33

INSERT PROC MOV [DI],AX ADD DI,2

RET

INSERT ENDP CODE ENDS END MAIN

29.设有4个学生参加5门考试,请计算每个学生的平均成绩和每门课的平均分成绩,并在显示器上显示,输出格式如下:

Chg1 chg2 chg3 chg4 chg5 meam S1 78 85 55 100 97 S2 67 96 43 79 84 S3 92 55 76 92 65 S4 43 95 82 89 75

Aver 不计小数。

DATA SEGMENT

PRINT DB ' CHG1 CHG2 CHG3 CHG4 CHG5 MEAN',13,10

DB 'S1 78 85 55 100 97 ' B1 DB 0,0,13,10

DB 'S2 67 96 43 79 84 ' B2 DB 0,0,13,10

DB 'S3 92 55 76 92 65 ' B3 DB 0,0,13,10

DB 'S4 43 95 82 89 75 '

B4 DB 0,0,13,10 DB 'AVER ' A1 DB 0,0,' ' A2 DB 0,0,' ' A3 DB 0,0,' ' A4 DB 0,0,' ' A5 DB 0,0,' ','$' MINUS1 DB 5 MINUS2 DB 4 MINUS3 DB 10 C DB 78,85,55,100,97 DB 67,96,43,79,84 DB 92,55,76,92,65 DB 43,95,82,89,75

DATA ENDS CODE SEGMENT

ASSUME CS:CODE,ES:DATA,DS:DATA

MAIN PROC FAR MOV AX,DATA MOV DS,AX MOV ES,AX

CALL MEAM CALL AVER

CALL OUTPUT

MOV AX,4C00H INT 21H MAIN ENDP

46

MEAM PROC MOV CL,4 LEA SI,C LEA DI,B1

CLC

AGAIN: MOV AX,0

MOV CH,5

AGAN: ADD AL,[SI] ADC AH,0

INC SI

DEC CH JNZ AGAN CALL M

DEC CL JNZ AGAIN

RET MEAM ENDP M PROC DIV MINUS1 MOV AH,0 DIV MINUS3

OR AX,3030H

MOV [DI],AL MOV [DI+1],AH ADD DI,34

RET

M ENDP

AVER PROC MOV CL ,5 LEA BX,C LEA DI ,A1

CLC

AGAIN1: MOV AX,0 MOV SI,BX MOV CH,4

AGAN1: ADD AL,[SI] ADC AH,0 ADD SI,5 DEC CH

JNZ AGAN1 CALL A

INC BX DEC CL JNZ AGAIN1

RET

AVER ENDP A PROC DIV MINUS2 MOV AH,0 DIV MINUS3 OR AX,3030H MOV [DI],AL MOV [DI+1],AH ADD DI,5

RET

47

A ENDP

OUTPUT PROC LEA DX,PRINT MOV AH,9 INT 21H

RET

OUTPUT ENDP

CODE ENDS END MAIN

30、编程计算从2开始的N(N<50)个偶数之和(2+4+6+…),主程序从键盘输入整数N,调用子程序求出N个偶数之和,由主程序显示结果。尝试分别使用以下3种方法编写完整程序。 (1)利用寄存器传递参数 (2)利用公共数据段变量传递参数 (3)利用堆栈传递参数

DATA SEGMENT COUNT DB 0 BUF DB 3 DB ? DB 3 DUP(?)

PRINT DB 10,13 OUTPU DB 0,0,0,0,'$' SUM DW 0 M DW 2 N DW 10

DATA ENDS CODE SEGMENT

ASSUME CS:CODE,ES:DATA,DS:DATA MAIN PROC FAR MOV AX,DATA MOV ES,AX MOV DS,AX

CALL INPUT

MOV AX,SUM

AGAIN: INC SUM ADD AX,SUM LOOP AGAIN MUL M CALL OUTPUT

MOV AH,4CH INT 21H MAIN ENDP

INPUT PROC LEA DX,BUF MOV AH,0AH INT 21H

MOV AX,WORD PTR BUF+2 AND AX,0F0FH

48

PUSH AX MOV AH,0 MUL N POP DX XCHG DH,DL MOV DH,0 ADD AX,DX MOV CX,AX RET INPUT ENDP

OUTPUT PROC LEA BX, OUTPU ADD BX,3 MOV CX,3 TO: MOV DX,0 DIV N MOV [BX],DL

OR BYTE PTR [BX],30H DEC BX LOOP TO MOV [BX],AL

OR BYTE PTR [BX],30H

LEA DX,PRINT MOV AH,9 INT 21H RET OUTPUT ENDP

CODE ENDS END MAIN

32将两个磁盘文件合并成一个新的文件

DATA SEGMENT BUF1 DB 20 DB ?

DB 20 DUP(0) BUF2 DB 20 DB ?

DB 20 DUP(0) BUF3 DB 20 DB ?

DB 20 DUP(0) B1 DW 0 B2 DW 0 B3 DW 0

SPACE DB 10,13,'$' BUF DB 55535 DUP(?) DATA ENDS CODE SEGMENT

ASSUME CS:CODE ,DS:DATA,ES:DATA

MAIN PROC FAR MOV AX,DATA MOV ES,AX MOV DS,AX

LEA DX,BUF1 CALL INPUT

49

CALL OUTPUT LEA DX,BUF2 CALL INPUT CALL OUTPUT LEA DX,BUF3 CALL INPUT MOV CL,BUF1+1 MOV CH,0 MOV SI,CX MOV BUF1[SI+2],0

MOV AH,3DH MOV AL ,2 LEA DX,BUF1+2 INT 21H MOV B1,AX MOV CL,BUF2+1 MOV CH,0 MOV SI,CX MOV BUF2[SI+2],0

MOV AH,3DH MOV AL, 2 LEA DX,BUF2+2 INT 21H MOV B2,AX MOV CL,BUF3+1

MOV CH,0

MOV SI,CX MOV BUF3[SI+2],0

MOV AH,3CH MOV CX,0 LEA DX,BUF3+2 INT 21H

MOV B3,AX

MOV AH,3EH MOV BX,B3 INT 21H

MOV AH,3DH MOV AL ,2 LEA DX,BUF3+2 INT 21H

MOV AH,3FH MOV BX,B1 MOV CX,0FFFFH LEA DX,BUF INT 21H MOV SI,AX

MOV AH,3FH MOV BX,B2 MOV CX,0FFFFH LEA DX,BUF[SI] INT 21H

ADD SI,AX

50


汇编上机题目代码(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:综合知识

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: