微機原理與嵌入式系統(tǒng)基礎--練習答案1_第1頁
微機原理與嵌入式系統(tǒng)基礎--練習答案1_第2頁
微機原理與嵌入式系統(tǒng)基礎--練習答案1_第3頁
微機原理與嵌入式系統(tǒng)基礎--練習答案1_第4頁
微機原理與嵌入式系統(tǒng)基礎--練習答案1_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、練習題(首先,在批改作業(yè)的過程中發(fā)現(xiàn)存在大量的抄襲問題,錯誤都是千篇一律,特此警戒)1、簡述馮諾依曼體系結構計算機的要點和工作過程。答:馮諾依曼體系結構計算機的要點:計算機中的信息(程序和數(shù)據)以二進制方式表示。 程序預存儲,機器自動執(zhí)行。計算機由運算器、控制器、存儲器、輸入設備和輸出設備五大部分組成。計算機通過執(zhí)行預存儲在存儲器中的程序來完成預定的運算。程序由計算機的指令序列構成,計算機在處理器的控制下,首先從存儲器讀取一條待執(zhí)行的指令到處理器中,接下來分析這條指令,而后發(fā)出該指令對應的電平脈碼序列,即執(zhí)行該指令。并以此遞歸運行程序。2、簡述計算機各組成部分的功能。答:豊 中央處理單元(CP

2、U):主要由運算器、控制器構成。其中運算器主要用于完成諸如加、減、乘、除等算術運算和左右移位、與、或、非等邏輯運算;控制器主要用于完成機器指令的解析和執(zhí)行,控制運算器進行相應的運算,控制數(shù)據在計算機各組成部分之間傳送,控制計算機各組成 部分有條不紊地協(xié)調工作等。+ 存儲器(Memory )是計算機系統(tǒng)中用來存儲程序和數(shù)據的信息記憶部件。+ 輸入/輸出設備:信息進出計算機的數(shù)據通道。3、何謂總線?計算機中有哪幾類總線?簡述其用途。答:計算機的總線(Bus)就是連接計算機硬件各部件,用于計算機硬件各部件之間信息傳輸?shù)墓?共通道。按照其傳送信號的用途屬性,總線可細分為:地址總線(Address Bu

3、s)、數(shù)據總線(Data Bus)和控制總線(Control Bus)三類。地址總線(A_Bus):專用于在 CPU、存儲器和 I/O 端口間傳送地址信息的信號線。此類信號線傳 送的信息總是從 CPU 到存儲器或 I/O 端口,它是單向信號線。數(shù)據總線(D_Bus):專用于在 CPU、存儲器和 I/O 端口間傳送數(shù)據信息的信號線。此類信號線傳 送的信息可以是從 CPU 到存儲器或 I/O 端口(寫”操作),也可能是從存儲器或I/O 端口到 CPU(讀”操作),它是雙向信號線??刂瓶偩€(C_Bus):專用于 CPU 與其它部件之間傳送控制信息和狀態(tài)信息的信號線。此類信號 線的構成比較復雜,傳送的

4、控制、狀態(tài)信息可以是從CPU 到其它部件,也可能是從其它部件到CPU。此類總線中的某些具體的線是單向的(或從 CPU 到其它部件,或反之),但作為總線來說, 它是雙向信號線。(總線是 ARM 核和外部的接口,是理解 ARM 體系結構的重要環(huán)節(jié),答案中應該說明總線對系統(tǒng)的 影響,以及作為使用者來說應該怎樣操作,應該重點掌握)4、簡述計算機,真值?和 ,機器數(shù)?勺概念。答:各個信息在計算機中的二進制表示形式稱之為機器數(shù)”,機器數(shù)所代表的值含義稱為該機器數(shù)的 真值”。真值”可以是數(shù)值,也可以是字符,甚至是語音或圖象等。5、什么是處理器的主頻?什么是處理器的字長?答:CPU 主頻也叫時鐘頻率,單位是

5、MHz (或 GHz),用來表示處理器的工作頻率。CPU 字長是指運算器的位寬,單位是比特(bit),用于表示 CPU 一次運算可處理的二進制數(shù)據的位度。11、分別假設字長 n=8 , n=16,計算下列十進制數(shù)的補碼:答:序號真值補碼(n=8)補碼(n=16)1560011 1000(0 x38)0000 0000 0011 1000(0 x0038)21150111 0011(0 x73)0000 0000 0111 0011(0 x0073)3-561100 1000(0 xC8)1111 1111 1100 1000 (0 xFFC8)4-1151000 1101(0 x8D)1111

6、 1111 1000 1101 (0 xFFC8)12、假設字長 n=16,寫出下列補碼的真值:答:0000 0100 0010 1001真=0 x0429真=1065 1000 0100 0010 1001真=0 x8429真=-317031111 1111 1111 1111真= 0 xffff 真=-16、 簡述計算機接口在計算機系統(tǒng)中的作用。答: 輸入/輸出接口 ”是用于外設與計算機之間橋接和匹配的專用部件, 式存在。應用于計算機主機與外界的信息交互。通常以集成電路或板卡的形7、 將下列十進制數(shù)分別轉換為十六進制數(shù)和二進制數(shù): 123.85 ; 93.125 ; 23.625 ; 65

7、535答:123.85 = 0 x7B.D99 = 01111011.110110011001b93.125 = 0 x5D.2 = 01011101.001b23.625 = 0 x17.A = 00010111.101b65535 = 0 xFFFF =1111 1111 1111 1111b8、 將下列二進制數(shù)分別轉換為十六進制數(shù)和十進制數(shù): 1100 1101.1b ; 1000 1101.01b ; 11010.011b ; 101 1001 0111 0001b答:1100 1101.1b = 0 xCD.8 = 205.51000 1101.01b = 0 x8D.4 = 141

8、.2511010.011b = 0 x1A.6 = 26.375101 1001 0111 0001b = 0 x5971 = 22897(數(shù)值轉換方面比較簡單,掌握情況來看比較好,4 的錯誤率較高,是由于不認真做造成的)9、 完成下列二進制數(shù)的運算:答: 1010 0101b + 0011 1010 b=11011111b 1100 1011b -0010 0100 b= 10100111b 1000 0101.1b + 0001 1110.11 b=10100100.01b 1010 1101.01b -0100 1001.10b=1100011.11b10、完成下列十六進制數(shù)的運算:答:

9、 0 x39 + 0 x560 x800111 1111 1111 1111真= 0 x7FFF真=3276713、假設運算器的長度 n=16,完成下列補碼運算,觀察運算器內的結果值,觀察CF、DF 和 OF 位的情況;再分別用真值運算驗證,說明補碼結果原因,總結OF 位于與補碼運算溢出的關系。答:補碼運算結果碼真值比對CFDFOF說明0000 0100 0010 1001+1000 0100 0010 10011000 1000 0101 0010(0 x8852)1065+(-31703)=-30638-30638補=0 x8852000運算無溢出1000 0100 0010 1001+1

10、111 1111 1111 11111000 0100 0010 1000(0 x8428)(-31703)+(-1)=-31704-31704補=0 x8428110運算無溢出1111 1111 1111 1111+0111 1111 1111 11110111 1111 1111 1110(0X7FFE)(-1)+32767=3276632766補=0 x7FFE110運算無溢出0111 1111 1111 1111+0000 0000 0000 00011000 0000 0000 0000(0 x8000)32767+1=32768 (超出值域)-32768補=0 x8000011運算

11、有溢出14、什么是 ASCII 編碼?寫出引號內各字符的ASCII 編碼“I Am a Student!。”答:ASCII 編碼-美國標準信息交換標準碼(American Standard Code for Information Interchange,ASCII),統(tǒng)一規(guī)定了常用符號的二進制數(shù)表示方式。計算機中常用ASCII 編碼表示字符信息。I Am a Student!的 ASCII 編碼-略。15、什么是嵌入式系統(tǒng)?有何特點?答:嵌入式系統(tǒng)是以應用為中心,以計算機技術為基礎,并且軟硬件可裁剪,適用于應用系統(tǒng)對功 能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng)。其特點是:它是嵌

12、入到目標對象中的、 軟硬件定制的專用計算機系統(tǒng)。16、舉例在你的身邊常見到的嵌入式系統(tǒng)產品,談一談你對嵌入式系統(tǒng)”的初步理解。答:略。17、簡述嵌入式操作系統(tǒng)的特點。答:微內核、高可靠性、可裁減定制、滿足實時性。18、簡述你對嵌入式操作系統(tǒng)的基本認識,嵌入式操作系統(tǒng)在嵌入式系統(tǒng)開發(fā)中的必要性。 答:略。練習題(第二章基本上是問答題,作業(yè)中存在的問題是,最好用自己的語言來回答問題,如果一味抄書的話, 不能對問題理解透徹)1、何謂計算機體系結構?答:計算機體系結構是對計算機較高層次的抽象,是擺脫具體電路的實現(xiàn)而主要著眼于計算機系統(tǒng) 的邏輯特征、原理特征、結構特征和功能特征的抽象。2、什么是處理器的

13、指令?什么是處理器的指令系統(tǒng)?答:計算機中的“指令”就是CPU 執(zhí)行某種操作的命令,它也是以二進制編碼方式存在,每一條指令都對應著 CPU 要完成的特定操作。一臺計算機中所有機器指令的集合稱為該CPU 的“指令系統(tǒng)”。3、術語指令和語句有何差別?答:指令一般針對處理器而言, 它在物理操作級僅指示處理器完成一個具體操作,是計算機(處理器)編程的最細小的編程描述粒子。語句一般針對高級語言,一般是在算法級、邏輯級描述一個算邏運算;他們在描述程序時具有 不同的描述級別。4、什么是 RISC ?什么是 CISC ?簡述他們的特點與差別。答:RISC 是 Reduced Instruction Set C

14、omputer,精簡指令集計算機的縮寫。它的特點是指令系統(tǒng)精 煉,處理器電路邏輯相對簡單,且能夠以更快的速度執(zhí)行操作。對于負載的功能需要編程實現(xiàn)。CISC 是 Complex Instruction Set Computer,復雜指令集計算機的縮寫。它的特點是指令系統(tǒng)中含有 大量的類似于高級程序設計語言結構的復合功能指令。指令系統(tǒng)龐大,處理器硬件電路的復雜度。5、ARM7 處理器是幾級流水線?在 ARM7 處理器中,“ PC 旨向的是下一條要執(zhí)行的指令”,這句話對嗎?為什么?答:ARM7 處理器是三級流水線。在 ARM7 處理器中,“PC 旨向的是下一條要執(zhí)行的指令”,這句話不對,因為流水線的

15、存在,指令碼即使取送到處理器中也未必被執(zhí)行;應該說“PC 指向的是下一條要取指的指令”。6、ARM7 中的狀態(tài)、模式分別要說明什么問題?答:兩種處理器狀態(tài)”-分別用于支持兩種指令系統(tǒng)。+ ARM 指令系統(tǒng)+ Thumbe 指令系統(tǒng)7 種處理器模式”-分別應用于 7 種場合,具有不同的寄存器資源、權限。7、 ARM 處理器的工作狀態(tài)分為哪二種?ARM 處理器又是怎么定義和標志的?答:ARM 處理器的工作狀態(tài)分為“ ARM 狀態(tài)”和“ Thumbe”狀態(tài)。在“ ARM 狀態(tài)”下,處理器 執(zhí)行 32位的指令碼,在“ Thumbe 狀態(tài)”下,處理器執(zhí)行 16 位的指令碼?!癆RM 狀態(tài)”和“ Thum

16、be” 狀態(tài)下,處理器都是 32 位的處理器。 ARM 處理器中的 CPSR 寄存器的 T_bit (CPSR5)為 1 時, ARM 處理器的當前狀態(tài)為“ ARM 狀態(tài)”;ARM 處理器中的 CPSR 寄存器的 T_bit (CPSR5)為 0 時,ARM 處理器的當前狀態(tài)為“ Thumbe 狀態(tài)”。8、ARM7TDMI 支持哪幾種指令集,各有什么特點?答:ARM7 處理器分別在“ ARM 狀態(tài)”下執(zhí)行 ARM 指令集指令碼,在“ Thumbe 狀態(tài)”下執(zhí)行 Thumbe指令集指令碼。+ ARM 指令集指令豐富、功能強大,Thumbe 指令集指令精簡、功能緊湊;+ ARM 指令集指令碼長都是

17、 32 位,Thumbe 指令集指令碼長都是 16 位;+ ARM 指令集、Thumbe 指令集支持的都是 32 位運算指令。9、ARM7 處理器有哪些工作模式?不同工作模式下CPSR 寄存器的模式位如何設定?列表說明。答:ARM7 處理器有用戶模式(usr)、系統(tǒng)模式(sys)、管理模式(svc)、終止模式(abt)、未定義 指令模式(und)、中斷模式(irq)和快速中斷模式(fiq)共 7 種模式。ARM 處理器使用 CPSR 寄存器的 CPSR 5:0來標示當前當前所處的工作模式,具體對應如下:序號M4:0處理器工作模式10b10000用戶模式(0 x10)(usr )20b10001

18、FIQ 模式(0 x11 )(fiq )30b10010IRQ 模式(0 x12)(irq )40b10011管理模式(0 x13)(svc)50b10111中止模式(0 x17)(abt )60b11011未定義模式(0 x1b)(und )70b11111系統(tǒng)模式(0 x1f)(sys )10、描述 ARM7 處理器的內部寄存器結構,并分別說明R13、R14、R15 寄存器的作用。答:ARM7 處理器的內部寄存器寄存器 類別 奇存器 名各種模式下可見的寄存器用 戶系 統(tǒng)管理終止未定義irqfiq通 用 寄 存器R0R0R1R1R2R2R3R3R4R4R5R5R6R6R7R7R8R8R8 f

19、iqR9R9R9 fiqR10R10R10 fiqR11R11R11 fiqR12R12R12 fiqR13(SP)R13R13 svcR13 abtR13 undR13 irqR13 fiqR14(LR)R14R14 svcR14 abtR14 undR14 irqR14 fiqR15(PC)R15狀態(tài)寄 存器CPSRCPSRSPSR- -SPSR svcSPSR abtSPSR undSPSR irqSPSR fiq其中:R13 被處理器用作處理器堆棧指針SP; ARM 處理器中共有 6 個 R13,分別隸屬于對應的處理器模式。如此,處理器可以同時開辟6 個處理器堆棧,分別服務于對應的處理

20、器模式。R14 被處理器用作連接寄存器LR ; LR 寄存器用于備份 PC,即用于記錄程序的斷點或調用點。ARM處理器中共有 6 個 R14,分別隸屬于對應的處理器模式。R15 被處理器用作指令計數(shù)器 PCo ARM 處理器中只有一個 PC, PC 指向的是下一條要取指的指令。11、什么是堆棧?堆棧有幾種類型,簡述各類型堆棧的進/出棧過程。答:堆棧(Stack)是一種具有“后進先出”(LIFO-Last In First Out )特殊訪問屬性的存儲結構。按照入棧時 SP 的變化方向和 SP 指向單元是否含有堆棧數(shù)據,堆棧共有滿遞增、空遞增、滿遞減和空遞 減四種方式。+滿遞增堆棧入出棧操作:略

21、!+空遞增堆棧入出棧操作:入棧操作過程:SP XXSP SP+1;將入棧數(shù)據寫入到堆棧指針SP 所指單元;遞增調整堆棧指針 SP出棧操作過程:SPJSP-1XX SP;調整堆棧指針 SP;將堆棧指針 SP 所指單元中的數(shù)據彈出+滿遞減堆棧入出棧操作:入棧操作過程:SPJSP-1;調整堆棧指針 SPSPJXX;將入棧數(shù)據寫入到堆棧指針SP 所指單元出棧操作過程:XXJSP ;將堆棧指針 SP 所指單元中的數(shù)據彈出SP- SP+1;調整堆棧指針 SP+空遞減堆棧入出棧操作:12、 什么是字對齊”和半字對齊”數(shù)據存儲?答:“半字”數(shù)據必須存放在存儲器緊鄰的兩個字節(jié)單元,并且首字節(jié)地址必須能被2 整除

22、,這樣存儲的 16bit 數(shù)據稱為半字對齊存儲數(shù)據,16bit 數(shù)據這樣的存儲方式稱為半字對齊存儲?!白帧睌?shù)據必須存放在存儲器緊鄰的4 個字節(jié)單元,并且首字節(jié)地址必須能被4 整除,這樣存儲的32bit 數(shù)據稱為字對齊存儲數(shù)據,32bit 數(shù)據這樣的存儲方式稱為字對齊存儲。13、 簡述程序計數(shù)器(PC)在處理器工作中的作用。答:CPU 總是按照 PC 的指向對指令序列進行取指、譯碼和執(zhí)行,也就是說,最終是PC 決定了程序運行流向。在計算機運行中,處理器依據當前的情況和程序指令自動地修改PC,以實現(xiàn)程序預存儲,計算機自動執(zhí)行。14、 簡述 ARM 處理器中的返回連接寄存器(LR )在處理器工作中的

23、作用。答:在 ARM 處理器中使用 R14 實現(xiàn)對斷點和調用點的記錄,即使用 R14 用作返回鏈接寄存器(LinkRegister,LR)。在硬件上 CPU 自動完成相應返回點的記錄。需要時,可依據 LR 寄存器中的值追溯返回 點。(LR 寄存器的使用時 ARM 匯編的重點和難點,在啟動代碼中大量使用,應該重點掌握)15、 分別簡述 ARM 處理器中的 CPSR、SPSR 在處理器工作中的作用。答:ARM 處理器中只有一個 CPSR 寄存器,被各模式共用,它記錄了處理器當前的狀態(tài)、模式、中 斷屏蔽狀態(tài)以及處理器的運算狀態(tài)標志。ARM 處理器中含有 5 個存儲程序狀態(tài)寄存器SPSR( Saved

24、Program Status Register),他們分另 U 為 SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq,分另 U 隸屬 于 ARM 處理器的 5 種異常模式。當處理器因某種異常發(fā)生而進入到對應的異常模式時,相應模式的 SPSR將自動地備份 CPSR 的原值,將來可使用此 SPSR 中保存的備份值恢復 CPSR。16、 結合 CPSR 的結構,說明其中的 M4:0的作用和 T 位的作用。3130292827876543210NZCV FTM4M3M2M1M0答:M4:0位用于標志處理器的當前模式;T 位用于標志處理器的當前狀態(tài)。17、結合 C

25、PSR 的結構,說明其中的 I 位和 F 位的作用。3130292827876543210N Z CI F | T | M4 M3 | M2 M1 M0答:I 位用于標志處理器對于IRQ 異常的屏蔽狀態(tài);1=1 時,表示處理器屏蔽了IRQ 異常,I=0 時,表示處理器可以響應 IRQ 異常。F 位用于標志處理器對于 FIQ 異常的屏蔽狀態(tài);F=1 時,表示處理器屏蔽了 FIQ 異常,F(xiàn)=0 時,表示處理器可以響應 FIQ 異常。18、簡述 ARM7TDMI 內部有哪些寄存器及特點。答:ARM 微處理器內共有 37 個 32 位的程序可訪問寄存器物理資源,其中31 個通用寄存器,6 個狀態(tài)寄存器

26、。寄存器 類別 寄存器 名各種模式下可見的寄存器用 戶系 統(tǒng)管理終止未定義irqfiq通 用 寄 存器R0R0R1R1R2R2R3R3R4R4R5R5R6R6R7R7R8R8R8 fiqR9R9R9 fiqR10R10R10 fiqR11R11R11 fiqR12R12R12 fiqR13(SP)R13R13 svcR13 abtR13 undR13 irqR13 fiqR14(LR)R14R14 svcR14 abtR14 undR14 irqR14 fiqR15(PC)R15狀態(tài)寄 存器CPSRCPSRSPSRSPSR svcSPSR abtSPSR undSPSR irqSPSR fiq

27、R0R7 :是 7 個模式共用的數(shù)據寄存器;R8R12 : FIQ 模式具有私有的 R8R12,其他 6 種模式共用一套 R8R12;R13、R14:用戶模式和系統(tǒng)模式公用一套R13、R14,其他 5 種模式各自具有私有的R13、R14。R15: 7 個模式共用 R15,用作為程序計數(shù)器寄存器PC;CPSR: 7 個模式共用 CPSR,用作為當前程序狀態(tài)寄存器;SPSR: 5 種異常模式各自具有私有的SPSR。19、 什么是 ARM 處理器的異常? ARM 處理器中有哪幾種異常?答:在 ARM 中,異常是一些事件,這些事件能導致正常的程序執(zhí)行流程被暫時地停止,而進入到該 事件對應的處理器異常模

28、式并對該事件進行處理,這個過程稱作異常響應。ARM 中定義了復位、未定義指令、SWI (軟中斷)、預取指終止、預取數(shù)終止、irq 以及 fiq 等7種異常。20、 分別簡述 ARM7 的 IRQ、FIQ 異常處理過程,說明其異常向量地址。答:發(fā)生 FIQ 異常時,CPU 自動轉移到 0 x0000 001C 地址單元取指執(zhí)行,同時處理器會自動轉換到快中斷模式。發(fā)生 IRQ 異常時,CPU 自動轉移到 0 x0000 0018 地址單元取指執(zhí)行,同時處理器會自動轉 換到 IRQ 中斷模式。IRQ、FIQ 異常向量地址分別是:0 x0000 0018、0 x0000 001CIRQ 異常處理過程:

29、 R1)R0+ ;elseR1+ ;(2) if( (R0!=10)&(R1!=20)R0 = R0 + R1;11、使用 ARM 匯編指令的條件執(zhí)行功能,翻譯下面C 代碼語句。 if(x = = y)a = b + c;elsea = b c;if(x = = y) & ( a = = b)c = c * 2;答:答:(1)MOV R0, x;(2)MOVR0, x;MOVR1, y;MOVR1, y;MOVR2, a;MOVR2, aMOVR3, b;MOVR3, bMOVR4, c;MOVR4, cCMPR1, R2;CMPR0, R1ADDEQR2, R3, R4;CM

30、PEQR2, R3SUBNER2, R3, R4;MOVR4, R4, LSL #2(從 11 題和 12 題結合來看,對于將匯編程序到C 程序的轉變掌握較好,反之則有一些欠缺,說明已經有了讀匯編的能力, 但是使用上還存在問題; 匯編指令是針對寄存器的, 不能在指令中同時使用兩個數(shù) 據, 例如: CMPx,y,必須將數(shù)值首先存入寄存器中)12、下列代碼段是實現(xiàn)開 IRQ 中斷和關 IRQ 中斷功能,試補齊空白處內容。R0,CPSRR1,CPSRBICR1, R0,ORRR1,CPSR c, R1CPSR c, R1答:(1) MRSR0,CPSR(2)MRSR1, CPSRBICR1,R0,#

31、0 x80ORRR1, #0 x80MSRCPSR_c, R1MSRCPSR_c, R113、若 ARM CPU 中各寄存器及存儲單元參數(shù)如下圖所示,試寫出指令執(zhí)行后,各寄存器及存儲單 元中內容為多少。 STMIA R13!,R0-R3 LDMDBR13, R0-R3R3R2R1存儲地址數(shù)據0 x000080 000 x000080 040 x000080 080 x000080 0C0 x000080 100 x000080 140 x000080 180 x000080 1C0 x000080 20存儲地址數(shù)據0 x00008000 x111111110 x000080 04x222222

32、220 x000080 08x333333330 x000080血444444440 x00008010 x555555550 x000080 14x666666660 x00008018x777777770 x00008010 x888888880 x00008020 x99999999STMIAR13!,R0-R3LDMDBR13, R0-R3執(zhí)行前0 x000000040 x000000030 x00000002RC 0 x00000001R130X00008000執(zhí)行后R3R2執(zhí)行前0 x000000040 x000000030 x00000002R1R0 0 x00000001R13

33、0X0000800C執(zhí)行后(這道題同樣的反映出了多寄存器的掌握不夠熟練)使用 ARM 指令實現(xiàn) 2 個 128bit 數(shù)的減法的功能段(第一個數(shù)由高到低放在寄存器二個數(shù)由高到低放在寄存器R7R4,結果差由高到低放在寄存器R11R8 中。)答:SUBSR8, RO, R4;低 32bit 運算,可能產生借位SBCSR9, R1, R5;帶借位計算次低32bitSBCSR10,R2,R6;帶借位計算次高32bitSBCSR11,R3,R7;帶借位計算高32bitR0存儲地址數(shù)據0 x00008000 x0000000 x000080 04x0000000 x00008008x0000000 x00

34、0080 00 x0000000 x000080 100 x000080 140 x000080 180 x000080 1C0 x000080 20執(zhí)行前R3 0 x00000004R2 0 x00000003R1 0 x00000002RC 0 x00000001R130 x00008010存儲地址數(shù)據0 x0000800 )(0 x111111110 x0000800 )4)x222222220 x0000800 )8)x333333330 x0000801(0 x444444440 x0000801 (0 x555555550 x0000801 4)x666666660 x000080

35、1 8)x777777770 x0000801 (0 x888888880 x0000802 Ex99999999STMIAR13!,R0-R3LDMDBR13, R0-R314R3R0,第執(zhí)行前R3 0 x000000R2 0 x000000R1 0 x0000000 x00000001R130 x000080 00執(zhí)行后執(zhí)行后0 x4444444R30 x333333pR20 x2222222R10 x1111111R0OxOOOO8O0R13練習題1、 什么是計算機語言? 答:機器語言是一種用二進制代碼表示指令和數(shù)據,能被機器直接識別的計算機語言。2、 相對于高級語言, 匯編語言有何特點

36、? 答: 匯編語言是一種面向物理層操作的計算機語言。 不同的處理器類型,具有不同的匯編語言。使用匯編語言編寫程序能夠直接利用硬件系統(tǒng)的特性(如寄存器、標志、中斷系統(tǒng)等) ,可直接對位、 字節(jié)、字寄存器或存儲單元、 I/O 端口進行處理,同時也能直接使用 CPU 指令系統(tǒng)提供的各種尋址方 式,編制出高質量的程序,這樣的程序不但占用內存空間少,而且執(zhí)行速度快。當然,由于匯編語言 不直接支持復雜的抽象數(shù)據類型,在描述目標系統(tǒng)數(shù)學模型時, 還需要程序員在存儲器單元組織各種 抽象數(shù)據類型的存儲方式,使得匯編語言程序設計較高級語言困難得多,需要較多的軟件開發(fā)時間, 也增加了程序設計過程中出錯的可能性,程序

37、維護也困難。3、 如何在匯編程序中顯示聲明文字池?什么情況下需要顯示聲明文字池?一般應在程序的什么位置 顯示聲明文字池?為什么?答:使用 LTORG 匯編器偽指令用于顯示聲明一個文字池(literal pool )。實際應用中, 如果 ARM 需要處理的操作數(shù)不符合 8bit 位圖立即數(shù)的要求時, 那么就需要使用文 字池來存放這個常量。在 ARM 匯編語言中,使用 LDR 加載指令相對尋址文字池中存放的任意 32bit 立即數(shù)。因為 LDR 指令的尋址范圍是指令位置的前后 4KB ,所以如果 LDR 指令所在位置距離文字池超出 4KB 范圍,那 么需要在程序中的適當位置,使用 LTORG 偽指

38、令顯式聲明文字池。解決方法: 一般總可以在 LDR 偽指令前后 4KB 的范圍內找到分支指令, 文字池可聲明在分支 ( B) 指令之后的緊鄰位置, 因為 B 指令總是會將程序的執(zhí)行轉移到其它地方的, 所以這樣做不會影響代碼 的正常執(zhí)行。4、 簡述匯編程序設計的一般流程。 答:使用計算機通過編程序解決某一問題時,通常按以下步驟進行:。分析問題,建立數(shù)學模型;2確定算法;3設計程序流程圖;合理分配寄存器、存儲空間和外設資源;編制程序;6調試程序;7形成文檔;5、 實現(xiàn)匯編程序分支的關鍵語句有哪幾條?分別用于什么場合? 答:匯編程序分支結構的實現(xiàn)是通過在運行時由機器根據不同的條件自動作出判斷,選擇執(zhí)

39、行相應的處理程序段。分支指令主要有 BL 指令、 B 指令和 BX 指令,分別用于調用子程序、直接跳轉和 帶狀態(tài)的跳轉場合。6、 循環(huán)控制有哪幾種方法?各有什么應用特點? 答:循環(huán)控制有兩種方法。計數(shù)控制循環(huán):通過計數(shù)循環(huán)次數(shù),判斷是否已達到預定次數(shù),控制循環(huán)。適合已知循環(huán)次數(shù) 的循環(huán)控制。2 條件控制循環(huán):通過判斷循環(huán)終止條件是否已成立,控制循環(huán)。適合僅知道結束條件的循環(huán)控制。7、 匯編子程序傳遞參數(shù)有哪幾種方式?答:匯編子程序傳遞參數(shù)有三種方式,分別為:1寄存器傳遞參數(shù)方式;2存儲區(qū)域傳遞參數(shù)方式;3堆棧傳遞參數(shù)方式;8、 用匯編語言編寫程序將 R0 寄存器中的字數(shù)據分成 4 組,每組 8

40、 位,然后分別存放到 R1、R2、R3 和 R4 中。答:AREAdecode, CODE, READONLY;代碼段名 decodeENTRY;程序的入口CODE32startLDRR0, =xLDRR0, R0;將 x 加載到寄存器 R0MOV R1, #OxFFAND R1, R1, R0;取 x 的低八位MOV R2,#0 xFFANDR2, R2,R0, ROR #8;取 x 的次低八位M OV R3, #0 xFFAND R3, R3, R0, ROR #16;取 x 的次高八位M OV R4, #0 xFFAND R4, R4, R0, ROR #24;取 x 的高八位stopM

41、OVR0, #0 x18;這三條指令是 ADS 調試環(huán)境特約LDRR1, =0 x20026;程序運行結束返回編譯器調試環(huán)境SWI0 x123456AREAData, DATA, READWRITE;數(shù)據段的名字 Datax DCD123456789END;結束9、用匯編語言編寫程序統(tǒng)計任意字符串包含的字符個數(shù)。(約定:字符串以 0 為結束標志)答:AREA count, CODE, READONLY;代碼段名 countENTRY;程序的入口CODE32startLDR R0, =string;R0 指向字符串 string 中第一個字符MOV R2, #0CONTILDRB R1, R0;

42、將 string 中的一個字符加載到寄存器R1CMP R1, #0;是否是字符串結束標志ADDNE R2, R2, #1;如果不是,統(tǒng)計個數(shù)增加 1ADDNE RO, R0, #1;如果不是,指針撥向下一個字符BNE CONTILDREQ R3, =NUM;如果是,將統(tǒng)計的字符串個數(shù),放入單元numSTREQ R2, R3stopMOVR0, #0 x18;這三條指令是 ADS 調試環(huán)境特約LDRR1, =0 x20026;程序運行結束返回編譯器調試環(huán)境SWI0 x123456AREAData, DATA, READWRITE;數(shù)據段的名字 DatastringDCBhELLO EmBEddE

43、D WORId!,0NUMDCB0END;結束100Sum =瓦 2 XN10、用匯編語言編寫程序計算:N2答:AREAsum2n, CODE, READONLY;代碼段名 sum2nENTRY;程序的入口CODE32startLDRR0, =sum;R0 指向存儲單元 sumMOV R1, #0;R1 存放累加和MOV R2, #1;R2 初始化起始值CONTIADDR1, R1, R2, LSL #1; 實現(xiàn) R1=R1+R2*2CMP R2, #100; 判斷 R2 是否等于 100ADDNE R2, R2, #1; 如果不等,R2 累加 1BNE CONTISTREQ R1, R0;

44、如果相等,將累加和 R1 放入存儲單元 sum 中stopMOVR0, #0 x18;這三條指令是 ADS 調試環(huán)境特約LDRR1, =0 x20026;程序運行結束返回編譯器調試環(huán)境SWI0 x123456AREAData, DATA, READWRITE;數(shù)據段的名字 DatasumDCD0END;結束11、用匯編語言編寫程序實現(xiàn):已知BUF1 中有 N1 個按從小到大順序排列的互不相等的字符號數(shù),BUF2 中有 N2 個從小到大順序排列的互不相等的字符號數(shù)。試編寫程序將 BUF1 和 BUF2 中的數(shù)合并到 BUF3 中,使得 BUF3 中的數(shù)互不相等且按從小到大順序排列。答:AREA

45、GATHER,CODE,READONLYENTRYCODE32N1 EQU 5N2 EQU 6N3 EQU 11START LDR R0,=BUF1;數(shù)組一的起始指針始終不動LDR R1,=BUF2;數(shù)組二的起始指針始終不動LDR R2,=BUF3;數(shù)組三的起始指針始終不動MOV R3,#0;數(shù)組一,二,三的計數(shù)器MOV R4,#0MOV R5,#0LOOPI ADD R6,R0,R3,LSL #2;數(shù)組一,二,三的地址指針,要移動ADD R7,R1,R4,LSL #2ADD R8,R2,R5 ,L SL #2LDR R9,R6LDR R10,R7CMP R9,R10BLT LOOPJBGT

46、LOOPKBEQ LOOPCMP R5,#N3BEQ STOPLOOPJ STR R9,R8;數(shù)組一中的數(shù)小于數(shù)組二中的數(shù),將數(shù)組一中的數(shù)放入數(shù)組三中ADD R3,R3,#1ADD R5,R5,#1CMP R3,#N1BLT LOOPI;B LOPILOPI STR R10,R8,#04!;數(shù)組一中的數(shù)已經合并到數(shù)組三中,將數(shù)組二中剩余的數(shù)存入數(shù)組三中ADD R4,R4,#1ADD R5,R5,#1ADD R7,R1,R4,LSL #2LDR R10,R7CMP R4,#N2BLT LOPILOOPK STR R10,R8;數(shù)組二中的數(shù)小于數(shù)組一中的數(shù),將數(shù)組二中的數(shù)放入數(shù)組三中ADD R4,

47、R4,#1ADD R5,R5,#1CMP R4,#N2BLT LOOPI;B LOPJLOPJ STR R9,R8,#04!;數(shù)組二中的數(shù)已經合并到數(shù)組三中,將數(shù)組一中剩余的數(shù)存入數(shù)組三中ADD R3,R3,#1ADD R5,R5,#1ADD R6,R0,R3 ,L SL #2LDR R9,R6CMP R3,#N1BLT LOPJLOOP STR R9,R8;數(shù)組一中的數(shù)與數(shù)組二中的數(shù)相等,將數(shù)組一中的數(shù)放入數(shù)組三,三個計數(shù)器同 時加一ADD R3,R3,#1ADD R4,R4,#1ADD R5,R5,#1CMP R3,#N1BLT LOOPIBEQ LOPICMP R4,#N2BLT LOO

48、PIBEQ LOPJSTOP MOV R0,#0 x18LDR R1,=0X20026SWI 0X123456AREA Data,DATA,READWRITEBUF1 DCD 0X11,0X33,0X55,0X77,0X99BUF2 DCD 0X22,0X44,0X66,0X88,0XAA,0XBBBUF3 DCD 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00END12、用匯編語言編寫程序實現(xiàn):將字節(jié)變量BVAR 中的壓縮型 BCD 數(shù)轉換為二進制數(shù),并存入原變量中。答:AREA tranx, CODE, READONLY ;代碼

49、段名 tranxENTRY;程序的入口CODE32startLDR R0, =BVARLDR R1, R0;將 BVAR 的值加載到寄存器 R1MOV R2,#0 x0FAND R2, R2, R1;取 BVAR 的個位MOV R3, #0 x0FAND R3, R3, R1, LSR #4;取 BVAR 的十位MOV R4, R3, LSL #1;R4=R3*2MOV R5, R3, LSL #3;R5=R3*8ADD R3, R4, R5;R3=R4+R5=R3*10ADD R1, R3, R2;R 仁 R3+R2STR R1, R0; 將轉換的值存到 BVAR 變量中stopMOVLDR

50、SWIAREABVARENDR0, #0 x18;這三條指令是 ADS 調試環(huán)境特約R1, =0 x200260 x123456Data, DATA, READWRITEDCB 0 x89;程序運行結束返回編譯器調試環(huán)境;數(shù)據段的名字 Data結束練習題1 簡述 SRAM 芯片與 DRAM 芯片的共同點與不同點。答:SRAM 芯片與 DRAM 芯片的共同點:都屬于 RAM 芯片,能夠隨機讀寫,存貯的數(shù)據掉電就丟失。不同的:SRAM 屬于靜態(tài) RAM,靜態(tài) RAM 與 CPU 連接時控制電路簡單,集成度相對較低;DRAM 集成度很高,但需硬件刷新電路支持工作,CPU 與 DRAM 連接時必須有刷

51、新電路,如果 DRAM 不進行定期刷新,數(shù)據就可能丟失。2.簡述 ROM 芯片的常見分類,各種 ROM 芯片的特點及其適用場合。只讀存儲器 ROM 目前常見的有:掩膜式 ROM,用戶不可對其編程,其內容已由廠家設定好,不能更改;可編程 ROM(Programmable ROM,簡稱 PROM),用戶只能對其進行一次編程,寫入后不能更改;可擦除的 PROM(Erasable PROM, 簡稱 EPROM) , 其內容可用紫外線擦除, 用戶可對其進行多次編程;電擦除的 PROM (ElectricallyErasable PROM,簡稱 EEPROM 或 E2PROM),能以字節(jié)為單位擦除和改寫。

52、閃速存儲器又稱 Flash 存儲器, 它是一種非易失性存儲器 ( Non-Volatile Memory , NVM ) ,是在 EPROM 與 EEPROM基礎上發(fā)展起來的。Flash 存儲器集其它類非易失性存儲器的特點于一身。與 EPROM 相比較,閃速存儲器具有明顯的優(yōu)勢一系統(tǒng)中可電擦除和可重復編程,而不需要特殊的高電壓;與EEPROM 相比較,閃速存儲器具有編程速度快,成本低、密度大的特點。Flash 存儲器以其集成度高、 制造成本低、使用方便等諸多優(yōu)點廣泛地應用于辦公設備、通信設備、醫(yī)療設備、家用電器等領域。Flash 存儲器有多種實現(xiàn)技術,目前主要有兩種技術類型:NOR 型 Fla

53、sh 存儲器,以 In tel 和 AMD 為代表的 NOR 型 Flash 存儲器是最早出現(xiàn)的一類;NAND 型 Flash 存儲器,以三星和東芝為代表的NAND 型 Flash 存儲器3 .某微機系統(tǒng)中 ROM 區(qū)的首地址是 9000H,末地址是 FFFFH,其 ROM 區(qū)域的存儲容量是多少? 答:其 ROM 區(qū)域的存儲容量是:28KB4.設有一個具有 20 位地址線和 32 位字長的存儲器,問:(1)該存儲器能存儲多少個字節(jié)信息? (2)如果該存儲器由 256KX8 位 SRAM 芯片組成,需要用多少片?需要多少位地址來作芯片選擇?答:(1)該存儲器能存儲 1MB 信息;(2)如果該存儲

54、器由 256KX8 位 SRAM 芯片組成,需要 4 片,其中片內地址需要 18 根地址線,片間 至少需要2 跟地址線進行譯碼來作芯片選擇。5.若 CPU 訪問由 256KX1 位的 DRAM 芯片構成的 512KX8 位的存儲器子系統(tǒng),問 CPU 需要使用多少根地址線?那些地址線用作片內尋址?那些地址線用作片選控制?答:CPU 至少需要使用 19 根地址線,其中 18 根用于片內,最高位地址用于片選控制。6某計算機由 2164 芯片(64K 1 位)組成 64K 8 位的內存系統(tǒng),當 CPU 將內存中的某一個存儲單元值 讀出后,該存儲單元的內容變成什么?該內存系統(tǒng)的刷新控制電路,需要在一個刷

55、新周期內,刷新多少行?答:CPU 將內存中的某一個存儲單元值讀出后,該存儲單元的內容不變,讀取數(shù)據不會改變存儲單元的 內容。該內存系統(tǒng)的刷新控制電路,需要在一個刷新周期內,刷新多少行?7.某微機系統(tǒng)中,使用了 1 片 EPROM 2732,它與 CPU 的連接關系如圖 5.38 所示,試計算該芯片在系 統(tǒng)中的地址空間范圍,以及可訪問多少個存儲單元。答:地址空間范圍 F000HF3FFH。可訪問 1K 字節(jié)存儲單元。&在某計算機系統(tǒng)中擴展 32K 字節(jié)的 RAM ,起始地址為 8000H ,設地址總線為 20 位,數(shù)據總線為 8 位。 選用 6264芯片,畫出擴展的存儲器的電路連接圖。答

56、:分析,【分析】 6264 的容量為 8KX8,需用 4 片進行字擴展。 6264 有 8 條數(shù)據線 (07、 00) 正好與 CPU 的數(shù) 據總線 (D7Q0)連接;13 條地址線(A12-A0 )與 CPU 的低位地址線(A12、A0)連接。2864 選片 信號(CS)的連接是一個難點,需要考慮兩個問題:一是與CPU 高位地址線(A19、A13 )和控制信號(10 / M、RD )如何連接,二是根據給定的地址范圍如何連接。各組芯片的地址范圍-H- LJK芯片A19/18 A17A16A15 A14A13 A12 - A0地址范圍RAM100001000 0000 0000 0000(最低地

57、址)1 1111 1111 1111 最高地址)0000H 1FFFHRAM200001010 0000 0000 0000(最低地址)1 1111 1111 1111 最高地址)2000H 3FFFHRAM300011100 0000 0000 0000(最低地址)1 1111 1111 1111 最高地址)4000H 5FFFHRAM400011110 0000 0000 0000(最低地址)1 1111 1111 1111 最高地址)4000H 5FFFH74LS138G 仁 RD+IO/MAo Ao9.用 16KX8 位 DRAM 芯片構成 64KX32 位的存儲器,試畫出該存儲器的電

58、路連接圖。答:四片 16KX8 位 DRAM 芯片構成 64KX32 位的存儲器,需要刷新電路等邏輯,存儲器部分采用模塊化 方法即可完成電路連接,刷新電路部分需要專門的電路。74LS138G2AG2BY1CS0CS1RDA2AoCSRAM6264PD/PGMOQ或門A19AA14A17A16CS2IO/MCS0074LS138G 仁 RD+IO/M10.由 8088 CPU 組成一個小型計算機系統(tǒng),有 ROM 32KB ,地址范圍為 00000H07FFFH ;有 RAM 8KB ,地址范圍為 08000H09FFFH ;如果 ROM 選用 2764 (8KX8 位),RAM 選用 8KX1

59、位的 SRAM 芯片,試畫出擴展的存儲器的電路連接圖。答:分析如下 ROM 2764 8KX8 芯片,需 4 片,做字擴展,片內尋址線13 根RAM 2114 1KX4 芯片,需 16 片,做字位擴展,片內尋址線10 根(2) 地址范圍 :0 0 0 0 A15 A14 A13 A12 A11 A10ROM10000001FFF H0 00(一級譯碼 )ROM20200003FFF H0 01ROM3 0400005FFF H0 10ROM4 0600007FFFH0 11RAM1 組)08000083FFH1000 00 (二級譯碼 )RAM208400087FFH1 00001RAM308

60、80008BFFH1 0001 0RAM408C0008FFFH1 00011RAM509000093FFH1 00100RAM60940009FFFH1 001 01RAM70980009BFFH1 0011 0RAM809C0009FFFH1 00111(3)ROM1 Y0 (1 #譯碼器 A15A14 A13譯碼輸入 )ROM2 Y1ROM3 Y2ROM4 Y3RAM1 Y0 (2 # 譯碼器 A12 A11 A10 譯碼輸入 )RAM2 Y1RAM3 Y2RAM4 Y3RAM5 Y4RAM6 Y5RAM7 Y6RAM8 Y7(4) 2 4 譯碼器和 38 譯碼器 畫圖連接 略練習題1、 CPU 與外設交

溫馨提示

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

評論

0/150

提交評論