######################################################################## ##### Folgender High-Level Code wird in Assembler umgesetzt: ##### ##### int sum = 0; ##### ##### for (i = 1; i < 101; i = i*2) ##### ##### sum = sum + i; ##### ######################################################################## ##### addiert die Vielfachen von 2 von 1 bis 100, zeigt die ##### ##### Verwendung der 'set less than' Anweisung slt ##### ######################################################################## addi $s1, $zero, 0 # Initialisierung der Summe sum in $s1 mit 0 addi $s0, $zero, 1 # Initialisierung des Zaehlers i in $s0 mit 1 addi $t0, $0, 101 # Obergrenze 101 loop: slt $t1, $s0, $t0 # if (i<101) $t1 = 1, else $t1 = 0 beq $t1, $zero, done # if $t1 == 0 (i >=101), spring zur Marke done add $s1, $s1, $s0 # sum = sum + i sll $s0, $s0, 1 # i = i * 2 j loop # Sprung zu loop done: li $v0, 10 # Der Wert 10 fuer den syscall bedeutet: syscall # terminate execution ########################################################################## # Dieses Beispiel fuer eine Schleife, die slt nutzt, entstammt dem Buch: # # Harris & Harris: Digital Design and Computer Architecture, Kap. 6 # ##########################################################################