Initial
This commit is contained in:
@@ -0,0 +1,54 @@
|
|||||||
|
# COS235 - HW2
|
||||||
|
# Nicholas Pease
|
||||||
|
# 1 OCT 2024
|
||||||
|
|
||||||
|
.data
|
||||||
|
inputUInt: .space 32
|
||||||
|
|
||||||
|
.text
|
||||||
|
main:
|
||||||
|
li a7, 5 # input unsigned int
|
||||||
|
la a0, inputUInt
|
||||||
|
ecall
|
||||||
|
|
||||||
|
mv s2, a0
|
||||||
|
|
||||||
|
li a7, 1 # display input int
|
||||||
|
ecall
|
||||||
|
|
||||||
|
li a7, 11
|
||||||
|
li a0, 0x0a
|
||||||
|
ecall # newline
|
||||||
|
|
||||||
|
li s3, 2
|
||||||
|
li s4, 0
|
||||||
|
li s5, 3
|
||||||
|
li s6, 1
|
||||||
|
whileLoop:
|
||||||
|
ble s2, s6, endLoop # end loop if less than 1
|
||||||
|
remu t3,s2,s3 # t3 = t4(int) % 2 remainder
|
||||||
|
|
||||||
|
bne t3, s4, odd
|
||||||
|
|
||||||
|
even:
|
||||||
|
srl s2, s2,s6
|
||||||
|
#divu s2, s2, s3
|
||||||
|
j end
|
||||||
|
|
||||||
|
odd:
|
||||||
|
mul s2, s2, s5
|
||||||
|
add s2, s2, s6
|
||||||
|
|
||||||
|
end:
|
||||||
|
li a7, 1
|
||||||
|
mv a0, s2
|
||||||
|
ecall
|
||||||
|
li a7, 11
|
||||||
|
li a0, 0x0a
|
||||||
|
ecall
|
||||||
|
|
||||||
|
j whileLoop
|
||||||
|
|
||||||
|
endLoop:
|
||||||
|
li a7, 10
|
||||||
|
ecall
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
# COS035 - HW3
|
||||||
|
# Nicholas Pease
|
||||||
|
# 31 OCT 2024
|
||||||
|
.data:
|
||||||
|
inputUInt: .space 32
|
||||||
|
|
||||||
|
.text:
|
||||||
|
main:
|
||||||
|
li a7, 5 # input unsigned int
|
||||||
|
la a0, inputUInt
|
||||||
|
ecall
|
||||||
|
|
||||||
|
mv t0, a0
|
||||||
|
jal hotpo_i # hotpo_i (non recursive)
|
||||||
|
|
||||||
|
li a7, 11
|
||||||
|
li a0, 0x0a
|
||||||
|
ecall # Newline
|
||||||
|
|
||||||
|
li a7, 10
|
||||||
|
ecall # Exit program
|
||||||
|
|
||||||
|
# Collaz Conjecture (Iterative)
|
||||||
|
# t0: input int
|
||||||
|
# t1: 2 (divide by 2)
|
||||||
|
# t2: 0 (const) (compare if even [n / 2] remainder)
|
||||||
|
# t3: 3 (const) (odd multiply)
|
||||||
|
# t4: 1 (const) (odd add)
|
||||||
|
hotpo_i:
|
||||||
|
mv a0, t0
|
||||||
|
li a7, 1
|
||||||
|
ecall # Display input int
|
||||||
|
|
||||||
|
li a7, 11
|
||||||
|
li a0, 0x0a
|
||||||
|
ecall # Newline
|
||||||
|
|
||||||
|
li t1, 2
|
||||||
|
li t2, 0
|
||||||
|
li t3, 3
|
||||||
|
li t4, 1
|
||||||
|
hotpoi_whileLoop:
|
||||||
|
ble t0, t4, hotpoi_endLoop # end loop if less than 1
|
||||||
|
remu t5,t0,t1 # t5 = t0(int) % 2 remainder
|
||||||
|
|
||||||
|
bne t5, t2, hotpoi_odd
|
||||||
|
|
||||||
|
hotpoi_even:
|
||||||
|
srl t0, t0,t4
|
||||||
|
#divu t0, t0, t1
|
||||||
|
j hotpoi_end
|
||||||
|
|
||||||
|
hotpoi_odd:
|
||||||
|
mul t0, t0, t3
|
||||||
|
add t0, t0, t4
|
||||||
|
|
||||||
|
hotpoi_end:
|
||||||
|
li a7, 1
|
||||||
|
mv a0, t0
|
||||||
|
ecall
|
||||||
|
li a7, 11
|
||||||
|
li a0, 0x0a
|
||||||
|
ecall
|
||||||
|
|
||||||
|
j hotpoi_whileLoop
|
||||||
|
|
||||||
|
hotpoi_endLoop:
|
||||||
|
ret
|
||||||
Reference in New Issue
Block a user