第6章 andriod ARM 實戰番外篇 3

2021-07-10 13:06:21 字數 2023 閱讀 4828

arm 實戰彙編記憶體操作

1、 使用工具arm ads

記憶體操作就是跟暫存器之間的轉換,有暫存器和記憶體的轉換,也有記憶體和暫存器之間的轉換。

記憶體和暫存器之間分為:單暫存器的操作、多暫存器的操作

單暫存器的操作分為:

ldr  rn,addn  按照字長讀取

例子:    mov r1,0x12

ldrr0,[r1]

結果是將r1的記憶體位址給r0,這個就是之前提到的小端模式

什麼是小端模式就是低位放低位址,高位放高位址

記憶體的值是以字長度而來的

strrn,addn

例子:    mov r1,#0x12

str r1,[r0,#0x0c]

結果是把#0x12的值寫到0x0c記憶體位址內

ldrb        rn,addn         按照位元組長讀取

例子:    mov r1,0x12

ldrbr0,[r1]

結果是將ff記憶體位址給r0暫存器

strb        rn,addn         按照位元組長讀取

例子:    mov r1,0x12

strbr0,[r1]

結果是將r0暫存器位址00給r1記憶體中的ff位

ldrh        rn,addn按照半位元組長讀取

例子:    mov r1,0x12

ldrbr0,[r1]

結果是將ffef0000記憶體位址給r0暫存器

strh   rn,addn 按照半位元組長讀取

例子:    mov r1,0x12

ldrbr0,[r1]

結果是將r0暫存器位址0000給r1記憶體中的ffef位

多暫存器的操作分為:

1)       資料塊的模式為ia(傳輸位址之後加4)

2)       資料塊的模式為ib(傳送位址之前加4)

3)       資料塊的模式為da(傳送後位址減4)

4)       資料塊的模式為db(傳送前位址減4)

堆疊模式分為:

1)       ea(空遞減堆疊)

2)       eb(滿遞減堆疊)

3)       ed(空遞增堆疊)

4)       fa(滿遞增堆疊)

ldm                  ldmiar0,按照多暫存器讀取

例子:    mov r1,0xf

ldmiar1,

結果是將r1的暫存器中的記憶體位址給r2,r2的記憶體位址減4給r3,r3的記憶體位址減4給r4

stm          stmia r0,按照多暫存器寫入

例子         mov r1,0x4

stmiar1,

結果是將r1的暫存器的位址開始重新寫入r2-r4新的記憶體值

資料交換操作分為:

swp        rn,r1,[rn2]  記憶體和暫存器之間交換

例子         mov r1,#0x0f

mov r2,#0x12

swp r0,r1,[r2]

結果將r2的0x12給r0,接著將r1的0x0f寫入到r2的記憶體中去

跳轉指令分為:

bl 帶返回鏈結跳轉指令

area hello,code,readonly

entry

start

bstrom

movr1,#0x0f

movr2,#0x12

swpr0,r1,[r2]

movr1,#0x4

stmiar1, 

seond

ldrbr0,[r1]

movpc,lr

strom

blseond

strr1,[r0,#0x0c]

end

mrs        把程式狀態暫存器值傳送到通用暫存器裡

第6章 實戰之聊天語料處理

學習 extract conv.py檔案 函式1 def make split line if re.match r join line return return 首先,定義函式 make split 其主要實現功能是匹配開頭為.的字串,若有這些字串,將其用空格 表示。用空格 代替來連線line中...

第 6章 函式

6.1.2引數 2.引數陣列 c 允許為函式指定乙個 只能乙個 特殊的引數,這個引數必須是函式定義中的最後乙個引數,可用params關鍵字定義他們 如 params int vals 3.引用引數和值引數 理解 將本來在函式中引數按值引用的規則改變成按傳遞引用,使得這個引數會改變,定義引數和傳遞引數...

第6章 函式

1.自動物件 只存在於塊執行期間的物件 2.區域性靜態物件static 在程式執行路徑第一次經過物件定義語句時初始化,並且知道程式終止才被銷毀,如果區域性靜態變數沒有顯示的初始值,初始化為0.3.如果函式無須改變引用形參的值,最好將其生命為常量引用。4.使用引用形參返回額外資訊 5.和其他初始化過程...