ããç»è®¡è´æ°ç个æ°
ãã设æ°æ®æ®µæå¦ä¸æ符å·æ°å®ä¹
ãã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