CPAC+Øvelse+9

=CPU Datapath & Control=

Load / Store
code format="asm" .register $s1 1 # addr .register $s3 42 # value sw $s3, 1($s1)  # gem værdien i $3 på ram plads $s1 + 1 dvs på plads 2 lw $s2, 1($s1)  # hent værdien på ram plads $s1 +1 (plads 2) og gem den i register $s2 exit: code

Branching
Dette program vil skiftes vis skrive 0 og 1 til register $s1 i en uendelig loop. code format="asm" .register $s1 1 .register $s2 1 main: beq $s1, $s2, true # hvis $s1 == $s2 gå til true add $s1, $s1, $s2       # $s1 = $s1 + $s2 j main                  # gå til main true: sub $s1, $s1, $s2 # $s1 = $s1 - $s2 j main                  # gå til main exit: code

Jump
Dette program vil springe de to subtraktioner over og gå til additionen (3. instruktion). code format="asm" .register $s1 1 .register $s2 1 j foo                  # gå til foo sub $s1, $s1, $s2      # $s1 = $s1 - $s2 sub $s1, $s1, $s2      # $s1 = $s1 - $s2 foo: add $s1, $s1, $s2 # $s1 = $s1 + $s2 exit: code