bigloop:
li $s0, 0
stripNonAlpha:
lb $t5, ($a0)
beqz $t5, contt
add $t4, $s0, $a0 #address of input[i] in $t4
lb $t5, 0($t4) #load value of input[i]
addi $s0, $s0, 1 #i = i + 1
slti $t1, $t5, 48 #if ascii code is less than 48
bne $t1, $zero, strip #remove ascii character
slti $t1, $t5, 58 #if ascii code is greater than 57
slti $t2, $t5, 65 #if ascii code is less than 65
slt $t3, $t1, $t2
bne $t3, $zero, strip #remove ascii character
slti $t1, $t5, 91 #if ascii code is greater than 90
slti $t2, $t5, 97 #if ascii code is less than 97
slt $t3, $t1, $t2
bne $t3, $zero, strip #remove ascii character
slti $t1, $t5, 123 #if ascii char is greater than 122
beq $t1, $zero, strip #remove ascii character
j stripNonAlpha #go to stripNonAlpha
strip:
add $t5, $s0, $a0 #address of Buffer[i] in $t5
add $t5, $t5, 32
sb $zero, 0($a0) #Buffer[i] = 0
addi $s0, $s0, 1 #i = i + 1
j stripNonAlpha #go to stripNonAlpha
j bigloop
contt:
У меня есть такой случай с этим фрагментом кода MIPS, который проверяет любой не алфавитно-цифровой символ, когда я печатаю ниже того, что пишу в консоль, он добавляет дополнительные 32 значения ASCII.Например, вместо пробела (32) он печатает @ (64) или вместо!(33), он печатает заглавную A (65).Я не мог видеть, в чем может быть причина?Заранее спасибо.