70 likes | 140 Vues
OutLine of Tutorial 5. Summary of Load/Store instructions Exercises reading memory in Simulator Exercises writing code. Summary of Load/Store instructions. Format Opcode regA, displacement(regB) displacement is less than 16 bit vitual memory = displacement + value of regB.
E N D
OutLine of Tutorial 5 • Summary of Load/Store instructions • Exercises reading memory in Simulator • Exercises writing code
Summary of Load/Store instructions • Format • Opcode regA, displacement(regB) • displacement is less than 16 bit • vitual memory = displacement + value of regB
Summary of Load/Store instructions • Load instructions in Simulator • ldbu: • filling remaining bytes in register with 0 • ldwu: • filling remaining bytes in register with 0 • Memory address has to be multiple of 2 • ldl • filling remaining bytes in register with signed bit • Memory address has to be multiple of 4 • ldq • Memory address has to be multiple of 8 • lda • Load the memory address rather than the value
Summary of Load/Store instructions • Store instruction in Simulator • stb: • stw: • Memory address has to be multiple of 2 • stl • Memory address has to be multiple of 4 • stq • Memory address has to be multiple of 8
Get answer of following exercises using Simulator Following code is in example 5 data{ align quad; value0: asciiz "ab"; value1: byte 0x12; value2: long 0x3456; value3: quad 0x87654321; } Show the contents of memory and the labels With above memory allocated, indicate how the contents of registers are changed by following instructions, and which instructions can’t be executed ldiq $t0, value0; ldq $t1, ($t0); ldwu $t2, 4($t0); lda $t3, 3($t0); ldbu $t2, ($t3); ldl $t3, 8($t0); ldl $t4, 6($t0); ldq $t5, 4($t0);
Exercises reading memory in Simulator Continue with above exercise, indicate how the contents of registers are changed by following instructions, and which instructions can’t be executed stq $t1, ($t0); stb $t2, 1($t0); stw $t3, 2($t0); stl $t3, 8($t0); ldiq $t0, value2; stq $t3, ($t0); stl $t3, 2($t0);
Fill in code in example 6 Write code to load value0,value1,value2,value3 to register t1,t2,t3,t4 Write code to store values in register t1,t2,t3,t4 in memory label value0,value1,value2,value3