| 156 | | |
| | 177 | {{{ |
| | 178 | .data |
| | 179 | A: .word 19 |
| | 180 | .word 75 |
| | 181 | .word 10 |
| | 182 | .word 15 |
| | 183 | S: .word 0 |
| | 184 | .text |
| | 185 | main: or $8, $0, $0 # 和を 0 に初期化 |
| | 186 | la $9, A # Aのアドレスを $9 に入れる。実際は ori 命令に置き換わる。 |
| | 187 | |
| | 188 | lw $10, 0($9) |
| | 189 | add $8, $8, $10 |
| | 190 | |
| | 191 | lw $10, 4($9) |
| | 192 | add $8, $8, $10 |
| | 193 | |
| | 194 | lw $10, 8($9) |
| | 195 | add $8, $8, $10 |
| | 196 | |
| | 197 | lw $10, 12($9) |
| | 198 | add $8, $8, $10 |
| | 199 | |
| | 200 | sw $8, S |
| | 201 | exit: j exit |
| | 202 | }}} |
| | 203 | |
| | 204 | また、上のプログラムは下のように書き直すこともできます。 |
| | 205 | この形は各データに対する処理が全く同じ命令列になるため、 |
| | 206 | 後で述べるループを用いて和を求める場合に適しています。 |
| | 207 | |
| | 208 | {{{ |
| | 209 | .data |
| | 210 | A: .word 19 |
| | 211 | .word 75 |
| | 212 | .word 10 |
| | 213 | .word 15 |
| | 214 | S: .word 0 |
| | 215 | .text |
| | 216 | main: or $8, $0, $0 # 和を 0 に初期化 |
| | 217 | la $9, A # Aのアドレスを $9 に入れる。実際は ori 命令に置き換わる。 |
| | 218 | |
| | 219 | lw $10, 0($9) |
| | 220 | add $8, $8, $10 |
| | 221 | addi $9, $9, 4 # アドレスを次へすすめる |
| | 222 | |
| | 223 | lw $10, 0($9) |
| | 224 | add $8, $8, $10 |
| | 225 | addi $9, $9, 4 |
| | 226 | |
| | 227 | lw $10, 0($9) |
| | 228 | add $8, $8, $10 |
| | 229 | addi $9, $9, 4 |
| | 230 | |
| | 231 | lw $10, 0($9) |
| | 232 | add $8, $8, $10 |
| | 233 | |
| | 234 | sw $8, S |
| | 235 | exit: j exit |
| | 236 | }}} |