Øvelse+9+-+CPU+datapath

=Øvelse 9:= Brug af ProcSim til at forstå CPU datapath.

Opgave 1:
Kiggede på allerede lavet assembly kode til ALU. add'er, sub'er og and'er.

Opgave 2:
Load/store. Brugt kommandoen sw til at gemme i en offset addresse (vores tilfælde +4) code format="asm" .register $s0 4    #addr .register $s2 10   #number val
 * 1) init registers

main:   sw $s2, 4($s0)    #gemmer i ny addresse offset 4 + s0 exit:
 * 1) main

code

Opgave 3:
Branching. Brugt kommandoen branch til at hoppe if equal (vores tilfælde når et register når 5) code format="asm" .register $s0 0 #number val .register $s1 5 #max number .register $s2 1 #inc number
 * 1) init registers

main:  add $s0, $s0, $s2     #inc number val beq $s0, $s1, exit   #checks if max reached beq $s0, $s0, main   #loop if not branched
 * 1) main

exit:

code

Opgave 4:
Jumping. Brugt kommandoen j til at springe en kommando over (vores tilfælde en add'ing på 2) code format="asm" .register $s0 0 #4 variabler .register $s1 1 .register $s2 2 .register $s3 3

main:  add $s0, $s0, $s1 j jump          # jumping to jump label add $s0, $s0, $s2 jump:  add $s0, $s0, $s3

exit:

code