GNU ARM中的彙編指令 word

2021-05-22 12:20:06 字數 785 閱讀 5713

gnu arm中的彙編

指令.word

彙編中的標號通常情況下是用來標明程式段的起始位址的,如

_start:

b    reset

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

_start就是該程式段的起始位址,即第一條指令「b    reset」的記憶體位址,其對應記憶體單元中存放的是該指令的機器碼,加標號多是用來實現程式的跳轉。

而對於下面的標號,其作用就不是這樣了:

_armboot_start:

.word _start

這裡的_armboot_start也是乙個標號,其值也是記憶體位址,但不是指令的位址,其對應記憶體單元中不再是指令的機器碼,而是乙個字(word),這個字是 _start的值,也即指令「b    reset」的記憶體位址。這類似於c語言中的函式指標,其值是函式的入口位址,也不過是開闢乙個字的記憶體,存放著第一條語句的記憶體位址。

.word表示的就是在_armboot_start位址的記憶體單元中用乙個字的空間存放_start,這裡的_armboot_start和_start都是記憶體位址。大多情況下,標號對應的記憶體單元中存放的是第一條指令的機器碼,對於arm指令來說,也是乙個機器字的長度(32位)。

GNU ARM彙編偽指令之迴圈

gnu arm彙編中,支援如下形式的迴圈結構 rept times code endr code 表示一段 rept和.endr都是彙編偽指令,times是乙個數字,表示code這段 要重複執行的次數。另一種迴圈的形式如下 irp param,val1,val2.code endr 其中.irp也是...

彙編中的指令

跳轉指令用於實現程式流程的跳轉,在 arm 程式中有兩種方法可以實現程式流程的跳 1 使用專門的跳轉指令。2 直接向程式計數器 pc 寫入跳轉位址值。通過向程式計數器 pc 寫入跳轉位址值,可以實現在 4gb 的位址空間中的任意跳轉,在跳轉之前結合使用 mov lr pc 等類似指令,可以儲存下一條...

彙編中的操作指令

不太會搞,將就著看吧。說明 小括號裡是指令格式,後面是指令的功能,opd是目的運算元,ops是源運算元1 加法指令 add加法 add opd,ops opd opd ops adc帶進製加法 adc opd,ops opd opd ops cf inc加1 inc opd opd的內容加 opd可...