Я получаю пару ошибок при запуске моей программы.
- исключение произошло в P C
- Неверный адрес в чтении данных / стека:
- Ссылка на инструкцию содержит неопределенный символ
- Исключение 7 (Плохо адрес данных) произошел и проигнорирован
Программа
#prog2
#Mips prog to print string that will be reversed with using stack
#and using a counter to count amount of characters in given string
.data
str: .asciiz "String to be reversed : \n"
msg: .asciiz "Education is the most powerful weapon for which you can change the world -nelson mandela"
ans: .asciiz "The string reversed is : "
count: .asciiz "\n\nThe number of characters in a given string is= "
.text
.globl main
main:
печать строки
la $a0, str
li $v0, 4
syscall
печать строки
la $a0, msg
li $v0, 4
syscall
загрузить строка, подлежащая обращению
la $t0, msg
загрузить char из msg, если нулевой конец цикла уменьшает указатель стека, хранит t0 в стек, получает следующий символ
loop:
lb $t0, 0 ($t0)
beqz $t0, stringEnd
addi $sp, $sp -1
sb $t0, 0 ($sp)
addi $t1, $t1, 1
j loop
stringEnd:
la $t1, msg1
storeLoop:
lb $t0, 0($t0)
beqz $t0, end
lb $t4, 0($sp)
sb $t4, 0 ($t0)
addi $t1, $t1, 1
addi $sp, $sp, 1
j storeLoop
end:
countloop:
lb $t2, 0($t1)
beqz $t2, countend
addi $t0, $t0, 1
addi $t1, $t1, 1
j countloop
countend:
la $a0, count
li $v0, 4
syscall
la $a0, ans
li $v0, 4
syscall
move $a0, $t4
li $v0, 4
syscall
li $v0, 10
syscall