Create a new project: Lab5b. Copy the appropriate files over from the provided
zip file. Starting with provided calculate.s, modify it to add or subtract the
numbers that are stored in the memory and store the sum in memory (i.e. your
program should read numbers from the memory, apply mathematical operation to
the numbers accordingly and save the result in the memory). Put the operand
values given into the .rodata section of your program. Execute the programs and
record the sum or subtraction and the 'C' (carry) and 'Z' (zero) bits of the
condition code register. Use the following data:
a. Addition of two single-byte numbers:
0xC3 + 0x8D
Helpful steps:
1) Use LDRB to read a byte of data from memory into a register.
How does an instruction refer to memory location? How do you
initialize memory? Hint: Look at Lab5a, above.
2) Use ADD to add numbers in registers.
ab 5 Rev. 3
-7-
Advanced Assembly, Branching, and Monitor Utilities
3) Use STRH or STR in order to save the result from a register to
memory-why shouldn't you use STRB in this case?
0xF5-0x34
0xFE6B34-0x58CF21
0x2E68B3F4 +0x5C2A
b. Subtraction of two single-byte numbers:
c. Three-byte subtraction:
d. Multi-byte addition:
Fig: 1