.data
message: .asciiz "Hello World"
.text
main:
li $t0, 0 # initialize loop-counter
la $a0, message #load the address of the 1st byte
loop:
lb $t1, ($a0) # load the content of the address stored in $a0
beq $t1, $zero, exit # branch if equal
# exit the program if $t0 == null
addi $t0, $t0, 1 # increment the loop counter
addi $a0, $a0, 1 # go to next byte
j loop
exit:
move $a0, $t0 # prepare to print the integer
li $v0, 1 # integer syscall
syscall
li $v0, 10
syscall
Видимо, эта программа работает хорошо.
У меня есть два вопроса на этот счет:
- Есть ли в этой программе что-то, что я пропускаю или на что мне следует обратить особое внимание?
- Что если я использую
$v0
вместо $t1
? Какая разница?