首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LDR R0,[R2,#(7:SHL:2)]是有效的ARM汇编语言代码吗?

LDR R0,[R2,#(7:SHL:2)]是有效的ARM汇编语言代码吗?
EN

Stack Overflow用户
提问于 2015-11-28 01:51:04
回答 1查看 290关注 0票数 0

我在读一本介绍ARM汇编语言的书中偶然发现了一张汇编器操作表,我想知道是否:

代码语言:javascript
复制
LDR R0, [R2, #(7:SHL:2)]

是以下内容的有效较短代码:

代码语言:javascript
复制
MOV R4, #7
LDR R0, [R2, R4, LSL #2]

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-11-28 02:02:48

从"ARM汇编语言“的角度来看,指令就是LDR R0, [R2, #28]

大多数汇编器都有某种形式的表达式语法,这些表达式在汇编时进行计算以生成立即值。本例中的特定汇编程序显然是armasm,这要归功于its weird operators - (7:SHL:2),它只是(7 << 2)的一个可读性较差的等价物。

正如@SevaAlekseyev指出的那样,它很可能是这样写的,以使偏移量更明显地表示7个字,而不仅仅是一些任意数量的字节,尽管为什么选择移位而不是更明显的乘法,谁知道呢?

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

https://stackoverflow.com/questions/33962596

复制
相关文章

相似问题

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