当前位置:首页 > 单片机 > 单片机
[导读] 今天老师布置了课后习题,有一题是判断立即数的,大家都知道,arm里的立即数并非都是合法的。 描述:如立即数记作 ,8位常数记作immed_8,4位的循环右移值记作rotate_imm,有效的立即数是由一个8位的立即数循环左移偶

今天老师布置了课后习题,有一题是判断立即数的,大家都知道,arm里的立即数并非都是合法的。

描述:如立即数记作 ,8位常数记作immed_8,4位的循环右移值记作rotate_imm,有效的立即数是由一个8位的立即数循环左移偶数位得到,则有效立即数immediate可表示成:
= immed_8循环右移( 2 * rotate_imm )

例:有效立即数 0x0000F200,0x00110000, 0x00012800
无效立即数 0x1010, 0x00102, 0xFF1000
显然,对于8位立即数都是有效的。

其实从定义上判断一个数是不是立即数也很简单的:

1.看所有的bit位为1的是否在一个字节中

2.若1条件满足,则看是否可以经过偶数位左移得到

满足这两个条件的就是合法的立即数了,不过还是写了一个小程序来判断,看来我还是这么的懒,嘻嘻。


#include

/************************************************************

描述:循环左移函数

输入:val,要判断的立即数

n,要左移的位数(0--15)

返回:循环左移n位后的立即数

************************************************************/

unsigned int left(unsigned int val, int n)

{

if (n <0 || n> 15)

{

return 0xffffffff;

}

unsigned int rtn;

rtn = val << (2 * n);

rtn |= (val & (0xffffffff << (32 - 2 * n))) >> (32 - 2 * n);

return rtn;

}

/************************************************************

描述:判断立即数是否有效

输入:val,要判断的立即数

返回:true,立即数有效

false,立即数无效

************************************************************/

int Judge(unsigned int val)

{

int i = 0;

for (i = 0; i < 16; i++)

{

if(left(val, i) <= 0x000000ff )

return 1;

}

return 0;

}

int main(void)

{

int num = 0;

while(printf("请输入:"), 1 == scanf("%x", &num))

{

if(Judge(num))

{

printf("是合法立即数!/n");

}

else

{

printf("非法立即数!/n");

}

}

return 0;

}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

ARM系统几乎都采用Linux的操作系统,而且几乎所有的硬件系统都要单独构建自己的系统,与其他系统不能兼容,这也导致其应用软件不能方便移植,这一点一直严重制约了ARM系统的发展和应用。GOOGLE开发了开放式的Andro...

关键字: Linux x86 ARM

随着计算需求的多样化,尤其是随着移动设备、嵌入式系统和云计算的兴起,ARM 和 x86 架构之间的争论变得更加突出。ARM(高级 RISC 机器)和 x86 代表两种不同类型的处理器架构,每种架构都针对不同的工作负载和用...

关键字: Linux x86 ARM

从画质优化 (NSS) 到帧率提升 (NFRU) 和光线追踪(NSSD),Arm 计划覆盖移动端图形处理的多个维度,推动边缘 AI 图形革命。而未来通过持续的技术迭代,Arm也将保持在移动计算领域的技术领先,满足手游、A...

关键字: ARM 神经图形技术 GPU AI ML

7月31日消息,据媒体报道,芯片架构提供商Arm Holdings首席执行官Rene Haas宣布,公司正加大投入开发自有芯片产品,此举标志着其从传统IP授权模式向提供实体芯片的战略重大转变。

关键字: ARM META

7月28日消息,2025年,中国AI硬件市场规模将首次突破万亿元大关。

关键字: AI ARM

受生成式 AI 驱动, RISC-V 芯片市场快速发展。预计到2030年,RISC-V SoC出货量将达到1618.1亿颗,营收将达到927亿美元。其中,用于AI加速器的RISC-V SoC出货量将达到41亿颗,营收将达...

关键字: RISC-V CPU AI CUDA ARM 推理
关闭