【问题标题】:Access last two digits of hex number in MIPS访问 MIPS 中十六进制数的最后两位
【发布时间】:2021-06-08 06:39:42
【问题描述】:

我想在 MIPS 中打印出十六进制数字的最后两位。我有这段代码,但是当我预计输出为 0x00000021 时,输出为 0x00000000。我哪里错了?

.data
num:  .word 0x00654321
.text
la $s0, num # make s0 equal to num
andi $a0, $s0, 0x00000011 # do bitwise AND
li $v0 34 # print result in hex
syscall

【问题讨论】:

    标签: assembly hex mips bitwise-operators


    【解决方案1】:

    la $s0, num 为您提供num 的地址,而不是那里存储的值。你要的指令是lw

    当你屏蔽时,你应该使用0xFF 来获取两个最低有效十六进制数字,而不是0x11。使用 0x11 只会给你这些数字的最低有效位,例如0x21 & 0x11 = 0x01.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-13
      • 2012-01-31
      • 2019-03-27
      • 1970-01-01
      • 1970-01-01
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多