
设数据段有如下有符号数定义
NUM DB -19, 28, 37, -46, 55, 61, -74, 255
设计一个程序,完成两项要求:
⑴ 统计并且显示负数的个数;
⑵ 求最大值和最小值并在屏幕上显示。
显示格式由自己决定。
.MODEL SMALL
.STACK 100
.DATA
NUM DB -19, 28, 37, -46, 55, 61, -74, 255
COUNT EQU $-OFFSET NUM
DATA DB 3 DUP(0)
MESS1 DB " MAX:$"
MESS2 DB " MIN:$"
MESS3 DB " NUMBER OF NEGETIVE:$"
.CODE
.STARTUP
MOV SI,OFFSET NUM
MOV DI,OFFSET DATA
MOV AL,[SI]
MOV [DI],AL
MOV [DI+1],AL
MOV CX,COUNT内存中数据的个数
XOR BX,BX储存个数,最后存在[DI+2]
COMP: MOV AL,[SI]循环比较以及更新数值
INC SI
CMP AL,[DI]
JL L1
MOV [DI],AL
L1: CMP AL,[DI+1]
JG L2
MOV [DI+1],AL
L2: CMP AL,0
JGE L3
INC BX
L3: LOOP COMP
MOV [DI+2],BX
MOV DX,OFFSET MESS1-----输出最大值
MOV AH,9
INT 21H
MOV AL,[DI]
CALL OUTPUT
MOV DX,OFFSET MESS2-----输出最小值
MOV AH,9
INT 21H
MOV AL,[DI+1]
CALL OUTPUT
MOV DX,OFFSET MESS3-----输出负数个数
MOV AH,9
INT 21H
MOV AL,[DI+2]
CALL OUTPUT
MOV AH,4CH
INT 21H
------子过程输出十六进制整数
OUTPUT PROC
MOV BL,AL
MOV CL,4
SHR AL,CL
CALL PRINT 输出高位
MOV AL,BL
AND AL,0FH
CALL PRINT 输出低位
MOV AH,2
MOV DL,'H'
INT 21H 输出H符号
RET
OUTPUT ENDP
PRINT PROC 子程序,输出16进制数
MOV AH,02H
MOV DL,AL
CMP DL,09H
JB L4
ADD DL,7
L4: ADD DL,30H
INT 21H
RET
PRINT ENDP
.EXIT
END
DAT SEGMENTBLOCK DB -1,-3,5,6,-2,0,20,10
PLUS_D DB 8 DUP(?) 正数缓冲区
MINUS_D DB 8 DUP(?) 负数缓冲区
PLUS DB 0
MINUS DB 0
PLUSS DB THE PLUS DATA HAVE:,$,0DH,0AH
MINUSS DB THE MINUS DATA HAVE:,$,0DH,0AH
PLUSNUMS DB THE PLUS DATA NUMBER IS:,$
MINUSNUMS DB THE MINUS DATA NUMBER IS:,$
DAT ENDS
CODE SEGMENT
ASSUME CS:CODE,DSDAT
MOV AX,DAT
MOV DS,AX
STAR:
MOV SI,OFFSET BLOCK
MOV DI,OFFSET PLUS_D
MOV BX,OFFSET MINUS_D
MOV CX, 8 数据个数送CX
GOON: LODSB AL← [SI]
TEST AX, 80H
JNZ JMIUS 为负数,转
INC PLUS 正数个数加一
STOSB [DI] ←AL,传正数
JMP AGAIN
JMIUS: INC MINUS 负数个数加一
XCHG BX, DI
STOSB 送负数到缓冲区
XCHG BX, DI
AGAIN: DEC CX
JNZ GOON
MOV AX,$
MOV [DI], AX
MOV [BX],AX
LEA DX,PLUSNUMS
MOV AH,9
INT 21H
MOV DL,PLUS
MOV AH,8
INT 21H
LEA DX,PLUSS
MOV AH,9
INT 21H
LEA DX,PLUS_D
MOV AH,9
INT 21H
LEA DX,MINUSNUMS
MOV AH,9
INT 21H
MOV DL,MINUS
MOV AH,8
INT 21H
LEA DX,PMINUSS
MOV AH,9
INT 21H
LEA DX,MINUS_D
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END STAR
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)