TEMP EQU 30H
PREV_NUM EQU 31H
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
MOV DPTR, #2100H
MOV R7, #10
TEST_LOOP1:
MOV A, R7
MOVX @DPTR, A
INC DPTR
DJNZ R7, TEST_LOOP1
MOV R7, #9
MOV PREV_NUM,#1
MOV DPTR, #2101H
INSERT_LOOP1:
MOVX A, @DPTR
MOV TEMP, A
PUSH DPL
PUSH DPH
MOV R6, PREV_NUM
INSERT_LOOP2:
DEC DPL
MOVX A, @DPTR
CJNE A, TEMP, N_EQU
LJMP INSERT
CONTINUE_THIS_INSERT:
DJNZ R6, INSERT_LOOP2
DEC DPL
LJMP INSERT
NEXT_INSERT:
INC PREV_NUM
POP DPH
POP DPL
INC DPTR
DJNZ R7, INSERT_LOOP1
DONE:
SJMP $
N_EQU:
JC INSERT
INC DPL
MOVX @DPTR, A
DEC DPL
LJMP CONTINUE_THIS_INSERT
INSERT:
INC DPL
MOV A, TEMP
MOVX @DPTR, A
LJMP NEXT_INSERT
END