Show how the following MIPS program would be loaded into
memory and executed.
# MIPS assembly code
addi $sp, $sp, ?4
sw $ra, 0($sp)
lw $a0, x
lw $a1, y
lw $ra, 0($sp)
addi $sp, $sp, 4
sub $v0, $a0, $a1
Please assume that the main function starts at memory address 0x0040000, the address of
variable x is 0x10000000, and the address of variable y is 0x10000004.
5.A.) First show the instruction address next to each assembly instruction.
5.B.) Draw the symbol table showing the labels and their addresses.
5.C.) Convert all instructions into machine code.
5.D.) How big (how many bytes) are the data and text segments?
5.E.) Sketch a memory map showing where data and instructions are stored.