The task is to write an assembly program to search the data stored in the memory locations starting

Even the smartest students need writing assistance at some point during their academic career. Should you lock yourself in a room and spend the entire weekend trying to write a paper? We promise you that the paper that you pay for won’t be resold or submitted elsewhere. It will also be written according to the instructions that you and your professor provide. Our excellent essays stand out among the rest for a reason. Don’t just take our word, check them out by yourself.


Order a Similar Paper Order a Different Paper

The task is to write an assembly program to search the data stored in the memory locations starting from 0x20001000 to 0x2000101C (total 8 data) for the smallest number and store it to the memory location 0x20002000. An equivalent C program would look like,

 

//This C program is only to demonstrate the flow of the homework.

int32_t            i, temp=0, data[8];       //temp is equivalent to R0 register.

for (i=7; i>=0; i–)       {if (temp>data[i]) temp=data[i];}       //compare and keep the smaller one.

 

1.     Assume that the data are stored in the memory at the beginning. Do not assign any specific values to them.  The program should be general enough to work with any data in the memory in any order.

2.     Note that a memory address increments by 4, not by 1.

3.     Use the for-loop style iteration to scan all memory data in the range.

4.     Use R0 to store the smallest number.

5.     Use R1 to count the number of iteration.

 

Deliverables

vCreate a .s file in uVision and build the target. Debug your program until you get 0 error.

vWrite the class and section number, your name and Homework number at the very top in comments.

vThen submit your .s file to BBlearner. You can change your submission up to 5 times.

vDue time is the midnight of February 28 (Sun).

 

Hint

Use the post-offset indirect addressing to fetch data in the memory.

baseaddr                      equ      0x20001000

index_increment          equ      4

            . .

            ldr       r2, =baseaddr

            ldr       r4, [r2], #index_increment      ;fetch the data and increment r2 address

            cmp     r0, r4               ;compare r0 and r4

            blt        move_on          ;if r0 is less than r4, move on. If not, replace 

            mov     r0, r4

move_on

            sub       r1, r1, #1                     ;decrement the counter by one.

            . .

 

 

End

    • Posted: 4 years ago
    • Due: 23/02/2016
    • Budget: $15
    Writerbay.net

    Do you need help with this or a different assignment? In a world where academic success does not come without efforts, we do our best to provide the most proficient and capable essay writing service. After all, impressing professors shouldn’t be hard, we make that possible. If you decide to make your order on our website, you will get 15 % off your first order. You only need to indicate the discount code GET15.


    Order a Similar Paper Order a Different Paper