用mips替代的方法吗?

时间:2011-10-21 10:15:44

标签: assembly mips

如何执行相同的功能,而不是使用lw来使用lbu而不是and其他一些命令?

    .text       
        .globl __start 
__start:            # execution starts here
    la $a0,st_b         
    lw $t0,4($a0)
    and $t0,$t0,0xFF00FF00

    li $v0,10
    syscall         # exit

    .data
st_b:   .byte 0xA1,0xA2,0xA3,0xA4,0xB1,0xB2,0xB3,0xB4

1 个答案:

答案 0 :(得分:0)

这个怎么样:

  la $a0,st_b         

  lbu $t0, 5($a0)  # Load 2nd byte
  sll $t0, $t0, 8  # And shift it left
  lbu $t1, 7($a0)  # Load 4th byte
  sll $t1, $t1, 24 # And shift it left
  or $t0, $t0, $t1 # join both bytes