9.ARM寻址方式
9.ARM尋址方式
1.立即數尋址
????立即數尋址,是一種特殊的尋址方式,操作數本身就是在指令中給出。只有取出指令就取到了操作數。這個操作數就稱為立即數,對應的尋址方式就是立即數尋址方式。例如:
ADD R0,R1,#0X45;這匯編的意思:R1+0x45->R0
?
在以上兩條指令中,第二個源操作數,是立即數,要求以"#"為前綴。
2.寄存器尋址
寄存器尋址就是利用寄存器中的數值作為操作數,這種尋址方式是一種執行效率較高的尋址方式。
該指令的執行效果是將寄存器R1和R2的內容相加,其結果存放在寄存器R0中
3.寄存器間接尋址
寄存器間接尋址就是寄存器中的存放的是操作數在內存中的地址。例如以下指令:
在第一條指令中,以寄存器R2的值作為操作數的地址,在存儲器中取得一個操作數后與R1相加,結果存入寄存器R0中。第二條指令將以R1的值為地址的存儲器中的數據傳送到R0中。
?
4.基址變址尋址
基址變址尋址就是將寄存器里的內容(基地址)與指令中給出的地址偏移量相加,從而得到操作數在內存中的地址:
?
5.相對尋址
與基址變址尋址方式相類似,相對尋址PC指針的當前值為基地址,指令中的地址標號作為偏移量,將兩者相加之后得到操作數的有效地址。以下程序段完成子程序的調用和返回,跳轉指令BL采用了相對尋址方式:
?
轉載于:https://www.cnblogs.com/FORFISH/p/5188694.html
總結
- 上一篇: php方法-------将汉字转为拼音或
- 下一篇: onvif 模拟摄像头_ONVIF协议测