我正在尝试打开一个包含联系人列表的文件,当我验证是否具有正确的格式(名称','数字)时,我使用bgt和blt指令来查看字符是否更大比z还是低于a,所以拒绝了。但是当我这样做时,我的blt指令不起作用。当它执行的跳转执行标签时,如果在我有一个值大于blt的beq之前,他会跳转到。
Maiuscula:
lb $t0,0($a0) #carrega a0 em t0
#slt $t1, $zero,$t0 #carater de t0 com zero
beq $t0,$zero,END
nop #se t1=0 entao, t0 tem o carater nulo, logo END
li $t3,0x41 # A maiusculo em ascii
li $t4,0x5a # Z maiusculo em ascii
slt $t5,$t0,$t4
bgt $t0,$t4,Erro #tinha bgt
nop
blt $t0,$t3,zero #here is the error
nop
j minuscula
nop
答案 0 :(得分:0)
删除行slt $t5,$t0,$t4
,因为您正在使用已经使用bgt
+ blt
完成任务的伪指令slt
/ bne
。
除此之外,您的代码将:
所以那里似乎有一些逻辑错误......
例如,您应该使用bge
代替bgt
和ble
代替blt
,否则您将无法正确检查“A”和“Z”。 / p>
除此之外,我猜逻辑并没有按照你的意思去做......