assembly - MIPS 忽略“Beq”语句
问题描述
所以,我有这个问题,我必须翻译 C 代码:
if (A == 2 || B == 3 && C != 4)
printf(“TRUE”);
else
printf(“FALSE”);
进入 MIPS 程序集。我已经设法将树整数存储在不同的注册器中,但是当我与“beq”进行比较时,我遇到了问题,无论我的输入如何,它总是打印“true”,当我调试时,问题出在第一个“ beq”,他总是跳过我的条件来打印“true”,我不知道为什么,任何帮助都会很明显。那是我的代码:
.data
varA: .word 2
A: .asciiz "A: "
B: .asciiz "B: "
C: .asciiz "C: "
outputTrue: .asciiz "\nTrue"
outputFalse: .asciiz "\nFalse"
.text
addi $t0, $zero, 2
addi $t1, $zero, 3
addi $t2, $zero, 4
.globl main
main:
li $v0, 4
la $a0, A
syscall
li $v0, 5
syscall
move $t3, $v0
li $v0, 4
la $a0, B
syscall
li $v0, 5
syscall
move $t4, $v0
li $v0, 4
la $a0, C
syscall
li $v0, 5
syscall
move $t5, $v0
syscall
#t3 = A, $t0 2
#t4 = B, $t1 3
#t5 = C, $t2 4
beq $t3, $t0, outputT
beq $t4, $t1, checkT
outputT:
li $v0, 4
la $a0, outputTrue
syscall
j EXIT
outputF:
li $v0, 4
la $a0, outputFalse
syscall
j EXIT
checkT:
beq $t5, $t2, outputF
beq $t4, $t1, outputT
EXIT:
li $v0, 10
syscall
我是 stackoverflow 和 MIPS 的新手 :(
解决方案
推荐阅读
- excel - Excel 根据工作表名称发送电子邮件
- python - PyMySQL 不插入数据
- aem - AEM 查询生成器:搜索多个属性
- vagrant - Vagrant:在主机(Windows 10)IDE 中编辑的更改不会反映在客户机(Ubuntu)中
- java - Firebase Firestore 分布式计数器文档代码崩溃
- c - 以 sum 作为参数的预处理器操作
- react-native - 在子组件中反应本机 VirtualList 键提取器值
- python - TypeError:单例数组 236724 不能被视为有效集合
- go - 在程序 MQTT 期间更改订阅主题
- java - 来自休眠实体的 For 循环未按预期返回结果