整数が偶数か奇数かを判断するプログラムを書いています。プログラムは、ユーザーに整数を尋ねることから始まり、その整数が何であるかに応じて「偶数」と「奇数」を印刷することになっています。私は、If-elseステートメントの作成に問題があります。MIPS if-else印刷に問題がある
ステートメントは、$ t2 = $ t0の場合は "Odd"、それ以外の場合は "Even"を出力する必要があります。これは私が今では($ T1 = 1、$ t2の1でANDさ=利用者の整数を、odd_str = "奇数"、even_str = "でも")動作していないしているコードです:
bne $t2, $t1, L1
li $v0, 4
la $a0, odd_str
syscall
L1:
li $v0, 4
la $a0, even_str
syscall
奇数の出力は「OddEven」であり、偶数の出力は「偶数」である。任意のアイデアをどのようにこれを修正するには?
コードは私のために働くように見えます。 (出力は正しくないが、コードは機能する)。デバッガをチェックインして、コードがどのように動作するのか、出力が期待どおりでないのを確認することもできます。しかし、それは間違いなく動作しますが、実際には有効なマシンコードを見たことがありません.CPUは実行を拒否します。常にそれを実行し、命令が指定するものを実行します。コードの実行を避けるため、実行しないでください。たとえば、他の場所にジャンプします。また、上級プログラマにとっては、小さなポインタ配列を使うだけで、if/elseを使わずにこのタスクを作成するのは簡単です。そのため、コードにはexec.flowが1つしかありません。 – Ped7g
あなたのコードをデバッガでシングルステップして、それがどのように低下するかを確認してください。また、 'syscall'に渡すポインタを除いて2つのブロックが同じであることに注意してください。 –