c - Mips 汇编转换为 C

标签 c assembly mips

这如何用 C 语言编写?如果 $a0 = 43981 ,解决方案应该是什么?

srl $v0, $a0, 4
andi $v0, $v0, 255

我这样做了,但似乎没有产生预期的值。本例中的输入是 43981,它为 v 打印 0

int v = input >> 4;
v = v & 225; 

最佳答案

请注意,srl右移逻辑(即)它是无符号。另外,在您的 C 中,您正在屏蔽 225 而不是 255

所以,您可能想要:

int v = (unsigned) input >> 4;
v = v & 255;

关于c - Mips 汇编转换为 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39403146/

相关文章:

无法使用 IAR ARM 编译器强制函数表到特定地址

ubuntu - 编译Nachos源码报错 "gnu/stubs-32.h: No such file or directory"

c++ - Ubuntu 12.04 到 mipsel 交叉编译问题 :/opt/buildroot-gcc342/bin/mipsel-linux-uclibc-ar: libsupc++. a : No such file or directory

c - 如何在 C 中检查变量是否属于某种类型(比较两种类型)?

c - 如何在 C 中获取欧氏除法的元素(没有余数)

windows - 在运行 Windows XP 的 Intel x86 机器上,内存位置 1 是什么?

c - ARM 汇编内联 C 互斥实现

binary-tree - 如何制作二叉树?

c++ - 将自己放入 chrooted 沙箱后如何(合法地)访问文件?

c - 从.c程序获取程序集x86的地址