我一直在阅读 gcc 生成的一些不同的arm汇编代码,并且遇到了一些我在规范中找不到的东西。
movw r0, #39784
movt r0, 1
Run Code Online (Sandbox Code Playgroud)
显然,第一个是将值 39784 移动到底部 16 位或 r0,但 movt 的操作数“1”很奇怪,因为它前面没有哈希,而且我的印象是立即值需要哈希。在某些情况下它是可选的吗?或者我错过了一些神奇的东西?
例如,MOVE 8,D2 和 MOVE #8,D2 之间有什么区别?只是想知道 # 代表什么以及如果没有它会发生什么。