0
.globl _start
_start: bl      dead_loop
        ldr     pc, _start
        ldr     pc, _undefined_instruction
        ldr     pc, _software_interrupt
        ldr     pc, _prefetch_abort
        ldr     pc, _data_abort
        ldr     pc, _not_used
        ldr     pc, _irq
        ldr     pc, _fiq

dead_loop:
        nop
        mov pc, lr

uboot のデッド ループ テストを実行したいのですが、想定されるループから飛び出してしまうことがわかりました。

4

1 に答える 1

0

現在、ARM クロスコンパイラがないかどうかをテストすることはできませんが、=. 使用する

ldr pc, =_start

あなたが望むのは「すぐにジャンプ」することです。それ以外の場合、アセンブラは上記を等しいものとして扱いますが、ldr pc, [ pc, ... ]これはおそらくあなたが望むものではありません。

ADRLDR疑似命令の違いに注意してください。adr pc, _startあなたの場合、 と同じことをしldr pc, =startます。

于 2012-07-17T10:25:51.907 に答える