I will be going over these in class on Oct 30th.
For question D. Here is a mod.s that is runnable in venus.
It replaces mod with a software routine that mimics it.
.globl main
.data
a: .string "happy"
b: .string "times"
init: .string "XXXXX" # 12 Xs
.text
# C : Cipher(char* str).
cipher:
addi s3,zero,25
loop_header:
lbu s2, 0(a0) # Read character ch
beqz s2, end
addi s7,a0,0
addi a0,a0,1
loop:
addi s1, s2, -97 #
bltu s3,s1,loop_header
addi s2,s2,13
lui s4, 322639
addi s4, s4, -945
mulhu s4, s2, s4
srli s4, s4, 3
addi s5, zero, 26
mul s4, s4, s5
sub s2, s2, s4
addi s2,s2,97
sb s2, 0(a1)
addi a1,a1,1
jal loop_header
end:
ret
main:
la a0, a
la a1,init
jal cipher
li a0,10
ecall%