arm 彙編積累

2021-09-11 03:28:21 字數 1312 閱讀 4286

從某乙個位址中讀取資料到暫存器

(1)ldr r0, [r1, #8]   將位址r1 + 8的字資料讀入以r0儲存器中     :先   加  後   操作

(2)ldr r0, [r1], #8 將r1的資料讀入到r0,並將r1 + 8的值存入r1  :先  操作   後   加

應用例項:

1).  ldr   r0,=label      用於載入立即數或乙個位址值到指定暫存器中

1.1  如果label是立即數:  ldr r0,=0x123           ;將0x123存入r0中

1.2  如果name是個識別符號:  ldr   r0,=label_1    ;將label_1所指向的位址值存入r0中

2).   ldr       r0,[r1]   ;將r1中的值存到r0中

3).   ldr       r1,[r2,#16]    ;將(r2+16)位址中的內容存到r1中

4).   ldr       r1,[r2],#4    ;將r2位址中的內容存到r1中,同時r2=r2+4

從暫存器把資料寫入到某乙個位址中

(1)str r0, [r1, #8]   將r0中的字資料讀入以r1 + 8為位址的儲存器中

(2)str r0, [r1], #8   將r0的字資料讀入r1,並將r1 + 8的值存入r1

應用例項:

1).  str   r1,[r2]        ; 將r1中的值存到r2所指定的位址中

2).  str   r1,[r2,#4]   ;將r1中的值存到r2+4所指定的位址中

3).   str   r1,[r2],#4  ;將r1中的值存到r2所指定的位址中, 同時r2=r2+4

cmp r0, #0    

轉移指令(branch)

說明:無條件轉移b,bal

舉例:    b      label        ; label為某個位置

條件轉移

說明:beq    相等

bne    不等

bpl    非負

bmi    負

bcc    無進製

bcs    有進製

blo    小於(無符號數)

bhs    大於等於(無符號數)

bhi    大於(無符號數)

bls    小於等於(無符號數)

bvc    無溢位(有符號數)

bvs    有溢位(有符號數)

bgt    大於(有符號數)

bge    大於等於(有符號數)

blt    小於(有符號數)

ble    小於等於(有符號數)

ARM彙編和內嵌彙編

彙編指令 跳轉指令 b bl blxbx 資料處理指令 mov mvnadd adcsub rsbrsc andor eorbic cmncmp tstteq 狀態暫存器指令 mrs msrldr strldm stmmcr arm和協處理器之間資料交換 mrccond 可選的條件 rd 存放返回狀...

arm彙編相關

cmp rn rm operand tst logical and ldr用法 摘自arm嵌入式系統開發一書 資料 基址暫存器 示例 mem base offset 基址暫存器加上偏移 ldr r0,r1,offset mem base offset 不變 ldr r0,r1,offset mem ...

arm 彙編學習

一 暫存器和定址 arm有16個暫存器,r0 r15 pc r15 lr r14 sp r13 ip r12 push sp減少,pop sp增加 1.定址方式 從操作位址尋找運算元的方式 2.arm的定址方式 a 暫存器定址,運算元在暫存器中 b 立即定址,運算元就在指令中 subs r0,r0,...