ARM(Advanced RISC Machines)是微處理器行業(yè)的一家知名企業(yè),設計了大量高性能、廉價、耗能低的RISC處理器、相關技術(shù)及軟件。技術(shù)具有性能高、成本低和能耗省的特點。適用于多種領域,比如嵌入控制、消費/教育類多媒體、DSP和移動式應用等。ARM將其技術(shù)授權(quán)給世界上許多著名的半導體、軟件和OEM廠商,每個廠商得到的都是一套獨一無二的ARM相關技術(shù)及服務。利用這種合伙關系,ARM很快成為許多全球性RISC標準的締造者。目前,總共有30家半導體公司與ARM簽訂了硬件技術(shù)使用許可協(xié)議,其中包括Intel、IBM、LG半導體、NEC、SONY、菲利浦和國民半導體這樣的大公司。至于軟件系統(tǒng)的合伙人,則包括微軟、升陽和MRI等一系列知名公司。
在一個程序之前先要進行聲明:1)聲明代碼段:用AREA指令定義一個段,說明所定義段的相關屬性。(說明段的名字,段的屬性)2) 聲明ARM指令:用CODE32或CODE16來聲明程序為32位ARM指令或是16位Thumb指令。3) 聲明程序入口:用ENTRY指令標識程序的入口點。注:這3個聲明缺一不可。在程序完成后要用END 指令聲明程序結(jié)束。每一個匯編程序段都必須有一條END指令,指示代碼段的結(jié)束。
標號域 操作助記符域 操作數(shù)域 注釋域1. 標號域(LABLE)1>標號域用來表示指令的地址、變量、過程名、數(shù)據(jù)的地址和常量。2>標號是可以自己起名的標識符,語句標號可以是大小寫字母混合,通常以字母開頭,由字母、數(shù)字、下劃線等組成。3> 語句標號不能與寄存器名、指令助記符、偽指令(操作)助記符、變量名同名。4> 語句標號必須在一行的開頭書寫,不能留空格。2. 操作助記符域(OPERATION)1>操作助記符域可以為指令、偽操作、宏指令或偽指令的助記符。2> ARM匯編器對大小寫敏感,在匯編語言程序設計中,每一條指令的助記符可以全部用大寫、或全部用小寫,但不允許在一條指令中大、小寫混用。3> 所有的指令都不能在行的開頭書寫,必須在指令的前面有空格,然后再書寫指令。4> 指令助記符和后面的操作數(shù)或操作寄存器之間必須有空格,不可以在這之間使用逗號。3. 操作數(shù)域(OPERAND)操作數(shù)域表示操作的對象,操作數(shù)可以是常量、變量、標號、寄存器名或表達式,不同對象之間必須用逗號“,”分開。
RM處理器是基于RISC的,但不是純粹的RISC體系結(jié)構(gòu)。為了使ARM處理器能夠更好的滿足嵌入式系統(tǒng)的需要,ARM指令集和單純的RISC指令集有以下幾點不同:1、一些特定的指令周期數(shù)可變。例如多寄存器裝載或存儲的Load/Store指令執(zhí)行周期就是不確定的,這個會根據(jù)相關的寄存器個數(shù)而定。如果是訪問連續(xù)的內(nèi)存地址,就可以改善性能,因為連續(xù)的內(nèi)存訪問比隨機訪問要快。根據(jù)這個特點,由于在函數(shù)的起始和結(jié)尾通常會有多個寄存器與內(nèi)存進行數(shù)據(jù)交換的操作,因此相應操作的指令條數(shù)會減少,提高了代碼的密度。2、內(nèi)嵌的桶形移位寄存器產(chǎn)生了更復雜的指令。桶形移位寄存器是一個硬件部件,在一個寄存器被一條指令使用之前,桶形移位寄存器可以處理這個寄存器中的數(shù)據(jù)。桶形移位寄存器擴展了許多指令的功能,以此改善內(nèi)核的性能,提高代碼密度。3、Thumb16位指令集。ARM處理器有兩種工作狀態(tài),一種是ARM狀態(tài),一種是Thumb狀態(tài)。ARM狀態(tài)下指令長度為32位,Thumb狀態(tài)下指令長度為16位。這種特點使得ARM既能執(zhí)行16位指令,又能執(zhí)行32位指令,從而增強了ARM內(nèi)核的功能。4、條件執(zhí)行。只有當某個特定條件滿足時指令才會被執(zhí)行。這個特性可以減少分支指令的數(shù)目,從而改善性能,提高代碼密度。5、增強指令。一些功能強大的數(shù)字信號處理器(DSP)指令被加入到標準的ARM指令中,以支持快速的16*16乘法操作及飽和運算。ARM的這些增強指令,使得ARM處理器不需要加上DSP即可實現(xiàn)。