00001100000000000000000000000010 =0C000002 main: jal arith_test ; logic/shift test 00001000000000000000000000000001 =08000001 end: j end ; effectively halt machine 00110100000000100000000000000001 =34020001 arith_test: ori $2, $0, 1 ; loop counter = 2 in r2 00111100000111010001000000000000 =3C1D1000 lui $29, 1000h ; point to data segment 00110111101111010000000001100000 =37BD0060 ori $29, $29, 60h ; point to A 10001111101001010000000000000000 =8FA50000 a_loop: lw $5, 0($29) ; load A 10001111101001100000000000001000 =8FA60008 lw $6, 8($29) ; load B 00000000110001010010100000100000 =00C52820 add $5, $6, $5 ; A+B 10001111101001110000000000010000 =8FA70010 lw $7, 16($29) ; load C 00000000101001110010100000100010 =00A72822 sub $5, $5, $7 ; A+B-C 10101111101001010000000000011000 =AFA50018 sw $5, 24($29) ; store result at D 00000011101001100010100000100101 =03A62825 or $5, $29, $6 ; test logical OR 00000000101001110010100000100100 =00A72824 and $5, $5, $7 ; test logical AND 00000000101111010010000000101010 =00BD202A slt $4, $5, $29 ; test slt 10101111101001010000000000100000 =AFA50020 sw $5, 32($29) ; store logical result at E 00100000010000101111111111111111 =2042FFFF addi $2, $2, -1 ; loop counter 00101000010101000000000000000000 =28540000 slti $20, $2, 0 ; check loop counter 00100011101111010000000000000100 =23BD0004 addi $29, $29, 4 ; next data elements 00010010100000001111111111110010 =1280FFF2 beq $20, $0, a_loop ; branch 00000011111000000000000000001000 =03E00008 jr $31 ; return 00000000000000000000000000000000 THIS IS ADDRESS XXXX0050H 00000000000000000000000000000000 FILL WITH 16 bytes of 0's TO DATA ADDRESS XXXX0060H 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000101 =00000005 A: dd 5, -65 11111111111111111111111110111111 =FFFFFFBF 11111111111111111111111111011110 =FFFFFFDE B: dd -34, 3 00000000000000000000000000000011 =00000003 00000000000000000000000000000011 =00000003 C: dd 3, -70 11111111111111111111111110111010 =FFFFFFBA 00000000000000000000000000000000 =00000000 D: dd 0, 0 00000000000000000000000000000000 =00000000 00000000000000000000000000000000 =00000000 E: dd 0, 0 00000000000000000000000000000000 =00000000