Using ARM Assembly Language (ARM Cortex-M MicroController) Consider a 9-story bu
ID: 3752673 • Letter: U
Question
Using ARM Assembly Language (ARM Cortex-M MicroController)
Consider a 9-story building with a basement. The first floor is given the number 1, the second is given the number 2 and so on. The basement is given the number 0. You will write a program to simulate an elevator operated throughout the whole building. Write the following subroutines that will work with the main program,
a) DELAY: generates a software delay of 1 second.
b) OPEN: displays a ‘Door open’ message on the screen after a delay of 1 second. A working version of this code is supplied for your use, if you like on the “Software Downloads” page from the Lab page
c) CLOSE: displays a ‘Door close’ message on the screen after a delay of 1 second.
d) UP: performs the following procedure: i. Displays a ‘Going UP’ message on the screen. ii. Goes up one floor at a time (1 second delay between each floor), until the elevator reaches the destination. iii. At each floor, prints that number (current floor number) on the screen. iv. After the elevator reaches the destination floor, stores this number as the current floor number in memory.
e) DOWN: performs the following procedure: i. Displays a ‘Going DOWN’ message on the screen. ii. Goes down one floor at a time (1 second delay between each floor), until the elevator reaches the destination. iii. At each floor, prints that number (current floor number) on the screen. iv. After the elevator reaches the destination floor, stores this number as the current floor number in memory.
f) STAY: displays a ‘Same floor’ message on the screen after a delay of 1 second.
Following is the pseudo code you can use for your main program,
1. Initialize the elevator at floor #1 (memory location containing the present location of the elevator).
2. Call the ‘OPEN’ subroutine.
3. Wait for the input from the user (0-9).
4. Call the ‘CLOSE’ subroutine.
5. Compare the number input with the present floor number.
6. If the number input is greater than the present floor number, call the ‘UP’ subroutine. Then jump to step 9.
7. If the number input is less than the present floor number, call the ‘DOWN’ subroutine. Then jump to step 9.
8. If the number input is equal to the present floor number, call the ‘STAY’ subroutine
9. Jump back to step 2.
Explanation / Answer
ARM ASSEMBLY LANGUAGE:-
An assembler translates a file containing
assembly language code into the corresponding machine language.
But ARM processors support an entirely different machine language.the design of the machine langauge encoding is called the instruction set architecture
int total;
int i;
total=0;
for (i=10; i>0; i--)
{
total +=i;
}
mov R0, 0
mov R1, 10
again ADD R0,R0,R1
SUBS R1,R1
BNE again
halt B balt
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.