我是MIPS汇编语言的新手,我有一个问题,我们如何用汇编语言编写一个程序,该程序将包含产品的信息,当我们运行程序时,应该询问产品和输入名称后应显示所有信息。就像在C++中一样,我们只需制作if语句,然后再输出信息即可。MIPS汇编语言if else语句
1
A
回答
1
条件执行通过beq
和bne
指令在MIPS汇编中处理。所以,
beq $r1 $r2 8
着眼于寄存器$ R1和R2 $,如果它们的内容相同,分支机构提前36个字节(4 + 4 * 8) - 第4,这样你可以有任何其他你需要的指令,通常是一个jr
,跳转指令在分支跳回去之前。bne
是类似的,除非它们分支不是相等。
在任何汇编语言中找不到高级控制流概念,如if
或for
或while
;你必须从比较,分支和跳转中构建它们。
0
你可以写在C程序,然后让编译器将其转换为装配为您提供:从C
# GNU C version cygnus-2.7.2-970404 (mips-mips-ecoff) compiled by GNU C version cygnus-2.7.2-970404.
# options passed: -msoft-float
# options enabled: -fpeephole -ffunction-cse -fkeep-static-consts
# -fpcc-struct-return -fcommon -fverbose-asm -fgnu-linker -msoft-float
# -meb -mcpu=3000
gcc2_compiled.:
__gnu_compiled_c:
.rdata
.align 2
$LC0:
.ascii "Enter a product to check.\n\000"
.sdata
.align 2
$LC1:
.ascii "%d\000"
.rdata
.align 2
$LC2:
.ascii "Number=%d\n\000"
.text
.align 2
.globl main
.ent main
main:
.frame $fp,32,$31 # vars= 8, regs= 2/0, args= 16, extra= 0
.mask 0xc0000000,-4
.fmask 0x00000000,0
subu $sp,$sp,32
sw $31,28($sp)
sw $fp,24($sp)
move $fp,$sp
jal __main
la $4,$LC0
jal printf
la $4,$LC1
addu $5,$fp,16
jal scanf
lw $2,16($fp)
li $3,12 # 0x0000000c
bne $2,$3,$L2
la $4,$LC2
lw $5,16($fp)
jal printf
$L2:
move $2,$0
j $L1
$L1:
move $sp,$fp # sp not trusted here
lw $31,28($sp)
lw $fp,24($sp)
addu $sp,$sp,32
j $31
.end main
相关问题
- 1. MIPS汇编语言
- 2. MIPS汇编语言
- 3. MIPS汇编语言乘法
- 4. C至MIPS汇编语言
- 5. MIPS汇编语言(Power2)
- 6. MIPS汇编语言:延迟
- 7. MIPS汇编语言 - 基本
- 8. 语法错误MIPS汇编语言
- 9. if else if else语句(JS)
- 10. if/else语句
- 11. If else语句
- 12. if else语句
- 13. if-else语句
- 14. If/else语句
- 15. Mips汇编语言转换C条件
- 16. Mips汇编语言错误检查
- 17. Mips汇编语言隔离位
- 18. MIPS汇编语言遍历数组
- 19. 汇编语言无效元素MIPS
- 20. MIPS汇编语言LA偏移
- 21. 阵列在MIPS汇编语言
- 22. jquery if else语句
- 23. Big if else语句
- 24. IF ELSE语句SQLite
- 25. Python if else语句
- 26. jQuery if/else语句
- 27. PHP if/else语句
- 28. “形” - if-else语句
- 29. 的if else语句
- 30. PHP IF ELSE语句
没有真正纯汇编,你仍然需要功能:
大会标准库,根据OP的问题,这不会很好。 – user2485710