华电保定微机原理汇编实验
发布时间:2020-08-19 19:19:43
发布时间:2020-08-19 19:19:43
源程序:
DATAS SEGMENT
;此处输入数据段代码
ORG 2000H
DATA1 DB 1,2,3,4,5,6,7,8,9,10
ORG 3000H
DATA2 DB 10 DUP(0)
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV SI,2000H
MOV DI,3000H
MOV CX,10
NEXT:MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
DEC CX
JNZ NEXT
MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果:
源程序:
DATAS SEGMENT
;此处输入数据段代码
ORG 2000H
DATA1 DW 1,2,3,4,5,6,7,8,9,10
ORG 3000H
DATA2 DW 10 DUP(0)
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV SI,2000H
MOV DI,3000H
MOV CX,10
NEXT:MOV AX,[SI]
MOV [DI],AX
ADD SI,2
ADD DI,2
DEC CX
JNZ NEXT
MOV AH,4CH
INT 21H
CODES ENDS
END START
运行后:
源数据:
DATAS SEGMENT
;此处输入数据段代码
DATA1 DB 1,2,3,4,5,6,7,8,9,10
ORG 1000H
DATA2 DB 10 DUP(0)
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA SI,DATA1
LEA DI,DATA2
MOV CX,10
NEXT:MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
DEC CX
JNZ NEXT
MOV AH,4CH
INT 21H
CODES ENDS
END START
初始值:
运行后:
源程序:
DATAS SEGMENT
;此处输入数据段代码
ORG 2000H
DATA1 DB 5 DUP(1,2,3,4,5,6)
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV SI,2000H
MOV DI,2100H
MOV CX,20
NEXT1:MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
DEC CX
JNZ NEXT1
MOV SI,2100H
MOV DI,2010H
MOV CX,20
NEXT2:MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
DEC CX
JNZ NEXT2
MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果:
实验目的:熟悉实验环境;熟练掌握查表程序
DATAS SEGMENT
;此处输入数据段代码
TABLE DB 0, 1,4,9,16,25,36,49,64,81,100,121,144,169,196,255
X DB 3
Y DB 0
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA BX,TABLE
MOV AL,X
MOV AH,0
ADD BX,AX
MOV AL,[BX]
MOV Y,AL
MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果:
方法二:
源程序:
DATAS SEGMENT
;此处输入数据段代码
TABLE DB 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,255
X DB 3
Y DB 0
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA BX,TABLE
MOV AL,X
XLAT
MOV Y,AL
MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果
源程序
DATAS SEGMENT
;此处输入数据段代码
TABLE DW 0,1,4,9,16,25,250 DUP(0)
X DW 3
Y DW
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA SI,TABLE
MOV AX,X
ADD AX,AX
ADD BX,AX
MOV AX,[BX]
MOV Y,AX
MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果
源程序:
DATAS SEGMENT
;此处输入数据段代码
DATA1 DD 1234F000H
DATA2 DD H
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA SI,DATA1
LEA DI,DATA2
MOV AX,[SI]
ADD AX,[DI]
MOV [SI],AX
MOV AX,[SI+2]
ADC AX,[DI+2]
MOV [SI+2],AX
MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果
源程序:
DATAS SEGMENT
;此处输入数据段代码
DATA1 DQ 788H
DATA2 DQ 99AABBCCDDEEFF00H
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA SI,DATA1
LEA DI,DATA2
MOV CX,4
CLC
NEXT:MOV AX,[SI]
ADC AX,[DI]
MOV [SI],AX
ADD SI,2
ADD DI,2
DEC CX
JNZ NEXT
MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果
源程序:
DATAS SEGMENT
;此处输入数据段代码
DATA1 DB 88H,77H,66H,55H,44H,33H,22H,11H
DATA2 DB 22H,33H,44H,55H,66H,77H,88H,99H
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA SI,DATA1
LEA DI,DATA2
CLC
MOV CX,8
NEXT:MOV AL,[SI]
ADC AL,[DI]
DAA
MOV [SI],AL
INC SI
INC DI
DEC CX
JNZ NEXT
MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果
源程序:
DATAS SEGMENT
;此处输入数据段代码
DATA1 DB 1,2,3,4,5,6,7,8,9,10
SUM DB 0
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA SI,DATA1
LEA DI,SUM
MOV CX,10
CLC
NEXT:MOV AL,[SI]
ADC SUM,AL
ADD SI,1
DEC CX
JNZ NEXT
MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果
源程序:
DATAS SEGMENT
;此处输入数据段代码
DATA1 DW 1,2,3,4,5,6,7,8,9,10
SUM DW 0
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA SI,DATA1
LEA DI,SUM
MOV CX,10
CLC
NEXT:MOV AX,[SI]
ADC SUM,AX
ADD SI,2
DEC CX
JNZ NEXT
MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果
DATAS SEGMENT
;此处输入数据段代码
X DB 10
Y DB 5
Z DB
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV AL,X
SUB AL,Y
MOV BL,7
MUL BL
CBW
MOV BL,Y
ADD BL,2
IDIV BL
MOV Z,AL
MOV AH,4CH
INT 21H
CODES ENDS
END START
DATAS SEGMENT
;此处输入数据段代码
ORG 2040H
DATA1 DB 11
DATA2 DB 12
DATA3 DB
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV AL,DATA1
CMP AL,DATA2
JG GREAT
MOV AL,DATA2
GREAT:MOV DATA3,AL
MOV AH,4CH
INT 21H
CODES ENDS
END START
DATAS SEGMENT
;此处输入数据段代码
DATA DB 1,2,3,6,5,4,10,9,8,7
MAX DB
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA BX,DATA
MOV CX,9
MOV AL,[BX]
NEXT:INC BX
CMP AL,[BX]
JG GREAT
MOV AL,[BX]
GREAT:MOV MAX,AL
DEC CX
JNZ NEXT
MOV AH,4CH
INT 21H
CODES ENDS
END START
DATAS SEGMENT
;此处输入数据段代码
DATA DB 3,2,1,6,5,4,10,9,8,7
MIN DB
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA BX,DATA
MOV CX,9
MOV AL,[BX]
NEXT:INC BX
CMP AL,[BX]
JL LESS
MOV AL,[BX]
LESS:MOV MIN,AL
DEC CX
JNZ NEXT
MOV AH,4CH
INT 21H
CODES ENDS
END START
DATAS SEGMENT
;此处输入数据段代码
DATA DW 3,2,1,6,5,4,10,9,8,7
MAX DW
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA BX,DATA
MOV CX,9
MOV AX,[BX]
NEXT:ADD BX,2
CMP AX,[BX]
JG GREAT
MOV AX,[BX]
GREAT:MOV MAX,AX
DEC CX
JNZ NEXT
MOV AH,4CH
INT 21H
CODES ENDS
END START
DATAS SEGMENT
;此处输入数据段代码
DATA DW 3,2,1,6,5,4,10,9,8,7
MIN DW
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA BX,DATA
MOV CX,9
MOV AX,[BX]
NEXT:ADD BX,2
CMP AX,[BX]
JL LESS
MOV AX,[BX]
LESS:MOV MIN,AX
DEC CX
JNZ NEXT
MOV AH,4CH
INT 21H
CODES ENDS
END START
源程序:
DATAS SEGMENT
;此处输入数据段代码
TABLE DB -1,-2,-3,-4,-5,1,2,3,4,5
NUM DB
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA SI,TABLE
MOV NUM,0
MOV CX,10
NEXT2:MOV AL,[SI]
TEST AL,80H
JNZ NEXT1
INC NUM
NEXT1:INC SI
DEC CX
JNZ NEXT2
MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果:
源程序:
DATAS SEGMENT
;此处输入数据段代码
TABLE DB -1,-2,-3,-4,-5,1,2,3,4,5
NUM DB
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA SI,TABLE
MOV NUM,0
MOV CX,10
NEXT2:MOV AL,[SI]
TEST AL,80H
JZ NEXT1
INC NUM
NEXT1:INC SI
DEC CX
JNZ NEXT2
MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果:
源程序:
DATAS SEGMENT
;此处输入数据段代码
TABLE DW -1,-2,-3,-4,-5,1,2,3,4,5
NUM DB
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA SI,TABLE
MOV NUM,0
MOV CX,10
NEXT2:MOV AX,[SI]
TEST AX,8000H
JNZ NEXT1
INC NUM
NEXT1:ADD SI,2
DEC CX
JNZ NEXT2
MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果:
源程序:
DATAS SEGMENT
;此处输入数据段代码
TABLE DW -1,-2,-3,-4,-5,1,2,3,4,5
NUM DB
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA SI,TABLE
MOV NUM,0
MOV CX,10
NEXT2:MOV AX,[SI]
TEST AX,8000H
JZ NEXT1
INC NUM
NEXT1:ADD SI,2
DEC CX
JNZ NEXT2
MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果:
源程序:
DATAS SEGMENT
;此处输入数据段代码
TABLE1 DB 1,2,3,4,5,6,7,8,9,10
N DB
DATAS ENDS
DATAB SEGMENT
TABLE2 DB 1,2,3,4,5,6,8,7,9,10
DATAB ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV BX,DATAB
MOV ES,BX
;此处输入代码段代码
LEA SI,TABLE1
LEA DI,TABLE2
CLD
MOV CX,10
MOV N,0
NEXT2:CMPSB
JNZ NEXT1
DEC CX
JNZ NEXT2
JMP EXIT
NEXT1:INC N
EXIT:MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果:(相同N=0,不同N=1)
源程序:
DATAS SEGMENT
;此处输入数据段代码
TABLE1 DW 1,2,3,4,5,6,7,8,9,10
N DB
DATAS ENDS
DATAB SEGMENT
TABLE2 DW 1,2,3,4,5,6,8,7,9,10
DATAB ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV BX,DATAB
MOV ES,BX
;此处输入代码段代码
LEA SI,TABLE1
LEA DI,TABLE2
MOV CX,10
MOV N,0
CLD
NEXT2:CMPSW
JNZ NEXT1
DEC CX
JNZ NEXT2
JMP EXIT
NEXT1:INC N
EXIT:MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果:(相同N=0,不同N=1)
源程序:
DATAS SEGMENT
;此处输入数据段代码
ORG 4000H
DATA1 DB 9AH
DATA2 DB
DATA3 DB
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV AL,DATA1
AND AL,0F0H
MOV CL,4
SHR AL,CL
MOV DATA2,AL
MOV AL,DATA1
AND AL,0FH
MOV DATA3,AL
MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果:
源程序:
DATAS SEGMENT
;此处输入数据段代码
ORG 4000H
DATA1 DB 9AH
DATA2 DB 7BH
DATA3 DB
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV AL,DATA1
AND AL,0FH
MOV CL,4
SHL AL,CL
MOV DATA3,AL
MOV AL,DATA2
AND AL,0FH
ADD DATA3,AL
MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果:
DATAS SEGMENT
;此处输入数据段代码
STRING DB "HELLO!$"
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA DX,STRING
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
DATAS SEGMENT
;此处输入数据段代码
BUFFER DB 100,0,100 DUP()
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA DX,BUFFER
MOV AH,10
INT 21H
MOV CL,BUFFER+1
XOR CH,CH
ADD DX,CX
MOV BX,DX
MOV BYTE PTR[BX+2],'$'
MOV AH,4CH
INT 21H
CODES ENDS
END START
DATAS SEGMENT
;此处输入数据段代码
DATA DB 25H
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA BX,DATA
MOV AL,[BX]
AND AL,0F0H
MOV CL,4
SHR AL,CL
ADD AL,30H
MOV DL,AL
MOV AH,2
INT 21H
MOV AL,[BX]
AND AL,0FH
ADD AL,30H
MOV DL,AL
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
DATAS SEGMENT
;此处输入数据段代码
DATA DB 25
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA BX,DATA
MOV AL,[BX]
CBW
MOV CL,10
DIV CL
ADD AL,30H
ADD AH,30H
MOV BL,AH
MOV DL,AL
MOV AH,2
INT 21H
MOV DL,BL
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
DATAS SEGMENT
;此处输入数据段代码
BUFFER DB 20,0,20 DUP()
INPUT DB 10 DUP(0)
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA SI,BUFFER
LEA DI,INPUT
MOV AH,10
INT 21H
MOV CL,BUFFER+1
NEXT:MOV AL,[SI+2]
SUB AL,30H
MOV [DI],AL
INC SI
INC DI
DEC CL
JNZ NEXT
MOV AH,4CH
INT 21H
CODES ENDS
END START
DATAS SEGMENT
;此处输入数据段代码
DATA DB 1,2,3,4,5,6,7,8,9,0
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA BX,DATA
MOV CX,10
NEXT:MOV AL,[BX]
ADD AL,30H
MOV DL,AL
MOV AH,2
INT 21H
INC BX
DEC CX
JNZ NEXT
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
DATAS SEGMENT
;此处输入数据段代码
BUFFER DB 100,0,100 DUP()
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA BX,BUFFER
MOV AH,10
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
DATAS SEGMENT
;此处输入数据段代码
ARY DB 1,2,3,4,5,6,7,8,9,10
COUNT EQU $-ARY
SUM DB
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
DB 100 DUP()
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,STACKS
MOV SS,AX
;此处输入代码段代码
CALL PROADD
MOV AH,4CH
INT 21H
PROADD PROC NEAR
PUSH AX
PUSH CX
PUSH SI
LEA SI,ARY
MOV CX,COUNT
XOR AL,AL
CLC
NEXT:ADC AL,[SI]
INC SI
DEC CX
JNZ NEXT
XOR SUM,AL
POP SI
POP CX
POP AX
RET
PROADD ENDP
CODES ENDS
END START