1、ldr 的指令 [ Load from memory into a register ]
從某一個地址中讀取數據到寄存器
(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
2、str 的指令 [ Store from a register into memory ]
從寄存器把數據寫入到某一個地址中
(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
3、cmp 指令
cmp r0, #0
4、跳轉指令
轉移指令(branch)
說明:無條件轉移B,BAL
舉例: B LABEL ; LABEL爲某個位置
條件轉移
說明:
BEQ 相等
BNE 不等
BPL 非負
BMI 負
BCC 無進位
BCS 有進位
BLO 小於(無符號數)
BHS 大於等於(無符號數)
BHI 大於(無符號數)
BLS 小於等於(無符號數)
BVC 無溢出(有符號數)
BVS 有溢出(有符號數)
BGT 大於(有符號數)
BGE 大於等於(有符號數)
BLT 小於(有符號數)
BLE 小於等於(有符號數)