Пусть инструменты сделают всю работу, КСТАТИ сразу же на вооружении (и других МСА) спрашивали и отвечали здесь много раз. Ассемблер GNU выберет оптимальное решение (обычно) с использованием псевдокода.
.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
.cpu cortex-m7
.thumb
.syntax unified
ldr r0,=0xFFFFE
ldr r1,=0x00010001
.align
другая константа должна была подтвердить, что она пытается выполнить расширения thumb2.
, так что без ярлыков вам нужно либо построить значение по частям, либо сделать относительную нагрузку примерно на c. Или просто закодируйте его псевдокодом и получите то, что вы получите.
аналогичная константа
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
могла бы быть выполнена без относительной нагрузки p c.
Нет Вы не можете реализовать это с помощью одной инструкции.
, но это:
add r10,r11,#0xFFFFFFFE
Вы можете ... если это поможет.