and r2,r2,#0x0ffff不行!怎么把高半部清零?

haoya84   2008-8-6 21:58 楼主
提示说Immediate 0x0000ffff out of range for this operation.
当然,Reference Manual没有看太仔细.
帮帮忙大家.

回复评论 (5)

什么高半部?  单字节的高4位? 还是4字节的高两字节? 如果是单字节的高4位,那么
试试 and r2,r2,#0x0f
点赞  2008-8-6 22:35
我看编译器的做法是:
mov a0,#0xxxxxxxxx
mov a0,a0,lsl #16
mov a0,a0,lsr #16
,有没有更简单的,比如x86的
mov ax,0xxxxxxxxx
and ax,0x0ffff(这句ARM编译说Out of range).
点赞  2008-8-7 09:30
你什么CPU平台?0xFFFF也会超过范围?难道是8位CPU?
点赞  2008-8-7 09:49
0xffff是合法的立即数吗????
点赞  2008-8-7 09:56
ARM
点赞  2008-8-7 09:57
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复