第一部分體系結構指令arm程序設計_第1頁
第一部分體系結構指令arm程序設計_第2頁
第一部分體系結構指令arm程序設計_第3頁
第一部分體系結構指令arm程序設計_第4頁
第一部分體系結構指令arm程序設計_第5頁
已閱讀5頁,還剩162頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

ARM程序設:本課件及其印刷物、的歸國嵌 ,不得使用該課件及其印刷物、從事商業(yè)、教學活動。已經(jīng)取 的,應在范圍內(nèi)使用,并注明“來源:國嵌”。上述者 。嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群mini2440ARMARMARMARMARMARMC/C++ADSmini2440ARMARMARM嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群什么是ARM(AdvancedRISC199年RM公司成立于英國,主要設計技術的。目前,采用RM技術知識(I)核的微處理器,即我們通常所說的RM微處理器,已遍及工業(yè)控制、消費類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡系統(tǒng)、無線系統(tǒng)等各類產(chǎn)品市場,基于RM技術的理器應用約占據(jù)了3位RISC微處理器7%以上的市場份額,RM技術正在逐步滲入到我們生活的各個方面ARM公司是專門從事基于RISC技術設計接從事生產(chǎn),靠轉讓設計由合作公司從ARM公司其設計的ARM微處理器核,根據(jù)各自不同的應用領域,加入適當?shù)碾娐?,從而形成自己的ARM微處理器進入市據(jù)統(tǒng)計,全球有103家巨型IT公司在采用ARM技術,20家最大的半導體廠商中有19家是ARM的用戶,包括德州儀器,意法 等。ARM系列 嵌入式Linux嵌入式Linux技術咨嵌入式Linux學習交號群嵌入式Linux嵌入式Linux技術咨嵌入式Linux學習交號群 月年月間在位于英國的AcornComputer公司開發(fā)。20世紀90ARM快速進入世界市場。嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群可和廣泛使用。1995StrongARM問世XScale是下一代StrongARM的發(fā)展基礎ARM10TDMI是ARM處理器核中的高端產(chǎn)品ARM11是ARM中性能最強的一個系列ARM9、ARM10、Strong-ARM和ARM11等系列處理器的開更為廣泛的使得基于ARM的嵌入式應用領域更加廣嵌入式Linux嵌入式Linux學習交群Cambridge,Maidenhead,Sheffield,Blackburn

Seattle,LosGatos,WalnutAustin,Boston,SanandParis,Sophia

Shin-Yokohama

全球雇

嵌入式Linux技術咨

嵌入式Linux嵌入式Linux學習交群應用領SamsungDiamondMultimediaRioSamsungJVC"Pixstar"GC-

AlbaBushInternetLexmarkZ52Color

Iomega

HPHP

Nokia Nokia嵌入式Linux技術咨 應用應用領嵌入式Linux嵌入式Linux技術咨嵌入式Linux學習交號群2、無線通訊領域了ARM技術ARM以其高性能和低成本,3、網(wǎng)絡應用ARM技術的ADSL正逐步 應用應用領嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群現(xiàn)在流行的數(shù)碼相機和中絕嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群特特1、體積小、低功耗、低成本、高性2、支持Thumb(16位)/ARM(32位雙指令集,能很好的兼容8位/16位器3、大量使用寄存器,指令執(zhí)行速度4、尋址方式靈活簡單,執(zhí)行效率嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群系系ARM7系ARM9系ARM9E系ARM10E系ARM11系SecurCore系Inter的Inter的嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群 ARM7TDMI、ARM7TDMI-S、ARM720T、嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群端、數(shù)字照相機和數(shù)字機等。ARM9系列微處理器包含ARM920T、ARM922T和ARM940T類型嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群ARM9E系列微處理器為綜合處理器,提供了增嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群ARM10E系列微處理器具有高性能、低功耗的特點,嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群1GHz時鐘頻率。ARM11處理器在提供高性能的同嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群Xscale處理器是基于ARMv5TE體系 絡產(chǎn)品等場合。Xscale處理器是Inter嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群InterStrongARM處理器是采用ARM體系結 InStrongARM處理器是便攜式通訊產(chǎn)品嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群ARMARMmini2440開發(fā)板介ARM工作模ARM寄存ARM尋址方嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群SamsungS3C2440為微處理器,并采用專業(yè)穩(wěn)定的CPU內(nèi)核電源和復位來保證系統(tǒng)運行時的穩(wěn)定性。mini2440的PCB采用嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群硬件硬件資嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群CPU處理SamsungS3C2440A,主頻最高SDRAM在板64M32bit數(shù)據(jù)總SDRAM時鐘頻率高達FLASH128MNandFlash2MNorFlashLCD標準配置為NEC256K色240x320/3.5英寸TFT彩液晶屏,帶觸摸屏板上引出一個12V電源接口,可以為大尺寸TFT晶的12VCCFL背光模塊(Inverting)1個100M以太網(wǎng)RJ-45接口(采用DM9000網(wǎng))3個串行1個USB1個USBSlave1個SD卡接1路立體聲音頻輸出接口,一路麥克風接1個2.0mm間距10針JTAG4USER6USER 1個可調(diào)電阻,用于AD1個I2C總線AT24C08,用于I2C總線測1個2.0mm間距20pin頭接嵌入式Linux嵌入式Linux學習交群布嵌入式Linux技術咨 嵌入式Linux嵌入式Linux技術咨嵌入式Linux學習交號群S3C2440支持兩種啟動模式:一種是從NandFlash啟動;一種是從NorFlash啟動。在此兩種的NANDFlash啟動模式下,內(nèi)部的4KBytesBootSram被映射到nGCS0片選的空間NorFlash啟動模式下,與nGCS0相連的NorFlash被映射到nGCS0片選的空間嵌入式Linux嵌入式Linux技術咨嵌入式Linux學習交號群啟動與啟動啟動與嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群mini2440的啟動模式選擇,是通過撥動S2來決定的,根據(jù)提示S2接到NorFlash標識一側時,系統(tǒng)將NorFlash啟動S2接到NandFlash標識一側時,系統(tǒng)將從NandFlash啟動。mini2440使用了兩片外接的32Mbytes總共64Mbytes的SDRAM(型號為:并接在一起形成32-bit的總線數(shù)據(jù)寬度,這樣使用了nGCS6作為片選,根據(jù)CPU手冊5-2 嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群LED是開發(fā)中最常用的狀態(tài)指示設備,mini2440板具有4個用戶可編程LED,它們直接與CPU的GPIO相連接,低電平有效(點嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群按按mini2440共有6個用戶按鍵,它們均從 EINT8EINT11EINT13EINT14EINT15EINT19GPG0 GPG7嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群以使用USB口更加復雜的系統(tǒng)程序等。除此之外,JTAG器,最終都是通過JTAG接口連接的。嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群ARMARMmini2440開發(fā)板介ARM工作模ARM寄存ARM尋址方工作工作狀嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群從編程的角度看,ARM微處理器的工作狀第一種為ARM狀態(tài),此時處理器執(zhí)32位的字對齊的ARM指令器器嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群4GB嵌入式Linux嵌入式Linux技術咨嵌入式Linux學習交號群嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群指令指令狀態(tài)下)。ARM微處理器中支持字節(jié)(8的最低位為0)工作模工作模嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群ARM微處理器支持7種工作模式,分別為1、用戶模式用于正常2、快速中斷模式用于高速數(shù)據(jù)3、外部中斷模式用于通常的中斷不能被的。除用戶模式以外,其余的所有6種模式稱之非用戶模式,或模式(Privileged要受保護的系統(tǒng)資源等情況。嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群ARMARMmini2440開發(fā)板介ARM工作模ARM寄存ARM尋址方嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群序計數(shù)器PC、一個狀態(tài)寄存器都是可的。嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群寄存器寄存器(ARM狀態(tài)在ARM工作狀態(tài)下,任一時刻可以個通用寄存器和一到兩個狀態(tài)寄存器非用戶模式(模式)下,則可到特定模式分組寄存器,具體見下頁圖:嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群寄存器(ARM狀態(tài)寄存寄存器(Thumb狀態(tài)嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群Thumb狀態(tài)下的寄存器集是ARM狀態(tài)下存器(LR)和CPSR。具體見下頁圖:嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群R13_svc、R13_abt、R13_irq、R8_fiq~不分組寄存器(TheunbankedR0-分組寄存器(ThebankedR8-程序計數(shù)器嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群理器模式下,的都是同一個物理寄存嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群分組寄存器R8-FIQ模式分組寄存器R8-FIQ以外的分組寄存器R8-分組寄存器R13、寄存器R13通常用做堆棧指針寄存器R1用作子程序寄存器(LnkRegiste-LR),也稱為L,指向函數(shù)的返回地址嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群PC。其值等于當前正在執(zhí)行的指令的地嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群ARM所有工作模式下都可以程序狀態(tài)寄嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群ARMARMmini2440開發(fā)板介ARM工作模ARM寄存ARM尋址方嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群所謂尋址方式就是式嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群 寄存器尋址就是 嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群址,而操作數(shù)本身存放在器中。例如以下指令ADD 器中的數(shù)據(jù)傳送到R0中嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群基址基址變LDR LDR ;R0←[R1+4]、LDRR0,[R1 ;R0←[R1]、LDR 嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群;跳轉到子程序NEXT處執(zhí)嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群堆棧堆棧堆棧是一種數(shù)據(jù)結構,按先進后出(FirstInLastOut,F(xiàn)ILO)的方式工作,使用一個稱作堆嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群ARMARM指令ARM偽指C/C++混合編ADS集成開發(fā)環(huán)跳轉跳轉指嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群跳轉指令用于實現(xiàn)程序流程的跳轉,在ARM程序中有 4GB連續(xù)的線性地址空間的子程序調(diào)用 BLX B 目標地BB指令,ARMBCMPBEQ嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群指令Z相Z不相C無符號數(shù)大于或等C無符號數(shù)小N負N正數(shù)或V溢V未溢C置位Z無符號數(shù)大CZ置無符號數(shù)小于或等N等于帶符號數(shù)大于或等N不等于帶符號數(shù)小Z且(N等于帶符號數(shù)大Z置位或(N不等于帶符號數(shù)小于或等忽無嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群 BL是另一個跳轉指令,但跳轉之前,會在寄存器R14存PC當前值,因此,可以通過將R14的內(nèi)容重新加載到令是實現(xiàn)子程序調(diào)用的一個基本但常用的。BLLabel BLX目標地址以通過將寄存器R14值到PC中來完成。BX{條件}BX指令跳轉到指令中所指定的目標地址目標地址處的指令既可以是ARM指令,也嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群MOVMOVMOV指令的格式為MOV{條件 目的寄存器,源操作MO指令完成從另一個寄存器、被移位的寄存器或將一個立即數(shù)加載到目的寄存器。其中選項決定指令的操作是否影響CR中條件標志位的值,當沒有時指令不更新CPR中條件標志位的值。指令示;將寄存器R0的值傳送到寄存器;將寄存器R14的值傳送到PC,常用于子序返R1,R0,LSL#3;將寄存器R0的值左移3位后傳送嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群MVNMVN 嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群CMPCMPCMP{條件}操作數(shù)1,操作數(shù)CM指令用于把一個寄存器的內(nèi)容和另一個寄存器的內(nèi)容或立即數(shù)進行比較,同時更新CPR中條件標志位的值。該指令進行一次減法運算,但不結果,只更改條件標志位。標志位表示的是操作數(shù)與操作數(shù)的關系大、小、相等,例如,當操作數(shù)大于操作操作數(shù),則此后的有T后綴的指令將可以執(zhí)行。指令示 ;將寄存器R1的值與立即數(shù)100減,并根據(jù)結果設置CPSR的標志嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群TST{條件}操作數(shù)1,操作數(shù)操作數(shù)2是一個位掩碼,根據(jù)設置相應標志位。 嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群ADDADD} ;R0=R1+ ;R0=R1+ ;R0=R2+(R3<<嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群SUBSUB} ;R0=R1- ;R0=R1- ;R0=R2-(R3<<嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群ANDANDAND{條件}{S}目的寄存器,操作數(shù)1,操作數(shù)ANDR0,R0,#3;該指令保持R0的0、1余位嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群ORRORRORR{條件}{S目的寄存器,操作數(shù)1,操作數(shù) R00、1位,其余位保持不變嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群BICBICBIC{cond}{S}BIC指令用于清除Rn中的某些位,并把結果存放在Rd中,操作數(shù)operand2為32位的掩碼,如果例:BICR0,R0,#%1011;將R0的0,1,3嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群MULMULMUL{條件 目的寄存器,操作數(shù)1,操作數(shù) ;R0=R1× ;R0R1R2,同設置CPSR中的相關條件標志嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群ARM微處理器支持程序狀態(tài)寄存器指嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群MRSMRS} 嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群MSRMSRMSR{條件}程序狀態(tài)寄存器(CPSR或SPSR)_<域>,操作MS指令用于將操作數(shù)的內(nèi)容傳送到程序狀態(tài)寄存器的特定域中。其中,操作數(shù)可以為通用寄存器或立即數(shù)。域用于設置程序狀態(tài)中需要操作的位,位的程序狀態(tài)寄存器可分為個域: 指令MSR ;傳送R0的內(nèi)容到MSR ;傳送R0的內(nèi)容到MSRCPSR_c,R0;傳送R0的內(nèi)容到SPSR,但僅僅修改CPSR中控制嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群 LDR指LDR指嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群LDR{條件}目的寄存器,<器地址LDRLDRLDRLDRR0,[R1,R2] R0,[R1,#8]將器地址為R1+8的字數(shù)據(jù)讀入寄存器R0,并將新地址R1+8寫R1LDR將器地址為R1的字數(shù)據(jù)讀入寄存器R0,并將新地址R1+R2寫R1LDR將器地址為R1+R2×4的字數(shù)據(jù)讀入寄存器R0,并將新地址R2×4寫入R1LDR將器地址為R1的字數(shù)據(jù)讀入寄存器R0,并將新地址R1+R2×4寫R1嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群LDRBLDRBLDRB指令的格式LDR{條件}B目的寄存器,<器地址LDRB指令用于從器中將一個位的字節(jié)數(shù)據(jù)傳送到目的寄存器中,同時將寄存器的高位。該指令通常用于從器中8位的字節(jié)數(shù)據(jù)到通用寄存器,然后對數(shù)據(jù)進行處理。指令示 寄存器R0,并將R0的高24位。 ;將器地址為R1+8的字節(jié)數(shù)讀入寄存器R0,并將R0的高24位嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群LDRHLDRHLDR{條件}H目的寄存器,<器地址的寄存器中,同時將寄存器的高16位。該指令通常用 據(jù)讀入寄存器R0,并將R0的高16位。 嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群STRSTRSTR{條件}源寄存器,<器地址儲器 嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群RM微處理器所支持的批量數(shù)據(jù)加載/指令可以一次在一片連續(xù)的器單元和多個寄存器之間傳送數(shù)據(jù),批量加載指令用于將一片連續(xù)的存儲器中的數(shù)據(jù)傳送到多個寄存器,批量數(shù)據(jù)指令則完成相反的操作。常用的加載指令如下: 批量數(shù)據(jù)加載指 批量數(shù)據(jù)指嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群LDMLDMLDM指令的格式為LDM{條件}{類型}基址寄存器{!},寄存器列表{∧}LDM指LDM指嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群其中,{類型}為以下幾種情 DA每次傳送后地址減DB每次傳送前地址減 EDFAEA指令STMFDR13!,{R0,R4-將寄存器列表中的寄存器(R0,R4到R12,LR)存LDMFDR13!,{R0,R4-將堆棧內(nèi)容恢復到寄存器(R0,R4到R12,LR)嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群SWP字數(shù)據(jù)交換指SWPB字節(jié)數(shù)據(jù)交換指嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群SWP指令的格式為SWP{條件}目的寄存器,源寄存器1,[源寄存器W指令用于將源寄存器所指向的器中的字數(shù)據(jù)傳送到目的寄存器中,同時將源寄存器中的字數(shù)據(jù)傳送到源寄存器所指向的器中。顯然,當源寄存器和目的寄存器為同一個寄存器時,指令交換該寄存器和器的內(nèi)容。指令示 ;該指令完成將R1所指的器中的字數(shù)據(jù)與R0中的字數(shù)據(jù)交換嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群集中單獨的指令使用,它只能作為指令格式中是一LSLASLLSRASRROR嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群操作 R0,R1,將R1中的內(nèi)容左移兩位后傳送到R0中嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群通用寄存器,ROR操作 R0,R1,嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群ARM微處理器所支持的異常指令有如兩條 軟件中斷指 斷點中斷指嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群SWI{條件24位的立即數(shù) 該指令調(diào)用操作系統(tǒng)編號位02的系統(tǒng)例程嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群ARMARM指令ARM偽指C/C++混合編ADS集成開發(fā)環(huán)嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群在RM匯編語言程序里,有一些特殊指令助記偽指令,他們所完成的操作稱為偽操作。旦匯編結束,偽指令的使命就完成。在ARM的匯編程序中,有如下幾種偽指嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群 符號定義偽指令用于定義RM匯編程序中的變量、對變量賦值以及定義寄存器的別名常見的符號定義偽指令有如下幾種:定義全局變量的GBLA、GBLL和定義局部變量的LCLA、LCLL和對變量賦值的SETA、SETL、為通用寄存器列表定義名稱的嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群語法格式GBLA(GBLL或GBLS)全局變量GBLA、GBLL和GBLS偽指令用于定義一個ARM程序中的局變量,并將其初始化。其GBLA:定義一個全局的數(shù)字變量,并初始化為GBLL:定義一個全局的邏輯變量,并初始化為F(假GBLS:定義一個全局的字符串變量,并初始化為以上三條偽指令用于定義全局變量,因此在整個程序范圍內(nèi)量名必須唯一 嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群RLISTRLIST名 {寄存器列表RLIT指令定義的列表名稱可在RM指令LM/T中使用。在LDM/TM指令中,列表中的寄存器次序為根據(jù)寄存器的編號由低到高,而與列表中的寄存器排列次序無關。使用示 嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群數(shù)據(jù)定義偽指令一般用于為特定的數(shù)據(jù)分配單元,同時可完成已分配單元的初始化。常見的數(shù)據(jù)定義偽指令有如下幾種:嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群DCBDCB語法格標 表達StrDCB“Thisisatest!”;分配一片連節(jié)嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群SPACESPACE 標 表達為0。其中,表達式為要分配的字節(jié)數(shù)。SPACE也可 SPACE100;分配連續(xù)字節(jié)的單元并初始化為0嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群MAPMAP 嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群FILED指FILED指標 表達個數(shù)據(jù)域指定一個標號供其他的指令。 ;定義結構化內(nèi)存表首地址的值為0x100A;定義A的長度為16字節(jié),位置為B;定義B的長度為32字節(jié),位置為S;定義S的長度為256字節(jié),位置為嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群IF、ELSE、WHILE、MACRO、嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群語法格式IF邏輯表指令序列

指令序列I、LS、NDIF偽指令能根據(jù)條件的成立與否決定是否執(zhí)行某個指令序列。當I后面的邏輯表達式為真,則執(zhí)行指令序列,否則執(zhí)行指令序列。其中,LE及指令序列可以沒有。I、L、NDIF偽指令可以嵌套使用。 ;一個全局的邏輯變量,變量名為 Test=WHILE指WHILE指嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群 GBLACounter ;一個全局的數(shù)學變量,變量名為Counter Counter<嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群CODE16、EXPORT(或GET(或嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群AREAAREA 段名屬性1,屬性RE偽指令用于定義一個代碼段或數(shù)據(jù)段。其中,段名若以數(shù)字開頭,則該段名需用“括起來,如tt。屬性字段表示該代碼段(或數(shù)據(jù)段)的相關屬性,多個屬性用逗號分隔。常用的屬性如下:CODE屬性:用于定義代碼段,默認為READONLYDATA屬性:用于定義數(shù)據(jù)段,默認為READWRITEREADWRITE屬性:指定本段為可讀可寫,數(shù)據(jù)段的默認屬為READWRITEAREA指AREA指嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群 嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群ALIGNALIGN語法格式ALIGN{表達式{,偏移量LIGN偽指令可通過添加填充字節(jié)的方式,使當前位置滿足一定的對其方式。其中,表達式的值用于指定對齊方式,可能的取值為的冪,如、、、、等。若未指定表達式,則將當前位置對齊到下一個字的位置。偏移量也為一個數(shù)字表達式,若使用該字段,則當前位置的對齊方式為:的表達式次冪+偏移量。使用示 指定后面的指令為8字節(jié)對CODE16指CODE16指嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群CODE16(或AREACODE32;通知編譯器其后的指令為32位的ARM CODE16;通知編譯器其后的指令為16位的Thumb 嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群ENTRYENTRY有多個ENTRY時,程序的真正點由器指定),有) 嵌入式Linux技術嵌入式Linux技術咨嵌入式Linux學習交號群EQUEQU語法格式名 表達式{,類型EQ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論