assembly language

profileKalthabahi

Homework #1

 

1) Task

Write a set of assembly codes in uVision that performs the function described below.

a)     Begin with the assumption that 10 randomly selected integer numbers (data) are stored at 0x20002000 to 0x20002024 in sequence in the memory region.

b)    The execution of the codes finds the smallest number of these data and store it at 0x20002000. The original number at 0x20002000 is placed somewhere else if it is not the smallest.  

c)     The algorithm of the program should be general enough to apply to the selection of any integer numbers in any order, and to any number of data.

d)    This homework is a coding exercise. You don't need Discovery kit for the work.

 

2) Hints

a)     Remember that assembly language (and computer for that matter) can compare only two (2) numbers at a time. Also note that any comparison of data can be done only with registers, not with (SRAM) memory. (No direct transfer, no direct comparison with memory.)

b)    First, compare the data at 0x20002000 with the one at 0x20002004. Swap their position if the data at 0x20002000 is bigger. Then compare the data at 0x20002000 again with the one at 20002008, and swap if necessary. Use CMP and conditional branch instructions when necessary.

c)     The process repeats itself until the last number at 0x20002024 is compared and swapped if necessary.

d)    In order to maintain generality, use indirect addressing and conditional branching. This is why a flow chart becomes important.

 

3) Deliverables and due date

a)     Submit your flow chart of the program. You may do the drawing either by using Microsoft Word, or do hand-drawing and scan.

b)    Submit .lst file, not .s file.

c)     Clearly label your works with the class section number and your name.

d)    The homework is due by 11:59pm October 17th, 2015.

    • 8 years ago
    • 20
    Answer(0)
    Bids(0)