我有这段代码,它遍历一个包含 5000 个 ASCII 字符值的数组,然后计算每个字符的数量并按字母顺序将其存储到一个数组中。
.text
la $s7,results
array1 是 5000 个 ASCII 字符的数组
la $s6,array1
main:
addi $s0,$zero, 5000
addi $s3, $zero,96
addi $s4, $zero,65
loop:lw $s2,0($s6)
addi,$t1,$zero,0
addi $s6,$s6,4
addi, $s5,$zero, 0
addi $s0,$s0, -1
bge $s2, $s3, convert
$s2, - $s4($s4 is @) 的减法是得到需要存储计数的位置 ex F - @ = 6
sub $s5, $s2, $s4
我想知道这是否适合它到达正确的位置并增加计数?
addi $t1, $t1, 1
loop2: addi $s7, $s7, 4
lw $t0,($s7)
add $t0, $t0, $t1
sw $t0,($s7)
addi, $s5,$s5, -1
beq $s5, $zero, loop2
bne $s0,$zero, loop
这会将字符转换为大写的 ASCII 值。
convert: subi $s2,$s2, 32
addi $s5, $s5, 0
sub $s5, $s2, $s4
j loop2
.data
results: .space 128 # Words to be used to store results