**LAB4** **Answer 1** ```assembly= .data array: .word 1,2,3,4,5,6,7,8,9,10,11 .text addi x1,x0,3 # intialise s to 3 addi x2,x0,10 # initialise i to 10 la x3,array #loading address of x10 into x3 addi x3,x3,36 addi x4,x0,-1 loop: lw x5,0(x3) add x5,x5,x1 sw x5,0(x3) addi x2,x2,-1 addi x3,x3,-4 bge x2,x4,loop ``` --- **Answer 2** ``` assembly= .data array: .word 1,2,3,3,5,6,7,8,9,10,11 .text la x1,array addi x2,x0,11 addi x3,x0,0 addi x7,x0,1 addi x8,x0,0 addi x9,x0,0 addi x10,x0,3 loop: lw x4,0(x1) andi x5,x4,1 beq x5,x0,notodd addi x3,x3,1 addi x9,x9,1 addi x1,x1,4 bge x3,x10,fi bgt x9,x2,exit ble x9,x2,loop notodd: add x3,x0,x0 addi x9,x9,1 addi x1,x1,4 bgt x9,x2,exit j loop fi: addi x8,x0,1 exit: addi x11,x0,1 ``` --- **Answer 3** ```assembly= .data a: .word 1,2,3,4,5,6 s1: .string "There is no pair such" s2: .string "Exited" .text la x1 a la x2 a la x11 a addi x3 x0 6 addi x4 x0 6 addi x14 x0 4 addi x5 x0 0 addi x6 x0 1 psum: lw x7 0(x1) lw x8 4(x2) add x10 x7 x8 addi x2 x2 4 addi x6 x6 1 beq x10 x3 print beq x6 x4 sum sum: addi x1 x1 4 la x2 a addi x5 x5 1 beq x5 x4 print2 bne x5 x4 psum print: sub x13 x2 x11 div x13 x13 x14 add a0 x13 x0 li a7 1 ecall li a7 4 ecall sub x13 x1 x11 div x13 x13 x14 add a0 x13 x0 li a7 1 ecall j exit print2: la a0 s1 li a7 4 ecall exit: la a0 s2 li a7 4     ecall ``` ---