求一道汇编语言的程序设计题!急~~!

有100个学生成绩,存放在以DATA为首址的字节存储单元中。试统计其中90(含90)以上的人数,60—90(含60)之间的人数,60以下的人数,分别存入MAX,MIDDLE, MIN三个变量中。

ASSUME DS:QQ, CS:CC

QQ SEGMENT

DATA DW 76, 69, 84, 90, 73, 88, 99, 63, 100, 80 ;这里可写100个成绩
DW 78, 78 ,74, 79, 72, 78, 77, 76, 76, 75

NNN EQU ($ - DATA) / 2

S6 DW 0
S7 DW 0
S8 DW 0
S9 DW 0
S10 DW 0

MESSAGE1 DB '60-69 NUMBER:', '$'
LLL EQU $ - MESSAGE1
MESSAGE2 DB '70-79 NUMBER:', '$'
MESSAGE3 DB '80-89 NUMBER:', '$'
MESSAGE4 DB '90-99 NUMBER:', '$'
MESSAGE5 DB '100 NUMBER:', '$'

QQ ENDS

CC SEGMENT

START:
MOV AX, QQ
MOV DS, AX

CALL COUNT
CALL DISPLAY

MOV AX, 4C00H
INT 21H
;------------------------
COUNT PROC NEAR
MOV CX, NNN
MOV SI, 0
NEXT:
MOV AX, DATA[SI]
MOV BL, 10
DIV BL
MOV AH, 0
MOV BX, AX
SUB BX, 6
SHL BX, 1
INC S6[BX]
ADD SI, 2
LOOP NEXT
RET
COUNT ENDP
;------------------------
DISPLAY PROC NEAR
MOV CX, 5
MOV SI, 0
MOV DI, 0
ROTATE:
MOV AH, 9
LEA DX, MESSAGE1
ADD DX, DI
INT 21H
MOV AX, S6[SI]
MOV BL, 10
DIV BL
MOV BX, AX
MOV AH, 2H
MOV DL, BL
CMP BL, 0
JZ NEXW
ADD DL, 30H
INT 21H
NEXW:
MOV DL, BH
ADD DL, 30H
INT 21H
ADD SI, 2
ADD DI, LLL
CALL CRLF
LOOP ROTATE
RET
DISPLAY ENDP
;------------------------
CRLF PROC NEAR
MOV AH, 2H
MOV DL, 0DH
INT 21H
MOV DL, 0AH
INT 21H
RET
CRLF ENDP
;------------------------
CC ENDS
END START
温馨提示:内容为网友见解,仅供参考
无其他回答

《汇编语言程序设计》 题目解答
4、AX=1090H,BX=90H。5、MOV DX,1 MOV AX,-100H MOV BX,16 IMUL BX (1)执行后,AX=F000H,BX=16,DX=FFFFH (2)若将IMUL改为MUL则执行完后,AX=1600H,BX=16,DX=000BH 6、下面程序段中每条指令执行完后,AX的内容是什么(十六进制)?MOV AX,0;AX=0000H DEC AX;AX=FFFFH ADD ...

简单的汇编语言程序设计!加急!
CLR C SUBB A, 31H ;(30H)-(31H)JC EXIT ;不够减转移 MOV 32H, 31H ;否则31H才是小数 EXIT:END --- 2. 将片内RAM单元中 30H~37H 的数据送到片外RAM的 40H~47H。MOV R0, #30H MOV R1, #40H MOV R2, #8 LOOP:MOV A, @R0 MOVX @R1, A INC R0...

汇编语言程序设计题目
一、改错(只能对每条错误指令的一个操作数进行修改)。(共10分,每小题1分)1. MOVBX,AL改正: MOV BX,BX 2. MOV AX, A999H 改正:MOV AX,0A999H 3. MOV AL, 1234改正:MOV AX,1234 4. MOVAX, [CX] 改正:MOV AX,[BX]5. MOVDS, 1000H 改正:MOV AX,1000H ...

汇编语言程序设计题目,在线等答案!!!急!
程序运行后,将以16进制形式显示平均值58H。

汇编语言程序设计习题解答
1、设操作码固定,若零地址指令有P种,一地址指令有Q种,则二地址指令最多有几种:解答:根据操作数地址码为6位,则二地址指令中操作码的位数为16 – 6 – 6 = 4。这4位操作码可有24=16种操作。由于操作码固定,则除去了零地址指令P种,一地址指令Q种,剩下二地址指令最多有16 – P – ...

汇编语言程序设计题求高手
1.编写一个程序实现:在BUF开始的存储区中存放30个带符号数,试统计其正数、负数和零的个数,并将统计的个数分别放到PLUS、NEGATIVE、ZERO单元中。; 本程序通过编译,运行正确 Code Segment Assume CS:Code,DS:Code BUF db 23,-69,0,35,46,0,57,68,0,79,81,98,-43,251,21,15,-69,0,...

汇编语言程序设计:作业
1.20H占一个内存单元,[bx]占两个内存单元,即两字节,不能相加,内存单元大小不同 2.[cx]不能用来表示内存单元,只有bx,si,bp可以用来表示内存单元,且内存单元大小不同 3.al是八位寄存器,bx是16位寄存器,不能相加,内存单元不同不能相加 4.di不能表示内存单元,只有bx,si,bp三个寄存器可以...

汇编语言程序设计题
; 本程序通过编译,运行正确 Data Segment org 200h Data_BCD db 58h ;两位BCD码 db ?,? ;保存转换后的ASCII码 Data Ends Code Segment Assume CS:Code,DS:Data Start: mov ax,Data mov ds,ax ;数据段段地址 mov al,Data_BCD ;取两位BCD码 xor ah,ah ;累加器高位...

求汇编语言与程序设计高手来。我需要组一份汇编试题请高手给做下。谢 ...
MOV AX, [BX][SI] 物理地址 21001H (AX)=7812H 6.在下列程序段括号中,填入正确的答案。DATA SEGMENT BUF DB 12H,56H DATA ENDS 7.指出下列指令错误原因,填入括号中。A. MOV AX,BL ;源操作数与目标操作数长度不同 B. MOV CS,AX ;CS寄存器不能作为目标操作数 C. DEC GAMA[...

汇编语言程序设计问题求解
) MSG DB 'LUCKY' NUM ENDS (3) CODE SEGMENT ASSUME CS:CODE START: MOV AX,1 MOV CX,5 @1: MUL CX LOOP @1 MOV SI,AX CALL

相似回答