小编Jer*_*oen的帖子

GNU Arm汇编程序将ORR更改为MOVW

我正在组装下面的汇编程序:

.syntax unified
.cpu cortex-m4
.thumb

.section  .text

orr r1, #12800
orr r1, #12801
Run Code Online (Sandbox Code Playgroud)

基本上,只有两个OR指令.如果我看一下结果objdump,我得到:

bla.o:     file format elf32-littlearm


Disassembly of section .text:

00000000 <.text>:
   0:   f441 5148   orr.w   r1, r1, #12800  ; 0x3200
   4:   f243 2101   movw    r1, #12801  ; 0x3201
Run Code Online (Sandbox Code Playgroud)

第二个OR默默地变成MOVW!汇编程序运行如下:arm-none-eabi-gcc -g -Wall -c bla.s它没有显示任何警告.

版本asGNU assembler version 2.29.51 (arm-none-eabi) using BFD version (GNU Tools for Arm Embedded Processors 7-2017-q4-major) 2.29.51.20171128在OSX上运行的.

知道为什么第二个OR变成了MOV吗?

assembly arm gnu

7
推荐指数
1
解决办法
628
查看次数

标签 统计

arm ×1

assembly ×1

gnu ×1