DSEG SEGMENT
NUM DB -20,+18,27,-45,62,-82,+255,0,-3
COUNT DB 9
MAX DB ?
BUF DB 'MAX=$'
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
MAIN PROC FAR
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DSEG
MOV DS,AX
MOV BX,OFFSET NUM
MOV CL,COUNT
MOV AX,[BX]
ADD BX,2
DEC CX
NEXT:CMP AX,[BX]
JGE SKIP
MOV AX,[BX]
SKIP:ADD BX,2
LOOP NEXT
MOV [MAX],AL
RET
MOV BL,[MAX]
CALL CRLF
CALL PROGRAM
MOC DX,OFFSET BUF
MOV AX,09H
INT 21H
CALL CRLF
MOV AH,4CH
INT 21H
PROGRAM PROC
MOV CH,4
ROTATE:MOV CL,4
ROL BX,CL
MOV AL,BL
AND AL,0FH
ADD AL,30H
CMP AL,3AH
JL PRINTIT
ADD AL,7
PRINTIT:MOV DL,AL
MOV AH,2
INT 21H
DEC CH
JNZ ROTATE
RET
PROGRAM ENDP
CRLF PROC
MOV AH,2
MOV DL,0AH
INT 21H
MOV DL,0AH
INT 21H
RET
CRLF ENDP
CSEG ENDS
END MAIN