



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、簡答題什么是嵌入式操作系統(tǒng)?答:嵌入式系統(tǒng)是以應用為中心,以計算機技術為基礎,軟 /硬件可裁減,功能??煽啃裕杀?,體積,功耗要求嚴格的專用計算機系統(tǒng)。與通用計算機相比,嵌入式系統(tǒng)有哪些特點?答:( 1)嵌入式系統(tǒng)通常是面向特定應用的;( 2)嵌入式系統(tǒng)是將計算機技術,半導體技術和電子技術與各行各業(yè)的具體應用相結合的后的產物,是一門綜合技術學科;( 3).嵌入式系統(tǒng)和具體應用有機的結合在一起, 它的升級換代也是和具體產品同步進行的,因此嵌入式產品一旦進入市場,就有較長的生命周期;( 4) .為了提高執(zhí)行速度和可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲器芯片或單片機本身中,而不是存儲于磁盤等載體
2、中;( 5) .嵌入式系統(tǒng)本身不具有自主開發(fā)能力,即使設計完成以后用戶通常也不能對其中的程序功能進行修改,必須有一套開發(fā)工具和環(huán)境才能進行開發(fā)。ARM 處理器有幾種尋址方式,說明各種尋址的方式。答:立即尋址:操作數(shù)直接放在指令中。例如:ADDR0, R0, 0x3f; R0R0 0x3f寄存器尋址:操作數(shù)放在寄存器中。例如:ADDR0, R1, R2; R0R1 R2寄存器間接尋址:操作數(shù)在內存,以寄存器中的值作為操作數(shù)的地址。例如: LDRR0, R1; R0 R1基址加偏移量尋址 (基址變址尋址) :基址寄存器的內容與指令中的偏移量相加形成操作數(shù)的有效地址例如: LDR R0 , R1 ,
3、 4; R0 R1 4LDR R0 , R1 , R2; R0 R1 R2多寄存器尋址:一條指令可以完成多個寄存器值的傳送。例如:LDMIA R0 , R1 , R2, R3, R4; R1 R0 ; R2 R0 4 ; R3 R0 8; R4 R012堆棧尋址:堆棧是一種數(shù)據結構,按先進后出(First In Last Out ,F(xiàn)ILO )的方式工作,使用一個稱作堆棧指針的專用寄存器指示當前的操作位置,堆棧指針總是指向棧頂。例如: STMFDR13! , R0 , R4-R12, LRLDMFDR13!, R0 , R4-R12,PC舉例介紹嵌入式處理器有哪幾類?答: 1.嵌入式微處理器(
4、Embedded Microprocessor Unit,EMPU);2.嵌入式微控制器; ( Embedded Microcontroller Unit,EMCU)1 /163.嵌入式 DSP 處理器( Embedded Digital Signal Processor,EDSP );4.嵌入式片上系統(tǒng)(Embedded System on Chip,EsoC );什么是立即數(shù)?請簡要描述立即數(shù)在使用時有什么注意要點。立即數(shù),主要是指尋址時直接在指令中出現(xiàn)的數(shù),在使用時注意(1)立即數(shù)前需要加#( 2)ARM 指令只有32 位長,立即數(shù)在指令中占12 位存儲空間, ARM 用這 12 位空間
5、 8 位表示有效數(shù)字基數(shù)B ,4 位表示譯為的數(shù)M ,按照把B 循環(huán)右移M*2 位,構造成一個新的32位的數(shù),其它位補0,所以在使用立即數(shù)時,要注意其是否合法。請問 BL 指令跳轉時LR 寄存器保存的是什么內容?并請簡述原因。BL 跳轉時 ,LR 中保存的是執(zhí)行BL 跳轉指令的下一條指令的地址,考慮流水線的情況,即當前的 PC-4。 LR 用來在需要返回程序時從LR 中還原程序執(zhí)行的位置繼續(xù)執(zhí)行。ARM 內核有多少個寄存器,請列舉出這些寄存器的名字和數(shù)量。ARM 有 37 個寄存器,( 1)未分組寄存器:R0-R7 ,共 8 個;( 2)分組寄存器R8-R14,其中FIQ 模式下有單獨的一組R
6、8-R12 共 5 個,另外 6 種模式共用一組R8-R12,共 5 個, USR 和SYS 模式共用一組R13-R14,共 2 個,另外5 種模式下各有獨自的一組R13-R14 ,共 10 個;( 3)程序計數(shù)器 PC 即 R15 寄存器,共 1 個;( 4)狀態(tài)寄存器 CPSR,和 5 個備份狀態(tài)寄存器 SPSR,共 6 個; ARM 總計 37 個寄存器。ARM 通用寄存器中,有 3 個寄存器有特殊功能和作用,請寫出它們的名字和作用。(6分)R13:SP 棧指針寄存器,用來保存程序執(zhí)行時的棧指針位置;R14:LR 返回鏈接寄存器,用來保存程序執(zhí)行BL 指令或模式切換時的返回原程序繼續(xù)執(zhí)行
7、的地址;R15:PC 程序計數(shù)器,保存程序執(zhí)行的當前地址。ARM 的 CPSR 寄存器的位定義如圖所示,試簡述各位的功能。(8 分)31 3029 28 27876543210N ZC V保留IFTM4-0標志位含義N N=1 表示運算的結果為負數(shù);N=0 表示運算的結果為正數(shù)或零Z Z=1 表示運算的結果為零; Z=0 表示運算的結果為非零C C=1 表示有進位, C=0 表示沒有進位 V V=1表示符號位溢出, V=0 表示結果沒有溢出 Q 在 ARM vTE/J架構支持,指示DSP 指令是否溢出J 僅 ARM 5TE/J架構支持, J = 1 表示處理器處于Jazelle 狀態(tài) I I=
8、1 表示禁止 IRQ F F=1 表示禁止 FIQT 僅 ARM xT 架構支持, T = 0表示處理器處于ARM 狀態(tài), T=1 表示處理器處于Thumb 狀態(tài)什么是偽指令和偽操作?在ARM 匯編中有哪幾種偽指令?答:在ARM匯編語言程序中有些特殊助記符,這些助記符與一般指令的助記符的不同之處在于沒有相對應的操作碼或者機器碼,通常稱這些特殊指令助記符偽指令,他們多完成的操作成為偽操作;2 /16在 ARM 匯編中,有如下幾種偽指令:(1)符號定義偽指令;(2)數(shù)據定義偽指令;(3)匯編控制偽指令;(4)信息報告?zhèn)沃噶睿?5)宏指令及其他偽指令。如何定義寄存器列表,試舉一個使用寄存器列表的例子
9、,要求實現(xiàn)4 個字的內存復制。答:AREAEXAMPLE1,CODE,READONLYENTRYLDRR0,=0XFF; 把地址 0XFF 賦給 R0LDRR5,=0X0F;把地址 0X0F 賦給 R5STARTPBLOCKRLISTR1-R4;把 R1-R4 定義為 PBLOCKLDMIAR0,PBLOCK;把 R0 為首地址的內存4 個字單元裝載至R1 到 R4 中STMIAR5,PBLOCK; 把 R1 到 R4 的值依次存至R5 為首地址的內存字單元STOPBSTOP; 死循環(huán)END如何定義一個宏,宏與子程序的區(qū)別是什么?答:宏的格式為:MARCO 和 MEND$標號 宏名參數(shù),參數(shù)2
10、 .指令序列MENDMARCO 表示一個宏定義的開始,MEND 表示一個宏的結束,MARCO 和 MEND 前呼后應可以將一段代碼定義為一個整體,又稱宏,然后在程序中就可以在程序中通過宏的名稱及參數(shù)調用該段代碼。宏指令可以重復使用,這一點的使用方式與子程序有些相似,子程序可以節(jié)省存儲空間,提供模塊化的程序設計。但使用子程序機構時需要保存/恢復現(xiàn)場,從而增加了系統(tǒng)的開銷,因此,在代碼傳遞的參數(shù)較多并且比較短時,可以使用宏代替子程序,宏在被調用的地方展開。3 /16ARM 匯編中如何定義一個段,段有幾種屬性?答: AREA 用于定義一個代碼段,數(shù)據段,或者特定屬性的段。段的幾種屬性如下:READO
11、NL Y 表示只讀屬性;READWRITE表示本段可讀寫;CODE 定義代碼段;DATA 定義數(shù)據段;ALIGN= 表達式的對齊方式為2 的表達式次方; ;COMMON :定義一個通用段,這個段不包含用戶代碼和數(shù)據。在一個匯編源文件中如何包含另一個文件中的內容?答:通常可以使用GET/INCLUDE指令,在某源文件中定義一些宏指令,用MAP和FIELD 定義結構化數(shù)據結構類型,用EQU 定義常量的符號名稱,然后用GET/INCLUDE將這個源文件包含到其他源文件中。1.ARM7TDMI采用了幾級流水線工作方式,簡要說明。答:三級1、取指令2、譯碼3、執(zhí)行2.ARM9 采用了幾級流水線工作方式,
12、簡要說明。答:五級流水線工作方式,1.取指 2.指令譯碼3.執(zhí)行 4.數(shù)據存儲訪問5.寫寄存器3.哈佛體系結構和馮諾依曼體系結構有何不同。答:哈佛體系結構的兩套地址總線和數(shù)據總線是分開的,馮諾依曼體系結構是復用的。1. 簡述 ARM 發(fā)生異常時, ARM 核心會自動做哪些事情?從異常返回時,我們要做哪些事情?當異常產生時 , ARM core:拷貝CPSR 到 SPSR_<mode>設置適當?shù)腃PSR 位:改變處理器狀態(tài)進入ARM狀態(tài)改變處理器模式進入相應的異常模式設置中斷禁止位禁止相應中斷(如果需要 )保存返回地址到LR_<mode>設置PC 為相應的異常向量返回時
13、, 異常處理需要:從 SPSR_<mode>恢復 CPSR4 /16從 LR_<mode> 恢復 PCNote: 這些操作只能在ARM態(tài)執(zhí)行 .2. 用 ARM 匯編指令寫出實現(xiàn) 64 位加法和 64 位減法的代碼段,使用的寄存器請自行分配。假定低 32 位數(shù)存放在 r0 和 r1 里面,高 32 位數(shù)存放在 r2 和 r3 里面。加法:ADDS r0, r0, r1/加 S 是因為要讓這個操作影響標志位ADC r2, r2, r3/ADC 是帶進位的加法,如果上一條指令產生進位則一起加進來減法:SUBS r0, r0, r1/加 S 是因為要讓這個操作影響標志位SBC
14、r2, r2, r3/ SBC 是帶進位的減法指令3. 請列舉 ARM 處理器的模式和異常,并說明各個發(fā)生異常時ARM 處理器所處的模式異常:ResetData AbortFIQIRQPrefetch AbortSWIUndefined instruction處理器模式User : 非特權模式,大部分任務執(zhí)行在這種模式FIQ :當一個高優(yōu)先級(fast)中斷產生時將會進入這種模式IRQ :當一個低優(yōu)先級(normal) 中斷產生時將會進入這種模式Supervisor:當復位或軟中斷指令執(zhí)行時將會進入這種模式Abort :當存取異常時將會進入這種模式Undef :當執(zhí)行未定義指令時會進入這種模式
15、System : 使用和 User 模式相同寄存器集的特權模式4. FIQ 的什么特點使得它處理的速度比IRQ 快?1) FIQ 優(yōu)先級比IRQ 高,不會被中斷2) FIQ 有自己的專屬寄存器:r8r12,不用對通用寄存器入棧保護,可以加快速度3) FIQ 位于異常向量表的末尾0x1c,故無需跳轉,可以在這里直接放置異常處理函數(shù)5. 什么指令可以放在中斷向量表?跳轉指令,給 PC 賦值的指令B ,LDR , MOV6. ARM 處理器中斷向量表位于存儲器的什么位置?5 /16默認: 0x0也可以配置成:0Xffff00007. 下列 ARM 指令將做什么 ? a) LDRH r0,r1,#6b
16、) LDR r0, =0x999a:將 r1 寄存器的值加上6,然后把以這個值為地址的內存單元里的值取半字(低16 位)賦給 r0b:將立即數(shù)0x999 賦給 r0,注意這是一個偽指令8. SWP 指令的優(yōu)勢是什么 ?用來實現(xiàn)什么功能?功能:在寄存器和存儲器之間,由一次存儲器讀和一次存儲器寫組成的原子操作。完成一個字節(jié)或字的交換??梢杂脕韺崿F(xiàn)信號量9專業(yè)名詞解釋RISC(Reduce Instruct Set Computer );IP( IntellectualProperty);ISR(Interrupt Servers Routine)JTAG(Join Test Active Grou
17、p)IDE(Integrate Development Environment)RTOS(實時操作系統(tǒng)) ;CISC (復雜指令集) ;Kernel( 內核 )Scheduler(調度)non-preemptive( 非搶先式 )初始化代碼直接對ARM 微處理器內核及硬件控制器編程,多采用匯編語言編程,初始化代碼一般應包含如下典型任務:( 1)定義程序入口點( 2)設置異常向量;( 3)初始化存儲器系統(tǒng);( 4)初始化堆棧指針寄存器;( 5)初始化臨界 I/O 設備;( 6)初始化 C 代碼的運行環(huán)境;( 7)改變處理器的運行模式和狀態(tài);( 8)使能中斷;( 9)進入 C 代碼運行6 /16選
18、擇題1. ARM屬于 RISC 架構2. ARM指令集是32 位寬, Thumb 指令集是 16位寬的。3. ARM指令集是4 字節(jié)對齊, Thumb 指令集是2 字節(jié)對齊的4. 復位后, ARM 處理器處于 SVC 模式, ARM 狀態(tài)5. ARM 處理器總共 37 個寄存器, System 模式下使用 17 個寄存器, SVC 模式下使用 18 個寄存器。6. ARM 處理器中優(yōu)先級別最高的異常為RESET , FIQ,IRQ 異常可以用來相應中斷7. ARM 數(shù)據處理指令中有效的立即數(shù)是(ACEGH)A 0X00AB0000B 0X0000FFFFC 0XF000000FD 0X0800
19、0012E 0X00001F80F 0XFFFFFFFFG 0H 0XFF0000008. ATPCS 規(guī)定中,推薦子函數(shù)參數(shù)最大為4 個9. ATPCS 規(guī)定中,棧是滿減10. 在 ARM 匯編編程,寄存器有多個別名,通常PC 是指 R15,LR 是指 R14,SP 是指 R1311. CPSR 寄存器中反映處理器狀態(tài)的位是T 位12. 下面屬于 ARM 子程序調用指令的是 BL13. ARM7 屬于馮 .諾依曼結構, ARM9 屬于哈佛結構。14. ARM7 是 3 級流水線, ARM9 是 5 級流水線。15. ARM 中可以訪問狀態(tài)寄存器的指令是MRS ,能夠訪問內存的指令是 LDR1
20、6. 下面哪種操作系統(tǒng)最方便移植到嵌入式設備中(D )A DOSB UNIXC WINDOWS XPD LINUX17. 以下哪項關于SRAM 和 DRAM 的區(qū)別是不對(A )(A) SRAM比 DRAM 慢( B) SRAM 比 DRAM 耗電多(C) DRAM存儲密度比SRAM 高得多( D) DRM 需要周期性刷新18. 下面哪種嵌入式操作系統(tǒng)很少用于手機終端設備上(CE)(A) Symbian(B ) WinCE(C) uc/os(D ) linux(E) VxWorks19. S3C2410 采用的是ARM920T 核心20. 下面哪點不是嵌入式操作系統(tǒng)的特點(C)A.內核精簡B.
21、 專用性強C. 功能強大D. 高實時性21. NAND FLASH和 NOR FLASH 的敘述正確的是( D)A. NOR 的讀速度比NAND 稍慢一些B. NAND的寫入速度比NOR 慢很多C. NAND 的擦除速度遠比NOR 的慢D.大多數(shù)寫入操作需要先進行擦除操作22. MMU 的作用有( AB )A內存保護B地址轉換C 加快存取速度D 安全保密E 內存分配23. 以下屬于 DMA 特點的有(BC )7 /16A占用 CPUB占用總線C 不占用 CPU D 不占用總線24.以下哪種方式不屬于文件系統(tǒng)的格式(B)(A) FAT( B) DOS(C) NTFS(D ) Ext1.在 ARM
22、 體系結構中,要從主動用戶模式(User)切換到超級用戶模式( Supervisor ),采用何種方法?先修改程序狀態(tài)備份寄存器(SPSR)到對應的模式,再更新CPU 狀態(tài)2.嵌入式系統(tǒng)加電或復位后,所有的CPU 通常都從某個由CPU 制造商預先安排的地址上取指令。例如:對于 S3C2410 來說, Boot Loader 會映射到0x00000000 地址處。3.CPSR 中的低 8 位稱為控制位,下列不屬于控制位的是【A 】。A 、 NB 、IC、FD、 T4.ARM 中可以訪問狀態(tài)寄存器的指令是MRS, 能夠訪問內存的指令是LDR 。5.下列條件碼中表示不相等的是NE 。EQ 相等NE
23、不相等CS/HS無符號數(shù)大于或等于CC/LO無符號數(shù)小于MI負數(shù)PL正數(shù)或零VS溢出VC沒有溢出HI無符號數(shù)大于LS無符號數(shù)小于或等于GE 有符號數(shù)大于或等于LT有符號數(shù)小于GT有符號數(shù)大于LE有符號數(shù)小于或等于AL任何無條件執(zhí)行(指令默認條件 )NV任何從不執(zhí)行 (不要使用 )6.CPSR 中的低 8 位稱為控制位,其中I 位等于 1 表示禁止IRQ 中斷。7.ARM 微處理器支持7 種工作模式。其中,除用戶模式之外的其余6 種稱為特權模式,在這6 種之中,除系統(tǒng)模式之外的其余5 種又稱為異常模式。8.下列 ARM 指令中,可用于滿遞增堆棧操作的是STMIB 。9.ARM 偽指令中,可用于大
24、范圍地址讀取的是LDR 。10.同 CISC 相比,下面哪一項不屬于RISC 處理器的特征。 【 D】A 、采用固定長度的指令格式,指令規(guī)整、簡單、基本尋址方式有2 3 種。B、減少指令數(shù)和尋址方式,使控制部件簡化,加快執(zhí)行速度。C、數(shù)據處理指令只對寄存器進行操作,只有加載/ 存儲指令可以訪問存儲器,以提高指令的執(zhí)行效率,同時簡化處理器的設計。D、 RISC 處理器都采用哈佛結構11.以下敘述中,不符合RISC 指令系統(tǒng)特點的是【B】。A 、 指令長度固定,指令種類少B、 尋址方式種類豐富,指令功能盡量增強C、 設置大量通用寄存器,訪問存儲器指令簡單8 /16D、 選取使用頻率較高的一些簡單指
25、令12.下面關于ARM 處理器的體系結構描述哪一個是錯誤的?!?B 】A 、三地址指令格式B、所有的指令都是多周期執(zhí)行C、指令長度固定D、 Load-Store 結構1.相對于 ARM 指令集, Thumb 指令集的特點是【D 】。A 、指令執(zhí)行速度快B、 16 位指令集,可以得到密度更高的代碼,對于需要嚴格控制成本的設計非常有意義C、Thumb 模式有自己獨立的寄存器D、 16 位指令集,代碼密度高,加密性能好2.在 ARM 寄存器結構中,棧指針使用R13 寄存器。3.32 位體系結構的ARM 處理器有7 種不同的處理器工作模式,和 6 個主要用來標識CPU 工作狀態(tài)和程序運行狀態(tài)的狀態(tài)寄存
26、器。4.在下列 ARM 處理器的各種模式中,只有用戶模式不可以自由地改變處理器的工作模式。5.在 ARM 的匯編程序中,ADR 、 ADRL 、 LDR 、 NOP 等被稱為偽指令。填空題1常見的 ARM 處理器內核有ARM7 、 ARM9 和【 ARM11 】等。2按總線所傳送的信息類型,總線分為【地址總線】、【數(shù)據總線】和【控制總線】 。3 GPIO 的中文全稱是【 通用輸入 /輸出口 】。4 ARM 處理器有兩種狀態(tài),分別是【ARM 】和【 Thumb 】。5.計算機結構分為【馮 ·諾依曼】結構和【哈佛】結構。6.ARM 處理器支持的數(shù)據類型中,字節(jié)為【8】位、半字為【 16】
27、位、字為【 32】位。7.ARM 體系結構版本中 V 【 4】版架構是目前應用最廣的ARM 體系架構, ARM7 、【ARM9 】都采用該架構。8.常用的嵌入式操作系統(tǒng)有【嵌入式Linux 】、【 VxWords 】等。9.ARM 嵌入式系統(tǒng)主要由【嵌入式硬件】、【嵌入式軟件】和【開發(fā)工具】構成。10.S3C2410 支持兩種引導方式,分別是【Nor-Flash 】啟動方式、【 Nand-Flash 】啟動方式。11.一個嵌入式系統(tǒng)由 3 部分組成,分別是【嵌入式硬件】、【嵌入式軟件】和【開發(fā)工具】 。判斷題 :1、所有的電子設備都屬于嵌入式設備。(F)2、馮諾依曼體系將被哈佛總線所取代。(F
28、)3、嵌入式開發(fā)不需要硬件支持。(F)4、移植操作系統(tǒng)時需要修改操作系統(tǒng)中與處理器直接相關的程序。F5、 USB2.0 的最大通信速率為12MB 。(F)6、嵌入式開發(fā)需要專門的軟件和硬件設備。(T)編程題;例三: ADR 偽指令AREAadrlabel1, CODE,READONL Y9 /16ENTRYstartBLfuncB.LTORGfuncADRR0,startADRR1,DataArea;ADRR2,DataArea+4300ADRLR3,DataArea+4300MOVPC,LRDataAreaSPACE8000END;例五:利用跳轉表實現(xiàn)程序跳轉AREAJump,CODE, R
29、EADONL Ynum EQU2ENTRYstartMOVR0, #0MOVR1, #3MOVR2, #2BLarithfuncB.arithfuncCMPR0, #numMOVHSPC, LRADRR3, JumpTableLDRPC, R3,R0,LSL #2JumpTableDCDDoAddDCDDoSubDoAddADDR0, R1,R2MOVPC, LRDoSubSUB R0,R1, R2MOVPC, LREND3、 存儲器從0x400000 開始的 100 個單元中存放著ASCII 碼,編寫程序,將其所有的小寫字母轉換成大寫字母,對其它的ASCII 碼不做變換。MOVR0 , #0
30、x40000010/ 16MOVR1, #0LPLDRBR2, R0,R1CMPR2, #0x61BLONEXTCMPR2, #0x7B;0x61-0x7A為小寫字母的 ASCSUBLOR2, R2, #0x20STRBLO R2 , R0,R1NEXTADDR1,R1, #1CMPR1, #100BNELP8、 編寫一簡單ARM 匯編程序段,實現(xiàn) 1+2+ +100 的運算。MOVR2, #100MOVR1, #0LOOPADDR1, R1, R2; R1 中為累加和SUBSR2, R2, #1; R2 控制循環(huán)BNELOOP4、 編寫程序,比較存儲器中0x400000 和 0x400004
31、 兩無符號字數(shù)據的大小,并且將比較結果存于 0x400008的字中,若兩數(shù)相等其結果記為0,若前者大于后者其結果記為1,若前者小于后者其結果記為 -1。MOVR0, #0x400000LDRR1, R0;取第1 個數(shù)LDRR2, R0 , #4;取第2 個數(shù)CMPR1, R2;兩個數(shù)相比較MOVHIR1, #1;R1 大MOVLO R1 , # -1;R1 小MOVEQ R1 , #0;兩個數(shù)相等STRR1, R0 , #87、 編寫一程序,存儲器中從0x400200 開始有一個 64 位數(shù)。( 1)將取反,再存回原處; (2)求其補碼,存放到0x400208 處 。LDRR0, =0x400
32、200LDRR2, =0xFFFFFFFFLDRR1, R0;取低32 位數(shù)EORR1, R1, R2;取反STRR1, R0;存低 32 位反碼ADDSR1, R1, #1;又加1 為求補STRR1, R0 , #8;存低 32 位補碼LDRR1, R0 , #4;取高32 位數(shù)EORR1, R1, R2;取反STRR1, R0 , #4;存高 32 位反碼ADCR1, R1, #0;高 32 位求補STRR1, R0 , #12;存高 32 位補碼11/16例七:匯編語言與C/C+ 的混和編程項目名: Example7.mcp文件名: Example7_asm.s文件名: Example7
33、_c.cAREAAsm_C,CODE,READONL YENTRYLDRSP,=0x4000IMPORT _mainBL_mainB.END#include <stdio.h>int main()printf("Hello worldn");return 0;1、寫一條 ARM指令,分別完成下列操作:a) r0= 16MOVR0,#16b) r0= r1 / 16 ( 帶符號的數(shù)字 )MOVR0,R1, ASR,#4c) r1 = r2 * 3MULR1,R2,#3d) r0= -r0RSB R0, R0, #02、寫幾條 ARM指令,使能IRQ 中斷MRSR0
34、, CPSRBIC R0 , R0, #0x80MSRSPSR,R03、編寫程序, 將存儲器從0x400000 開始的 200 個字節(jié)的數(shù)據, 傳送到 0x400800 開始的區(qū)域。AREA copy,CODE,READONLYENTRYSTARTMOVR0, #0x400000LDRR1,=0x400800MOVR7,#200LOOPLDRBR2,R0,#1STRBR2,R1,#1SUBSR7,R7, #1BNELOOPSTOP12/ 16B STOPEND4、編寫一程序,查找存儲器從 0x400000 開始的 100 個字中為 0 的數(shù)目,將其結果存到 0x400190 中。AREA ze
35、ro,CODE,READONLYENTRYSTARTMOVR0,#0x400000MOV R1, #0MOVR7,#100LOOPLDRR2,R0,#4CMPR2,#0BNENEXTADDR1,R1,#1NEXTSUBSR7,R7,#1BNELOOPSTRR1,R0END5、用匯編語言編寫程序讀取存儲器0x40003100 地址上的數(shù)據,將數(shù)據加1,若結果小于 10則使用 STR 指令把結果寫回原地址,若結果大于等于10,則把0 寫回原地址。答:COUNTEQU0x40003100; 定義一個變量,地址為0x40003100AREAExample2,CODE,READONL Y; 聲明代碼段
36、Example2ENTRY; 標識程序入口CODE32; 聲明 32位ARM指令STARTLDRR1,=COUNT; R1 <= COUNTMOVR0,#0;R0<=0STRR0,R1; R1 <= R0 ,即設置 COUNT 為 0LOOP LDRR1,=COUNTLDRR0,R1; R0 <= R1ADDR0,R0,#1;R0<=R0+1CMPR0,#10; R0 與 10 比較,影響條件碼標志MOVHSR0,#0; 若 R0 大于等于10,則此指令執(zhí)行, R0 <= 0STRR0,R1; R1 <= R0 ,即保存 COUNTB LOOP END
37、7、如何實現(xiàn)128 位數(shù)的減法,請舉例說明。AREAEXAMPLE2,CODE,READONLYENTRY13/ 16STARTSUBSR5,R5,R9SBCSR4,R4,R8SBCSR3,R3,R7SBCSR2,R2,R6STOPBSTOPEND8、將存儲器中起始地址地址0X10 處的 4 個字數(shù)據移動到地址0X20 處。AREAEXAMPLE2,CODE,READONLYENTRYLDRR0,=0X10; 把地址 0X10 賦給 R0LDRR5,=0X20;把地址 0X20 賦給 R5STARTLDMIAR0,R1-R4;把 R0 為首地址的內存單元中的值依次賦給,; R1 到 R4,每次賦完一次值,R0 自動加 1STMIAR5,R1-R4;把 R1 到 R4 的值依次賦給以R5 為首地址的內存單元中,R5 每次自動加1STOPBSTOP;死循環(huán)END參考 CPSR 寄存器中各標志位的含義,使處理器處于系統(tǒng)模式。AREAEXAMPLE2,CODE,READONLYENTRYSTARTMOVR0,#0X1F; 給 R0 賦值, 2 進制為 11111MSRCPSR_c,R0;把 CPSR 的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 墊資服務框架合同
- 2025年企業(yè)策劃合作方信息保密合同
- 2025年企業(yè)抵押反擔保借款合同范文
- 【正版授權】 ISO/IEC 15045-4-1:2024 EN Information technology - Home Electronic System (HES) gateway - Part 4-1: Structure - Structural class and module requirements
- 標準版銀行貸款合同樣本:個人版
- 賠償合同樣本及解析
- 2025年中小學教育設備采購合同
- 2025年凈水器安裝工程承包合同
- 環(huán)保工程項目總承包合同范本
- 合伙經營合同范本全文
- 二年級下冊數(shù)學計算題400道及答案
- 第6課《飛向藍天的恐龍》兩課時學習任務單部編版四年級語文下冊
- 生產清場管理制度課件
- 小學科學質量分析報告
- 口腔醫(yī)院客服培訓課件
- 04G325吊車軌道聯(lián)結及車擋
- 2024年金城出版社有限公司招聘筆試參考題庫含答案解析
- 皮下注射的并發(fā)癥及預防
- 羅沙司他治療腎性貧血的療效與安全性評價演示稿件
- 混凝土攪拌站有限空間作業(yè)管理制度模版
- 苯板廠應急預案范本
評論
0/150
提交評論