首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想用thumb汇编语言实现R10=R11+OxFFFFE

我想用thumb汇编语言实现R10=R11+OxFFFFE
EN

Stack Overflow用户
提问于 2020-05-01 20:22:06
回答 1查看 35关注 0票数 0

在ADDW的情况下,我知道的立即值不能超过12位。有没有办法在一条指令中实现这一点?

EN

回答 1

Stack Overflow用户

发布于 2020-05-01 21:17:14

让工具来做这项工作,BTW在arm (和其他ISA)中立即在这里被问和回答了很多次。gnu汇编程序将使用伪代码(通常)选择最佳解决方案。

代码语言:javascript
复制
.cpu cortex-m0
.thumb
ldr r0,=0xFFFFE
.align

00000000 <.text>:
   0:   4800        ldr r0, [pc, #0]    ; (4 <.text+0x4>)
   2:   46c0        nop         ; (mov r8, r8)
   4:   000ffffe    strdeq  pc, [pc], -lr

启用thumb2扩展

代码语言:javascript
复制
.cpu cortex-m7
.thumb
.syntax unified
ldr r0,=0xFFFFE
ldr r1,=0x00010001
.align

另一个常量是确认它正在尝试thumb2扩展。

所以没有捷径,你要么需要在部件中构建值,要么从附近的pc相对加载。或者只是用伪代码进行编码,然后得到你想要的结果。

一个类似的常量

代码语言:javascript
复制
cpu cortex-m7
.thumb
.syntax unified
ldr r0,=0xFFFFFFFE
ldr r1,=0x00010001
.align

00000000 <.text>:
   0:   f06f 0001   mvn.w   r0, #1
   4:   f04f 1101   mov.w   r1, #65537  ; 0x10001

可以在没有pc相对负载的情况下完成。

不,你不能用一条指令来实现它。

但这一点:

代码语言:javascript
复制
add r10,r11,#0xFFFFFFFE

你的can...if很有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61542409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档