




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
嵌入式系統第四講ARM指令詳細介紹西安電子科技大學計算機學院2ARM指令集編碼西安電子科技大學計算機學院3指令分類數據處理指令load/store指令跳轉指令CPSR處理指令異常產生指令協處理器指令西安電子科技大學計算機學院41數據處理指令數據傳送指令(2條)算術運算指令(6條)邏輯運算指令(4條)比較指令(2條)測試指令(2條)乘法指令(6條)西安電子科技大學計算機學院51.1數據傳送指令MOV指令
MOV指令的格式為:
MOV{條件}{S}目的寄存器,源操作數MOV指令可完成從另一個寄存器、被移位的寄存器或將一個立即數加載到目的寄存器。其中S選項決定指令的操作是否影響CPSR中條件標志位的值,當沒有S時指令不更新CPSR中條件標志位的值。指令示例: MOV R1,R0 MOV R1,R0,LSL#3西安電子科技大學計算機學院61.1數據傳送指令MVN指令MVN指令的格式為:
MVN{條件}{S}目的寄存器,源操作數MVN指令可完成從另一個寄存器、被移位的寄存器、或將一個立即數加載到目的寄存器。與MOV指令不同之處是在傳送之前按位被取反了,即把一個被取反的值傳送到目的寄存器中。其中S決定指令的操作是否影響CPSR中條件標志位的值,當沒有S時指令不更新CPSR中條件標志位的值。指令示例: MVN R0,#0 西安電子科技大學計算機學院71.2算術運算指令ADD指令
ADD指令的格式為:
ADD{條件}{S}目的寄存器,操作數1,操作數2ADD指令用于把兩個操作數相加,并將結果存放到目的寄存器中。操作數1應是一個寄存器,操作數2可以是一個寄存器,被移位的寄存器,或一個立即數。指令示例: ADD R0,R1,R2 ADD R0,R1,#256 ADD R0,R2,R3,LSL#1西安電子科技大學計算機學院81.2算術運算指令ADC指令
ADC指令的格式為:
ADC{條件}{S}目的寄存器,操作數1,操作數2ADC指令用于把兩個操作數相加,再加上CPSR中的C條件標志位的值,并將結果存放到目的寄存器中。操作數1應是一個寄存器,操作數2可以是一個寄存器,被移位的寄存器,或一個立即數。以下指令序列完成兩個128位數的加法,第一個數存放在寄存器R7~R4,第二個數存放在寄存器R11~R8,運算結果存放在寄存器R3~R0: ADDS R0,R4,R8;加低端的字 ADCS R1,R5,R9;加第二個字,帶進位 ADCS R2,R6,R10;加第三個字,帶進位 ADC R3,R7,R11;加第四個字,帶進位
西安電子科技大學計算機學院91.2算術運算指令SUB指令
SUB指令的格式為:
SUB{條件}{S}目的寄存器,操作數1,操作數2SUB指令用于把操作數1減去操作數2,并將結果存放到目的寄存器中。操作數1應是一個寄存器,操作數2可以是一個寄存器,被移位的寄存器,或一個立即數。該指令可用于有符號數或無符號數的減法運算。指令示例:SUB R0,R1,R2;R0=R1-R2SUB R0,R1,#256;R0=R1-256SUB R0,R2,R3,LSL#1;R0=R2-(R3<<1)西安電子科技大學計算機學院101.2算術運算指令SBC指令
SBC指令的格式為:
SBC{條件}{S}目的寄存器,操作數1,操作數2SBC指令用于把操作數1減去操作數2,再減去CPSR中的C條件標志位的非,并將結果存放到目的寄存器中。操作數1應是一個寄存器,操作數2可以是一個寄存器,被移位的寄存器,或一個立即數。以下指令序列實現64減法(R1,R0)-(R3,R2) SUBS R0,R0,R2 SBC R1,R1,R3西安電子科技大學計算機學院111.2算術運算指令RSB指令
RSB指令的格式為:
RSB{條件}{S}目的寄存器,操作數1,操作數2RSB指令稱為逆向減法指令,用于把操作數2減去操作數1,并將結果存放到目的寄存器中。操作數1應是一個寄存器,操作數2可以是一個寄存器,被移位的寄存器,或一個立即數。指令示例: RSB R0,R1,R2 RSB R0,R1,#256 RSB R0,R2,R3,LSL#1西安電子科技大學計算機學院121.2算術運算指令RSC指令
RSC指令的格式為:
RSC{條件}{S}目的寄存器,操作數1,操作數2RSC指令用于把操作數2減去操作數1,再減去CPSR中的C條件標志位,并將結果存放到目的寄存器中。操作數1應是一個寄存器,操作數2可以是一個寄存器,被移位的寄存器,或一個立即數。該指令使用進位標志來表示借位,這樣就可以做大于32位的減法。下列指令實現64位數據的負數 RSBSR2,R0,#0 RSCR3,R1,#0西安電子科技大學計算機學院131.3邏輯運算指令AND指令AND指令的格式為:
AND{條件}{S}目的寄存器,操作數1,操作數2AND指令用于在兩個操作數上進行邏輯與運算,并把結果放置到目的寄存器中。操作數1應是一個寄存器,操作數2可以是一個寄存器,被移位的寄存器,或一個立即數。該指令常用于屏蔽操作數1的某些位。例如: AND R0,R0,#3;將高位屏蔽(取出低位)西安電子科技大學計算機學院141.3邏輯運算指令ORR指令ORR指令的格式為:
ORR{條件}{S}目的寄存器,操作數1,操作數2ORR指令用于在兩個操作數上進行邏輯或運算,并把結果放置到目的寄存器中。操作數1應是一個寄存器,操作數2可以是一個寄存器,被移位的寄存器,或一個立即數。該指令常用于設置操作數1的某些位。例如: ORR R0,R0,#3;將低位置位西安電子科技大學計算機學院151.3邏輯運算指令EOR指令EOR指令的格式為:EOR{條件}{S}目的寄存器,操作數1,操作數2EOR指令用于在兩個操作數上進行邏輯異或運算,并把結果放置到目的寄存器中。操作數1應是一個寄存器,操作數2可以是一個寄存器,被移位的寄存器,或一個立即數。該指令常用于反轉操作數1的某些位。例如: EOR R0,R0,#3西安電子科技大學計算機學院161.3邏輯運算指令BIC指令BIC指令的格式為:
BIC{條件}{S}目的寄存器,操作數1,操作數2BIC指令用于清除操作數1的某些位,并把結果放置到目的寄存器中。操作數1應是一個寄存器,操作數2可以是一個寄存器,被移位的寄存器,或一個立即數。操作數2為32位的掩碼,如果在掩碼中設置了某一位,則清除這一位。未設置的掩碼位保持不變。例如:
BIC R0,R0,#3;清除低兩位西安電子科技大學計算機學院171.4比較指令CMP指令CMP指令的格式為:
CMP{條件}操作數1,操作數2CMP指令用于把一個寄存器的內容和另一個寄存器的內容或立即數進行比較,同時無條件更新CPSR中條件標志位的值。該指令進行一次減法運算,但不存儲結果,只更改條件標志位。標志位表示的是操作數1與操作數2的關系(大、小、相等),例如,當操作數1大于操作操作數2,則此后的有GT后綴的指令將可以執行。例如: CMPR1,R0 CMPR1,#100西安電子科技大學計算機學院181.4比較指令CMN指令
CMN指令的格式為:
CMN{條件}操作數1,操作數2CMN指令用于把一個寄存器的內容和另一個寄存器的內容或立即數取補后進行比較,同時無條件更新CPSR中條件標志位的值。該指令實際完成操作數1和操作數2相加,并根據結果更改條件標志位。例如: CMN R1,R0 CMN R1,#100西安電子科技大學計算機學院191.5測試指令TST指令
TST指令的格式為:
TST{條件}操作數1,操作數2TST指令用于把一個寄存器的內容和另一個寄存器的內容或立即數進行按位的與運算,并根據運算結果無條件更新CPSR中條件標志位的值。操作數1是要測試的數據,而操作數2是一個位掩碼,該指令一般用來檢測是否設置了特定的位。 TST R1,#1 TST R1,#0xffe 西安電子科技大學計算機學院201.5測試指令TEQ指令
TEQ指令的格式為:
TEQ{條件}操作數1,操作數2TEQ指令用于把一個寄存器的內容和另一個寄存器的內容或立即數進行按位的異或運算,并根據運算結果無條件更新CPSR中條件標志位的值。該指令通常用于比較操作數1和操作數2是否相等。例如: TEQ R1,R2西安電子科技大學計算機學院211.6乘法指令MUL 32位乘法指令MLA 32位乘加指令SMULL 64位有符號數乘法指令SMLAL 64位有符號數乘加指令UMULL 64位無符號數乘法指令UMLAL 64位無符號數乘加指令西安電子科技大學計算機學院221.6乘法指令MUL指令
MUL指令的格式為:
MUL{條件}{S}目的寄存器,操作數1,操作數2MUL指令完成將操作數1與操作數2的乘法運算,并把結果的低32位放置到目的寄存器中,同時可以根據運算結果設置CPSR中相應的條件標志位。其中,操作數1和操作數2均為32位的有符號數或無符號數。例如: MUL R0,R1,R2 MULS R0,R1,R2 西安電子科技大學計算機學院231.6乘法指令MLA指令MLA指令的格式為:
MLA{條件}{S}目的寄存器,操作數1,操作數2,操作數3MLA指令完成將操作數1與操作數2的乘法運算,再將乘積加上操作數3,并把結果的低32位放置到目的寄存器中,同時可以根據運算結果設置CPSR中相應的條件標志位。其中,操作數1和操作數2均為32位的有符號數或無符號數。例如: MLA R0,R1,R2,R3 MLAS R0,R1,R2,R3西安電子科技大學計算機學院241.6乘法指令SMULL指令SMULL指令格式為:
SMULL{條件}{S} 目的寄存器Low,目的寄存器High,操作數1,操作數2
SMULL指令完成將操作數1與操作數2的乘法運算,并把結果的低32位放置到目的寄存器Low中,結果的高32位放置到目的寄存器High中,同時可以根據運算結果設置CPSR中相應的條件標志位。其中,操作數1和操作數2均為32位的有符號數。例如:SMULLR0,R1,R2,R3;R0(Low32)←(R2×R3)Low32
;R1(High32)←(R2×R3)High32西安電子科技大學計算機學院251.6乘法指令SMLAL指令SMLAL指令的格式為:
SMLAL{條件}{S} 目的寄存器Low,目的寄存器High,操作數1,操作數2SMLAL指令完成將操作數1與操作數2的乘法運算,并把結果的低32位同目的寄存器Low中的值相加后又放置到目的寄存器Low中,結果的高32位同目的寄存器High中的值相加后又放置到目的寄存器High中,同時可以根據運算結果設置CPSR中相應的條件標志位。其中,操作數1和操作數2均為32位的有符號數。對于目的寄存器Low,在指令執行前存放64位加數的低32位,指令執行后存放結果的低32位。對于目的寄存器High,在指令執行前存放64位加數的高32位,指令執行后存放結果的高32位。西安電子科技大學計算機學院261.6乘法指令UMULL指令UMULL指令的格式為:
UMULL{條件}{S} 目的寄存器Low,目的寄存器High,操作數1,操作數2
UMULL指令完成將操作數1與操作數2的乘法運算,并把結果的低32位放置到目的寄存器Low中,結果的高32位放置到目的寄存器High中,同時可以根據運算結果設置CPSR中相應的條件標志位。其中,操作數1和操作數2均為32位的無符號數。例如:UMULLR0,R1,R2,R3;R0(Low32)←(R2×R3)Low32 ;R1(High32)←(R2×R3)High32西安電子科技大學計算機學院271.6乘法指令UMLAL指令UMLAL指令的格式為:
UMLAL{條件}{S} 目的寄存器Low,目的寄存器High,操作數1,操作數2
UMLAL指令完成將操作數1與操作數2的乘法運算,并把結果的低32位同目的寄存器Low中的值相加后又放置到目的寄存器Low中,結果的高32位同目的寄存器High中的值相加后又放置到目的寄存器High中,同時可以根據運算結果設置CPSR中相應的條件標志位。其中,操作數1和操作數2均為32位的無符號數。對于目的寄存器Low,在指令執行前存放64位加數的低32位,指令執行后存放結果的低32位。對于目的寄存器High,在指令執行前存放64位加數的高32位,指令執行后存放結果的高32位。西安電子科技大學計算機學院282load/store指令ARM微處理器支持加載(Load)/存儲(Store)指令用于在寄存器和存儲器之間傳送數據。單寄存器存取指令LDR 字數據加載指令LDRB 字節數據加載指令LDRH 半字數據加載指令STR 字數據存儲指令STRB 字節數據存儲指令STRH 半字數據存儲指令多寄存器存取指令LDM 批量數據加載指令STM 批量數據存儲指令存儲器和寄存器交換指令SWP/SWPB西安電子科技大學計算機學院292.1字數據加載指令LDR指令LDR指令的格式為:
LDR{條件}目的寄存器,<存儲器地址>
LDR指令用于從存儲器中將一個32位的字數據傳送到目的寄存器中。該指令通常用于從存儲器中讀取32位的字數據到通用寄存器,然后對數據進行處理。例如:LDRR0,[R1];將內存單元[R1]中的字讀取到R0寄存器中LDRR0,[R1,R2];將內存單元[R1+R2]中的字讀取到 R0寄存器中LDRR0,[R1,#8];將內存單元[R1+8]中的字讀取到R0 寄存器中LDRR0,[R1,R2]!;將內存單元[R1+R2]中的字讀取到R0 寄存器中,同時R1←R1+R2西安電子科技大學計算機學院302.2字節數據加載指令LDRB指令LDRB指令的格式為:
LDR{條件}B目的寄存器,<存儲器地址>LDRB指令用于從存儲器中將一個8位的字節數據傳送到目的寄存器中,同時將寄存器的高24位清零。該指令通常用于從存儲器中讀取8位的字節數據到通用寄存器,然后對數據進行處理。LDRBR0,[R1];將內存單元[R1]中的字節讀取到R0 寄存器中,R0中高24位設置為0LDRBR0,[R1,#8];將內存單元[R1+8]中的字節 讀取到R0寄存器中,R0中高24位設置為0西安電子科技大學計算機學院312.3半字數據加載指令LDRH指令LDRH指令的格式為:
LDR{條件}H目的寄存器,<存儲器地址>LDRH指令用于從存儲器中將一個16位的半字數據傳送到目的寄存器中,同時將寄存器的高16位清零。該指令通常用于從存儲器中讀取16位的半字數據到通用寄存器,然后對數據進行處理。LDRHR0,[R1];將內存單元[R1]中的半字(16位)數據讀 取到R0寄存器中,R0中高16位設置為0LDRHR0,[R1,#8];將內存單元[R1+8]中的半字(16位) 數據讀取到R0寄存器中,R0中高16位設置為0LDRHR0,[R1,R2];將內存單元[R1+R2]中的半字(16位) 數據讀取到R0寄存器中,R0中高16位設置為0
西安電子科技大學計算機學院322.4字數據存儲指令STR指令STR指令的格式為:
STR{條件}源寄存器,<存儲器地址>STR指令用于從源寄存器中將一個32位的字數據傳送到存儲器中。該指令在程序設計中比較常用,且尋址方式靈活多樣,使用方式可參考指令LDR。STR R0,[R1],#8;將R0的字數據保存到內存單元 [R1]中,同時R1←R1+8(后變)STR R0,[R1,#8];將R0的字數據保存到內存單元 [R1+8]中(前變)西安電子科技大學計算機學院332.5字節數據存儲指令STRB指令STRB指令的格式為:
STR{條件}B源寄存器,<存儲器地址>STRB指令用于從源寄存器中將一個8位的字節數據傳送到存儲器中。該字節數據為源寄存器中的低8位。STRB R0,[R1];將R0的低8位數據保存到 內存單元[R1]中STRB R0,[R1,#8];將R0的低8位數據保存到 內存單元[R1]中西安電子科技大學計算機學院342.6半字數據存儲指令STRH指令STRH指令的格式為:
STR{條件}H源寄存器,<存儲器地址>STRH指令用于從源寄存器中將一個16位的半字數據傳送到存儲器中。該半字數據為源寄存器中的低16位。STRH R0,[R1];將R0中的16位的半字數據 保存到內存單元[R1]中STRH R0,[R1,#8];將R0中的16位的半字數據 保存到內存單元[R1+8]中
西安電子科技大學計算機學院35LDR/STR指令的尋址方式基址尋址變址尋址變址尋址靈活多變,需要認真掌握西安電子科技大學計算機學院36批量數據加載(LDM)/存儲(STM)內存訪問指令ARM微處理器所支持批量數據加載/存儲指令可以一次在一片連續的存儲器單元和多個寄存器之間傳送數據。批量數據加載指令(LDM)用于將一片連續的存儲器中的數據傳送到多個寄存器,批量數據存儲指令(STR)則完成相反的操作。IA、IB、DA、DBFD、ED、FA、EA西安電子科技大學計算機學院372.7批量數據存儲指令STM指令STM指令的格式為:
STM{條件}{類型}基址寄存器{!},寄存器列表{^}STM指令用于將寄存器列表所指示的多個寄存器數據送到由基址寄存器所指示的一片連續存儲器,該指令的常見用途是將多個寄存器的內容入棧。例如:STMFDR0!,{r0-r4};將寄存器列表中的寄存器 (R1~R4)內容按照滿遞減的方式 存入到[R0]指示的4個連續存儲器單元中西安電子科技大學計算機學院382.8批量數據加載指令LDM指令LDM指令的格式為:
LDM{條件}{類型}基址寄存器{!},寄存器列表{^}LDM指令用于從由基址寄存器所指示的一片連續存儲器送字數據到寄存器列表所指示的多個寄存器中,該指令的常見用途是將多個寄存器出棧。例如:
LDMFDR0!,{r1-r4};將[R0]指示的4個連續存儲器 單元的內容按照滿遞減的方式送到 寄存器列表中的寄存器(R1~R4)中西安電子科技大學計算機學院39可選后綴{!}回寫使能標志為可選后綴,若選用該后綴,則當數據傳送完畢之后,將最后的地址寫入基址寄存器,否則基址寄存器的內容不改變。{^}為可選后綴,當指令為LDM,且寄存器列表中包含R15,選用該后綴時表示:除了正常的數據傳送之外,還將SPSR復制到CPSR。西安電子科技大學計算機學院402.9存儲器和寄存器交換指令ARM微處理器所支持數據交換指令能在存儲器和寄存器之間交換數據。數據交換指令主要用于實現信號量操作,信號量用于進程間的同步與互斥。西安電子科技大學計算機學院412.9存儲器和寄存器交換指令SWP指令SWP指令的格式為:
SWP{條件}目的寄存器,源寄存器1,[源寄存器2]SWP指令用于將源寄存器2所指向的存儲器中的字數據傳送到目的寄存器中,同時將源寄存器1中的字數據傳送到源寄存器2所指向的存儲器中。顯然,當源寄存器1和目的寄存器為同一個寄存器時,指令交換該寄存器和存儲器的內容。SWPR0,R1,[R2];R0←[R2],[R2]←R1SWPR0,R0,[R2];R0(目的)←[R2],[R2]←R0(源) 即實現了寄存器R0的內容與存 儲器地址[R2]的內容的交換
西安電子科技大學計算機學院42信號量操作舉例SEM EQU 0x40003000 …SEM_WAIT MOV R1,#0 LDR R0,=SEM SWP R1,R1,[R0];取出信號量, 并設置其為0 CMP R1,#0;判斷是否有信號 BEQ SEM_WAIT;若沒有,則等待西安電子科技大學計算機學院433跳轉指令ARM中實現程序跳轉直接向PC寄存器寫入目標地址值跳轉指令實現向PC寄存器寫入目標地址值可實現4GB地址空間的任意跳轉跳轉指令可以完成從當前指令向前或向后的32MB的地址空間的跳轉,包括:B 跳轉指令BL 帶返回的跳轉指令BX 帶狀態切換的跳轉指令BLX 帶返回和狀態切換的跳轉指令西安電子科技大學計算機學院443.1跳轉指令B指令B指令的格式為:
B{條件} 目標地址B指令是最簡單的跳轉指令。一旦遇到一個B指令,ARM處理器將立即跳轉到給定的目標地址,從那里繼續執行。注意存儲在跳轉指令中的實際值是相對當前PC值的一個偏移量,而不是一個絕對地址,它的值由匯編器來計算。它是24位有符號數,左移兩位后有符號擴展為32位,表示的有效偏移為26位(前后32MB的地址空間)。如:BLabel/*程序無條件跳轉到標號Label處執行*/西安電子科技大學計算機學院453.2帶返回的跳轉指令BL指令BL指令的格式為:
BL{條件} 目標地址BL是另一個跳轉指令,但跳轉之前,會在寄存器R14中保存PC的當前內容,因此,可以通過將R14的內容重新加載到PC中,來返回到跳轉指令之后的那個指令處執行。該指令是實現子程序調用的一個基本但常用的手段。例如:BL Label /*當程序無條件跳轉到標號Label處執 行時,同時將當前的PC值保存到R14中*/西安電子科技大學計算機學院463.3帶狀態切換的跳轉指令BX指令BX指令的格式為:
BX{條件}目標地址BX指令跳轉到指令中所指定的目標地址,目標地址處的指令既可以是ARM指令,也可以是Thumb指令。因此,當前處理器工作狀態使用Thumb指令集時,通過BX指令可使當前處理器工作狀態切換到ARM指令集運行狀態,反之亦然。具體狀態有目標寄存器最低位決定。例如:ADRL R0,ThumbFun+1BX R0 ;跳轉到R0指定的地址,并根 據R0最低位來切換處理器狀態西安電子科技大學計算機學院473.4帶返回和狀態切換的跳轉BLX指令BLX指令的格式為:
BLX目標地址BLX指令從ARM指令集跳轉到指令中所指定的目標地址,并將處理器的工作狀態由ARM狀態切換到Thumb狀態,該指令同時將PC的當前內容保存到寄存器R14中。因此,當子程序使用Thumb指令集,而調用者使用ARM指令集時,可以通過BLX指令實現子程序的調用和處理器工作狀態的切換。同時,子程序的返回可以通過將寄存器R14值復制到PC中來完成。西安電子科技大學計算機學院484程序狀態寄存器訪問指令
ARM微處理器支持程序狀態寄存器(PSR)訪問指令,用于在程序狀態寄存器(CPSR/SPSR)和通用寄存器之間傳送數據,程序狀態寄存器訪問指令包括以下兩條:MRS狀態寄存器的內容讀取到通用寄存器(Rn←CPSR/SPSR)MSR立即數或通用寄存器內容寫到狀態寄存器的指定區域(CPSR/SPSR←Rn)西安電子科技大學計算機學院494.1MRS指令MRS指令的格式為:MRS{條件}通用寄存器,程序狀態寄存器(CPSR或SPSR)MRS指令用于將程序狀態寄存器的內容傳送到通用寄存器中。例如:MRS R0,CPSR ;R0←CPSRMRS R0,SPSR ;R0←SPSR該指令一般用在以下幾種情況:當需要改變程序狀態寄存器的內容時,可用MRS將程序狀態寄存器的內容讀入通用寄存器,修改后再寫回程序狀態寄存器。當在異常處理或進程切換時,需要保存程序狀態寄存器的值,可先用該指令讀出程序狀態寄存器的值,然后保存。西安電子科技大學計算機學院504.2MSR指令MSR指令的格式為:
MSR{條件} 程序狀態寄存器(CPSR或SPSR)_<域>,操作數MSR指令用于將操作數的內容傳送到程序狀態寄存器的特定域中。其中,操作數可以為通用寄存器或立即數。MSR指令的形式如下:
MSR{cond}<PSR>_<fields>,#immed_8r MSR{cond}<PSR>_<fields>,Rm西安電子科技大學計算機學院514.2MSR指令其中:<域>用于設置程序狀態寄存器中需要操作的位(4個域)c位[7:0]為控制位域,用c表示;x位[15:8]為擴展位域,用x表示;s位[23:16]為狀態位域,用s表示;
f位[31:24]為條件標志位域,用f表示;例如:MSR CPSR,R0 ;CPSR←R0MSR CPSR_c,R0 ;CPSR_c←R0,僅改變CPSR的控 制域即位[7:0]西安電子科技大學計算機學院525異常產生指令ARM微處理器所支持的異常指令有如下兩條:SWI 軟件中斷指令BKPT 斷點中斷指令(ARMv5以上)西安電子科技大學計算機學院535.1軟件中斷指令SWI指令SWI指令的格式為:
SWI{條件}24位的立即數SWI指令用于產生軟件中斷,以便用戶程序能調用操作系統的系統例程。操作系統在SWI的異常處理程序中提供相應的系統服務,指令中24位的立即數指定用戶程序調用系統例程的類型,相關參數通過通用寄存器傳遞,當指令中24位的立即數被忽略時,用戶程序調用系統例程的類型由通用寄存器R0的內容決定,同時,參數通過其他通用寄存器傳遞。例如:SWI 0x02;西安電子科技大學計算機學院545.2斷點中斷指令BKPT指令BKPT指令的格式為:
BKPT 16位的立即數BKPT指令產生軟件斷點中斷,可用于程序的調試。西安電子科技大學計算機學院556協處理器指令數據操作指令數據存取指令(內存-協處理器寄存器)數據傳送指令(ARM寄存器-協處理器寄存器)西安電子科技大學計算機學院566.1數據操作指
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國北京寫字樓行業市場投資可行性調研報告
- 留學歸國人員產學研一體化勞務合作協議
- 建筑工程項目合同終止與安全生產監管服務協議
- 2025年中國半導體光罩行業市場規模調研及投資前景研究分析報告
- 2025年中國板球服裝和裝備行業市場前景預測及投資價值評估分析報告
- 旅行社與景區旅游咨詢服務合作協議
- 影視動畫渲染節點租賃與高效數據存儲合同
- 節能減排技術改造項目收益分配協議
- 影視行業群眾演員選拔與保密協議補充條款
- 高管股權激勵退出方案實施合同
- 導截流驗收報告匯編
- 大班科學《神奇的中草藥》課件
- 信用修復申請書
- 全過程造價控制流程全圖
- 溫州7.23動車事故調查報告介紹課件
- RAL 勞爾色卡電子版
- 造價咨詢質量控制保證措施及服務質量
- 跳棋教學(課堂PPT)
- 火車過橋問題四年級(課堂PPT)
- MSA偏倚分析報告樣本
- 中國顱腦創傷顱內壓監測專家共識
評論
0/150
提交評論