arm過程呼叫規範 小結7

2021-06-19 02:58:23 字數 1144 閱讀 4413

有關arm11彙編:

1.apcs:arm process call standard

2.arm暫存器的通用暫存器:(兩套對應的名字,可以通用)

r0 ~r3   r4~r9    r10  r11  r12    r13    r14   r15

a1~a4   v1~v6   sl    fp     lp      sp     lr      pc  -->c語言 補:

在由fork建立子程序時:

sp 由父程序,繼承過來->執行的時候,來確定這個

sp的值

3 彙編調c

4.指令流水線:

取指,解碼,執行,訪存,回寫

pc永遠儲存取指的那一條指令

下面就是apcs

呼叫規範:(在arm中呼叫其它程式的時候,我們儲存當前的狀態,)

mov ip,sp

s***b sp!,//低位址存放低的暫存器fp,

ip,lrsub fp,ip,#4

//這裡是我們要呼叫的子函式內容。

sub sp,fp,#8

ldmia sp,

5.在gdb中加入乙個

-g :把

pc也存上

mov ip,sp

s***b sp!,

sub fp,ip,#4

sub sp,fp,#12

idmia sp,

指令:

and  bic  tst  eor  orr  teq  mvn(要學習的)

注:

在u-boot

裡面寫程式,就是裸版開發

在os裡面就是應用開發

各os預設的可執行檔案的開頭

linux elf

unix a.out

window pe

arm-gcc -c test.s -o test.o

arm-ld -ttext=0x50000000 text.o -o test

arm-objcopy -ielf32-littlearm -o binary test /tftpboot/test.bin

編碼規範(小結)

走查1 1 定義變數時應該進行初始化。2 引數過長進行斷行時,應該每個引數佔一行。3 引數中帶有 時進行引數斷行時,這些運算子應該放在斷行引數前面。4 中變數型別,優先考慮區域性變數,然後再考慮成員變數,再然後考慮全域性變數等等 5 複雜函式進行分解,分解成若干個小函式。6 優先處理函式中的異常情況...

Eslint規範小結

eslint是乙個用來識別 ecmascript 並且按照規則給出報告的 檢測工具,使用它可以避免低階錯誤和統一 的風格。if function add x,y let hello hello world let arr 1,2,3,4 if else var a 123 錯誤示範 var a 12...

ARM定址方式小結

定址方式分類 定址方式是根據指令中給出的位址碼欄位來實現尋找真實運算元位址的方式。arm 處理器具有 9種基本定址方式。1.暫存器定址 2.立即定址 3.暫存器移位定址 4.暫存器間接定址 5.基址定址 6.多暫存器定址 7.堆疊定址 8.塊拷貝定址 9.相對定址。1,定址方式分類 立即定址 立即定...