第3章 ARM程式設計基礎

2021-08-21 14:26:40 字數 809 閱讀 9642

偽指令

指令功能描述

code16

指示彙編編譯器後面的指令為16位的tumb指令

code32

指示彙編編譯器後面的指令位32位的arm指令

export/global

宣告乙個符號可以被其它檔案引用

import/extern

指示編譯器當前符號在其它檔案中定義,本檔案中可能引用該符號

equ為數字常量,基於暫存器的值和程式中的標號定義乙個名稱

暫存器使用規則

子程式通過暫存器r0~r3來傳遞引數,此時暫存器r0~r3可以記作a0~a3。被呼叫的子程式在返回前無需恢復暫存器r0~r3的內容

在子程式中,使用暫存器r4~r11來儲存區域性變數,這時暫存器可以記作v1~v8。若子程式用到了暫存器v1~v8中的某些暫存器,子程式進入時必須儲存這些用到的暫存器的值,在返回前必須恢復這些暫存器

暫存器r12用作子程式間的臨時暫存器,記作ip。在子程式的連線**段中常使用臨時暫存器

暫存器r13用作堆疊指標,記作sp。在子程式中,暫存器r13不能用作其它用途,其進入子程式和退出子程式時的值必須相等

暫存器r15是程式暫存器,記作pc。它不能用作其它用途

引數傳遞規則

當引數不超過4個時,可以使用暫存器r0~r3來傳遞引數;當引數超過4個時,可以使用堆疊來傳遞引數。在進行引數傳遞時,將所有引數看作是存放在連續記憶體字單元中的資料,然後依次將各資料傳送到暫存器r0~r3中。如果引數多於4個,將剩餘的字資料傳送到堆疊中。

子程式返回時,結果為32位整數時可以通過暫存器r0返回;結果為64位整數時,通過暫存器r0和r1返回,依次類推

第3章 ARM體系結構

arm體系結構還提供一些獨特的特性 處理器模式 縮寫模式編碼 描述user usr0b10000 普通的程式執行模式 fiqfiq 0b10001 支援快速的資料搬移或通道處理 irqirq 0b10010 用於通用的中斷處理 supervisor svc0b10011 用於作業系統的保護模式 ab...

套接字程式設計基礎 Unix網路程式設計第3章總結

1.套接字位址結構 以下是其posix定義 struct in addr struct sockaddr in在rhel5中,in addr t是無符號32位整數,in.h檔案中包含 typedef unit32 t in addr t posix規範只有sin family,sin port和si...

JavaScript物件程式設計 第3章

物件擁有屬性和方法,屬性各種資料型別,方法對屬性中的資料進行操作。var 日期物件 new date var 日期物件 new date 毫秒數 var 日期物件 new date 字串 var 日期物件 new date 年 月 日等引數 to方法 tolocalestring togmtstri...