MIPS中的字母条件

MIPS中的字母条件,mips,conditional-statements,Mips,Conditional Statements,我应该写什么作为比较我从键盘上写的东西和K的条件? 当我按下字母K时,我希望我的代码继续。 这是我的密码 K1:li $v0, 4 la $a0, gram #message to get the letter syscall li $v0,5 syscall move $t4,$v0 bne $t4,48h,K1 'K'的Ascii码是4B,因此您应该将存储输入字节的寄存器与4Bh进行比较,如果相等,

我应该写什么作为比较我从键盘上写的东西和K的条件? 当我按下字母K时,我希望我的代码继续。 这是我的密码

   K1:li $v0, 4          
   la $a0, gram  #message to get the letter     
   syscall  
   li $v0,5
   syscall
   move $t4,$v0   

   bne $t4,48h,K1   

'K'
的Ascii码是4B,因此您应该将存储输入字节的寄存器与4Bh进行比较,如果相等,则继续

因此,假设寄存器
$t4
具有输入字节的输入代码,您的条件应为:

bne $t4,4Bh,K1

也可以考虑在发布一些特定于架构的代码/语言时提供一些线和函数的附加信息。

< p>你应该把字母k装入登记器中进行比较。< /P> MIPS程序集支持字符文字,因此您可以执行以下操作:

li $t5 'k'
bne $t4 $t5 K1

语法错误意味着编译器不理解您想说的话,这意味着您使用了一些无效的语法。与逻辑无关。检查函数的编译器语法。可能
cmp$t4,4bh
bne K1
cmp$t4,4bh
会将寄存器
$t4
中的值与
4b
十六进制值进行比较。如果等于零,则设置PSW标志,并且
bne K1
将检查该标志。如果未设置(不相等),它将分支到K1,如果设置(相等),它将继续。我不知道它的语法是否正确,你必须检查一下。你使用什么编译器,目标处理器是什么?我应该把它们写在不同的行中?是的,每条指令都写在不同的行中。这个答案似乎不是mips汇编。我想出来了。我用系统调用12替换了系统调用5,即读取字符,然后比较它们。K1:li$v0,4La$a0,gram系统调用li$v0,12系统调用移动$t4,$v0 bne$t4,75,K1与Dec进行比较,因为“K”是75。