【发布时间】:2021-06-10 09:24:58
【问题描述】:
我是 MIPS 的新手,我试图弄清楚如何在没有 lb/sb 和偏移量的情况下操作字符串中的单个字符。我已经知道如何通过加载字符串的地址并通过增加偏移量来循环执行此操作,但是如果我只有一个字符寄存器怎么办?假设我有一个包含几个字符的寄存器。我怎样才能访问每个字符并将其设为大写。我知道我必须将字符减去 32 才能使其大写,但是我在遍历字符时遇到了麻烦。如果我转移,我最终不会失去角色吗?像这样:
add $t0, $t0, 1
subi $t0, $t0, 32
add $t0, $t0, 1
等等。遍历每个字符的正确方法是什么?
【问题讨论】:
-
如果你事先知道每个单词都有英文字符(每个字节要么大写要么小写ASCII码)或空值,你可以
andi和0xDFDFDFDF使每个小写字母都大写。只需查看 ASCII 表即可了解模式。