Answers for "Write a program in ARM assembly to do an insertion sort of 16 random numbers"

0

Write a program in ARM assembly to do an insertion sort of 16 random numbers

*        Insertion sort            16/06/2016
INSSORT  CSECT
         USING  INSSORT,R13        base register
         B      72(R15)            skip savearea
         DC     17F'0'             savearea
         STM    R14,R12,12(R13)    prolog
         ST     R13,4(R15)         "
         ST     R15,8(R13)         " 
         LR     R13,R15            "
         LA     R6,2               i=2
         LA     R9,A+L'A           @a(2)
LOOPI    C      R6,N               do i=2 to n
         BH     ELOOPI             leave i
         L      R2,0(R9)           a(i)
         ST     R2,V               v=a(i)
         LR     R7,R6              j=i
         BCTR   R7,0               j=i-1
         LR     R8,R9              @a(i)
         S      R8,=A(L'A)         @a(j)
LOOPJ    LTR    R7,R7              do j=i-1 to 1 by -1 while j>0
         BNH    ELOOPJ             leave j
         L      R2,0(R8)           a(j)
         C      R2,V               a(j)>v
         BNH    ELOOPJ             leave j
         MVC    L'A(L'A,R8),0(R8)  a(j+1)=a(j)
         BCTR   R7,0               j=j-1
         S      R8,=A(L'A)         @a(j)
         B      LOOPJ              next j
ELOOPJ   MVC    L'A(L'A,R8),V      a(j+1)=v;
         LA     R6,1(R6)           i=i+1
         LA     R9,L'A(R9)         @a(i)
         B      LOOPI              next i
ELOOPI   LA     R9,PG              pgi=0
         LA     R6,1               i=1
         LA     R8,A               @a(1)
LOOPXI   C      R6,N               do i=1 to n
         BH     ELOOPXI            leave i
         L      R1,0(R8)           a(i)
         XDECO  R1,XDEC            edit a(i)
         MVC    0(4,R9),XDEC+8     output a(i)
         LA     R9,4(R9)           pgi=pgi+1
         LA     R6,1(R6)           i=i+1
         LA     R8,L'A(R8)         @a(i)
         B      LOOPXI             next i
ELOOPXI  XPRNT  PG,L'PG            print buffer
         L      R13,4(0,R13)       epilog 
         LM     R14,R12,12(R13)    "
         XR     R15,R15            "
         BR     R14                exit
A  DC F'4',F'65',F'2',F'-31',F'0',F'99',F'2',F'83',F'782',F'1'
   DC F'45',F'82',F'69',F'82',F'104',F'58',F'88',F'112',F'89',F'74'
V        DS     F                  variable
N        DC     A((V-A)/L'A)       n=hbound(a)
PG       DC     CL80' '            buffer
XDEC     DS     CL12               for xdeco
         YREGS                     symbolics for registers
         END    INSSORT
Posted by: Guest on October-18-2021

Code answers related to "Write a program in ARM assembly to do an insertion sort of 16 random numbers"

Browse Popular Code Answers by Language