Adsense

Solution of assembly language code to arrange set of 32 bit data stored from memory location 0x1FFFF104 in descending order, No. of data elements is stored on memory location 0x1FFFF100.

 Solution:

;code prepare by PAILLA RAGHAVENDRA REDDY
;if input is 0A 01 02 0F
;then output is 01 02 0A 0F

        TTL transfer
        AREA Myprog, CODE, READONLY
ENTRY
        EXPORT main
main
        LDR R7,=0X1FFFF100     ; initialize the register R7 with starting address.
        LDR R1,[R7,R1]         ; fetch the first value to R1 for counting.  
        LSLS R1,R1,#0x02       ; left shift the R1 by 2 position to multiply with 4.
    
LOOP    ADDS R6,R6,#0X04       ; Shift R6 to fetch the next word.
        CMP R6,R1              ; compare R6 with R1 to continue loop.
        BEQ done               ; if R6=R1 than end loop otherwise continue.
        LDR R2,[R7,R6]           ; store minimum value.
        MOVS R0,R2             ; R0 stores the initial value.
        LDR R4,=0X00000000     ; R4 stores the address of data when minimum is found.
        ADDS R3,R6,#0X04       ; R3 is also counter that starts from next value of R6.
COMPARE    LDR R5,[R7,R3]         ; fetch data into R5.
        CMP R5,R2              ; compare the R5 with R2 to find lesser.
        BLO LOWER              ; number are unsigned so if R5<R3 than jump to label.
back    ADDS R3,R3,#0X04       ; Increment R3.
        CMP R3,R1              ; Compare R3 with R1 to continue or exit Compare loop.
        BLE COMPARE              ; If R3<=R1 continue Compare Loop.
        CMP R4,0X00000000       ; If R4 value changed the Goto Swap
        BNE SWAP
back1   B LOOP                 ; unconditional jump to comapre
      
LOWER   MOVS R2,R5             ; transfer R5 to R2 if R5 is higher than R2
        ADDS R4,R7,R3           ; Store the address where minimum is found
        B back                 ; jump to label


SWAP     STR R0,[R4]            ; Swapping
        STR R2,[R7,R6]      
        B back1                ; jump to label
done
        SWI &11
        END

Input

Result


No comments:

Post a Comment

Write a ARM cortex M0+ assembly language code based on arithmatc and logical instructions.

 Problem 1: Implement following code conversions to convert binary no 0x89ABCDEF(32-bits) into a) BCD (64-bits)   b) Gray (32-bits) Problem...