54 lines
845 B
ArmAsm
54 lines
845 B
ArmAsm
# 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 |