Add ES/Lab/LAB5/INSERTION.asm

This commit is contained in:
aadit 2025-08-21 12:19:24 +05:30
parent 9343c63874
commit c37a788cbd

50
ES/Lab/LAB5/INSERTION.asm Normal file
View file

@ -0,0 +1,50 @@
AREA RESET, DATA, READONLY
EXPORT __Vectors
__Vectors
DCD 0x10001000
DCD Reset_Handler
ALIGN
AREA MYCODE, CODE, READONLY
ENTRY
EXPORT Reset_Handler
Reset_Handler
LDR R0, =ARRAY
MOV R9, #9
LDR R9, [R9]
ADD R9, R0, R9, LSL #2 ; address of one element from the end
ADD R1, R0, #4 ; i pointer
OUTER
CMP R1, R9 ; checks append if counter
BGE DONE
LDR R5, [R1]
MOV R2, R1 ; j pointer (inner loop)
INNER
SUB R2, R2, #4 ; decrements j to previous element
CMP R2, R0
BLT INSERT
LDR R8, [R2]
CMP R8, R5
BLE INSERT
STR R8, [R2, #4]
ADD R1, R1, #4
B INNER
INSERT
STR R5, [R2, #4]
ADD R1, R1, #4
B OUTER
DONE
B DONE
AREA mydata, DATA, READWRITE
ARRAY DCD 5,2,8,1,9,4,6,3,7
END