ARM中也有<<这样的移位运算符吗?

singlespark 2008-02-04 02:38:53
在bootloader中经常有这样的代码:
DCD ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC)) ;GCS0
用来配置各个memory bank。在上面的代码中,符号“<<”按照寄存器的specs应该是用来表达移位运算的。但是我查了很多ARM的书籍,在网上也搜索了,ARM的移位运算只能通过ARM指令(LSL、LSR等)以及操作符SHL、SHR(语法A:SHL:B)来表达,并没有看到"<<"这样的运算符,那么这里的“<<”到底是什么作用?
...全文
555 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
都是很好的建议! 值得学习
ninver2007 2008-05-01
  • 打赏
  • 举报
回复
这是C语言的移位 ARM中移位是通过LSR .LSL等来实现的
UltraBejing 2008-04-30
  • 打赏
  • 举报
回复
都是很好的建议! 值得学习
RyanHuang007 2008-03-19
  • 打赏
  • 举报
回复
“>>”和“<<”这两种移位符只能用在C语言里头,ARM汇编并不支持,如果是在C语言代码里头用,编译器会将其转换成相关的汇编代码处理
singlespark 2008-03-08
  • 打赏
  • 举报
回复
ARMASM也支持移位吗?有没有文档?
wbczyh 2008-02-18
  • 打赏
  • 举报
回复
应该是ARM汇编程序也支持移位运算符吧
foolcat19790807 2008-02-18
  • 打赏
  • 举报
回复
难道是混编?似乎.S文件也是可以用GCC编译吧。
色郎中 2008-02-16
  • 打赏
  • 举报
回复

singlespark 2008-02-15
  • 打赏
  • 举报
回复
我知道肯定是ARM汇编编译器支持<<操作符,因为汇编本身并不支持这样的操作符,但是就是查不到相关的文档。
to freshman45:
arm的汇编编译器是armasm,而c语言的编译器是armcc或者tcc,应该不是混合的吧
yuanke1999 2008-02-15
  • 打赏
  • 举报
回复
<<左移运算符,左移1次相当于*2,只要编译器支持,在C/C++中用得很多,因为效率比乘法高
freshman45 2008-02-15
  • 打赏
  • 举报
回复
ARM编译器是支持汇编语言和C/C++的混合编程的。
所以这种写法是很正常的。
singlespark 2008-02-13
  • 打赏
  • 举报
回复
没明白,能否说的更加详细一点。<<是c语言的运算符,怎么能直接在.s文件中使用啊?
「已注销」 2008-02-04
  • 打赏
  • 举报
回复
呵呵,概念错了。。。那是c语言的移位。。。。你说的是汇编指令群。。。。。

21,600

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧