MIPS中的数组字符串 - 循环问题

时间:2014-08-10 14:36:24

标签: arrays string mips

我正在编写一个代码来显示包含许多字符串的数组。因此我用了一个循环。但是我的计数器没有正常工作,我收到一条错误消息和一个数组的第一个元素(字符串)。请问有人帮帮我吗?

'# $s0=count, $s1=total, $s3=data $s7=index

.data

Mssg1:.asciiz" Hello \ n"

第1行:.asciiz" aab \ n"

第2行:.asciiz" ggdhj \ n"

第3行:.asciiz" uio \ n"

数组:.word Line1,Line2,Line3

.globl main
.text

主:     li $ s1,0#total = 0     li $ s0,3#count = 3     la $ s7,array #index

li $v0, 4       # print_str "Hello"
la $a0, Mssg1       
syscall

L1:     lw $ s3,0($ s7)#data = sum [index]

add $s1, $s1, $s3   # total=total+data

addi $s7, $s7, 4    # increment
addi $s0, $s0, -1   # decrement

bne $s0, $0, l1     # if not equal 0 go back onto the loop 


add $t0, $0, $s0    # t0=s0

li $v0, 4
move $a0, $t0
lw $a0, array       # print_str 
syscall'

1 个答案:

答案 0 :(得分:0)

$ t1的值在循环中不会改变,因此$ t7会增加并且您获得不存在的数组索引:

lw $t2,0($t7)    # data=array[index]