Source Code

.text

main:
    li     $4,3      # loop = 3
    li     $5,0      # sum = 0
    li     $3,0      # v = 0;
LE: addi   $3,$3,5   # v = v + 5
    add    $5,$5,$3  # sum += v;
    beq    $4,$0,end # if loop==0 break
    addi   $4,$4,-1  # loop--
    b      LE
    add    $0,$0,$0  # nop (until implemented)

end:
    b      end       # wait here once the program has completed
.end

Simulation Results

#pcoprdqd (hex)qd (dec)addr
100ori400033
201ori500000
302ori300000
403addi300055
504add500055
605beq000033
706addi400022
807bgez000000
903addi3000A10
1004add5000F15
1105beq000022
1206addi400011
1307bgez000000
1403addi3000F15
1504add5001E30
1605beq000011
1706addi400000
1807bgez000000
1903addi3001420
2004add5003250
2105beq000000
2208halt

Registers

formatr0r1r2r3r4r5r6r7
hex0000000000000001000000020000001400000000000000320000000600000007
decimal0122005067
formatr8r9r10r11r12r13r14r15
hex00000008000000090000000A0000000B0000000C0000000D0000000E0000000F
decimal89101112131415
formatr16r17r18r19r20r21r22r23
hex0000001000000011000000120000001300000014000000150000001600000017
decimal1617181920212223
formatr24r25r26r27r28r29r30r31
hex00000018000000190000001A0000001B0000001C0000001D0000001E0000001F
decimal2425262728293031

Data Memory

addr0123456789ABCDEF
000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
000000100000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000