微處理器系統(tǒng)結(jié)構(gòu)與嵌入式系統(tǒng)設(shè)計(第二版)答案全.docx
《微處理器系統(tǒng)結(jié)構(gòu)與嵌入式系統(tǒng)設(shè)計(第二版)答案全.docx》由會員分享,可在線閱讀,更多相關(guān)《微處理器系統(tǒng)結(jié)構(gòu)與嵌入式系統(tǒng)設(shè)計(第二版)答案全.docx(36頁珍藏版)》請在裝配圖網(wǎng)上搜索。
一 1.2 以集成電路級別而言,計算機系統(tǒng)的三個主要組成部分是什么? 中央處理器、存儲器芯片、總線接口芯片 1.3 闡述摩爾定律。 每18個月,芯片的晶體管密度提高一倍,運算性能提高一倍,而價格下降一半。 1.5 什么是SoC?什么是IP核,它有哪幾種實現(xiàn)形式? SoC:系統(tǒng)級芯片、片上系統(tǒng)、系統(tǒng)芯片、系統(tǒng)集成芯片或系統(tǒng)芯片集等,從應(yīng)用開發(fā)角度出發(fā),其主要含義是指單芯片上集成微電子應(yīng)用產(chǎn)品所需的所有功能系統(tǒng)。 IP核:滿足特定的規(guī)范和要求,并且能夠在設(shè)計中反復(fù)進行復(fù)用的功能模塊。它有軟核、硬核和固核三種實現(xiàn)形式。 1.8 什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)的主要特點有哪些? 概念:以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積和功耗的嚴(yán)格要求的專用計算機系統(tǒng),即“嵌入到應(yīng)用對象體系中的專用計算機系統(tǒng)”。 特點:1、嵌入式系統(tǒng)通常是面向特定應(yīng)用的。 2、嵌入式系統(tǒng)式將先進的計算機技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)與各個行業(yè)的具體應(yīng)用相結(jié)合的產(chǎn)物。 3、嵌入式系統(tǒng)的硬件和軟件都必須高效率地設(shè)計,量體裁衣、去除冗余,力爭在同樣的硅片面積上實現(xiàn)更高的性能。 4、嵌入式處理器的應(yīng)用軟件是實現(xiàn)嵌入式系統(tǒng)功能的關(guān)鍵,對嵌入式處理器系統(tǒng)軟件和應(yīng)用軟件的要求也和通用計算機有以下不同點。 ① 軟件要求固體化,大多數(shù)嵌入式系統(tǒng)的軟件固化在只讀存儲器中; ② 要求高質(zhì)量、高可靠性的軟件代碼; ③ 許多應(yīng)用中要求系統(tǒng)軟件具有實時處理能力。 5、嵌入式系統(tǒng)和具體應(yīng)用有機的結(jié)合在一起,它的升級換代也是和具體產(chǎn)品同步進行的,因此嵌入式系統(tǒng)產(chǎn)品一旦進入市場,就具有較長的生命周期。 6、嵌入式系統(tǒng)本身不具備自開發(fā)能力,設(shè)計完成以后用戶通常也不能對其中的程序功能進行修改,必須有一套開發(fā)工具和環(huán)境才能進行開發(fā)。 二 2.2 完成下列邏輯運算 (1) 101+1.01 = 110.01 (2) 1010.001-10.1 = 111.101 (3) -1011.0110 1-1.1001 = -1100.1111 1 (4) 10.1101-1.1001 = 1.01 (5) 110011/11 = 10001 (6) (-101.01)/(-0.1) = 1010.1 2.3 完成下列邏輯運算 (1) 1011 0101∨1111 0000 = 1111 0101 (2) 1101 0001∧1010 1011 = 1000 0001 (3) 1010 1011⊕0001 1100 = 1011 0111 2.4 選擇題 (1) 下列無符號數(shù)中最小的數(shù)是( A )。 A. B. C. D. (2) 下列無符號數(shù)中最大的數(shù)是( B )。 A. B. C. D. (3) 在機器數(shù)( A )中,零的表示形式是唯一的。 A.補碼 B.原碼 C.補碼和反碼 D.原碼和反碼 (4) 單純從理論出發(fā),計算機的所有功能都可以交給硬件實現(xiàn)。而事實上,硬件只實現(xiàn)比較簡單的功能,復(fù)雜的功能則交給軟件完成。這樣做的理由是( BCD )。 A.提高解題速度 B.降低成本 C.增強計算機的適應(yīng)性,擴大應(yīng)用面 D.易于制造 (5) 編譯程序和解釋程序相比,編譯程序的優(yōu)點是( D ),解釋程序的優(yōu)點是( C )。 A.編譯過程(解釋并執(zhí)行過程)花費時間短 B.占用內(nèi)存少 C.比較容易發(fā)現(xiàn)和排除源程序錯誤 D.編譯結(jié)果(目標(biāo)程序)執(zhí)行速度快 2.5通常使用邏輯運算代替數(shù)值運算是非常方便的。例如,邏輯運算AND將兩個位組合的方法同乘法運算一樣。哪一種邏輯運算和兩個位的加法幾乎相同?這樣情況下會導(dǎo)致什么錯誤發(fā)生? 邏輯運算OR和兩個位的加法幾乎相同。問題在于多個bit的乘或加運算無法用AND或OR運算替代,因為邏輯運算沒有相應(yīng)的進位機制。 2.6 假設(shè)一臺數(shù)碼相機的存儲容量是256MB,如果每個像素需要3個字節(jié)的存儲空間,而且一張照片包括每行1024個像素和每列1024個像素,那么這臺數(shù)碼相機可以存放多少張照片? 每張照片所需空間為:1024*1024*3=3MB 則256M可存照片數(shù)為:256MB/3MB≈85張。 2.14某測試程序在一個40 MHz處理器上運行,其目標(biāo)代碼有100 000條指令,由如下各類指令及其時鐘周期計數(shù)混合組成,試確定這個程序的有效CPI、MIPS的值和執(zhí)行時間。 指 令 類 型 指 令 計 數(shù) 時鐘周期計數(shù) 整數(shù)算術(shù) 45 000 1 數(shù)據(jù)傳送 32 000 2 浮點數(shù) 15 000 2 控制傳送 8000 2 CPI=(45000/100000)*1+(32000/100000)*2+(15000/100000)*2+(8000/100000)*2=0.45*1+0.32*2+0.15*2+0.08*2=1.55 MIPS=40/1.55=25.8 執(zhí)行時間T=(100000*1.55)*(1/(40*10∧6) )=15.5/4*10∧(-3)= 3.875*10∧(-3) s= 3.875ms 2.15 假設(shè)一條指令的執(zhí)行過程分為“取指令”、“分析”和“執(zhí)行”三段,每一段的時間分別為?t,2?t和3?t。在下列各種情況下,分別寫出連續(xù)執(zhí)行n條指令所需要的時間表達式。 (1) 順序執(zhí)行方式 T= (?t+2?t+3?t)*n=6n?t (2) 僅“取指令”和“執(zhí)行”重疊 當(dāng)“取指令”和“執(zhí)行”重疊時,指令的執(zhí)行過程如圖所示: 第1條指令執(zhí)行完的時間:t1=?t+2?t+3?t=6?t 第2條指令執(zhí)行完的時間:t2= t1+5?t=6?t+5?t*1 第3條指令執(zhí)行完的時間:t3= t2+5?t=6?t+5?t*2 … 第n條指令執(zhí)行完的時間:tn= tn-1+?t=6?t+5?t*(n-1)=(1+5n)?t (3) “取指令”、“分析”和“執(zhí)行”重疊 當(dāng)“取指令”、“分析”和“執(zhí)行”重疊時,指令的執(zhí)行過程如圖所示: 第1條指令執(zhí)行完的時間:t1=?t+2?t+3?t=6?t 第2條指令執(zhí)行完的時間:t2= t1+3?t=6?t+3?t*1 第3條指令執(zhí)行完的時間:t3= t2+3?t=6?t+3?t*2 … 第n條指令執(zhí)行完的時間:tn= tn-1+3?t=6?t+3?t*(n-1)=(3+3n)?t 三 3.1處理器有哪些功能?說明實現(xiàn)這些功能各需要哪些部件,并畫出處理器的基本結(jié)構(gòu)圖。 處理器的基本功能包括數(shù)據(jù)的存儲、數(shù)據(jù)的運算和控制等功能。其有5個主要功能:①指令控制②操作控制③時間控制④數(shù)據(jù)加工⑤中斷處理。其中,數(shù)據(jù)加工由ALU、移位器和寄存器等數(shù)據(jù)通路部件完成,其他功能由控制器實現(xiàn)。處理器的基本結(jié)構(gòu)圖如下: 3.2處理器內(nèi)部有哪些基本操作?這些基本操作各包含哪些微操作? 處理器內(nèi)部的基本操作有:取指、間接、執(zhí)行和中斷。其中必須包含取指和執(zhí)行。 取指包含微操作有:經(jīng)過多路器把程序計數(shù)器的值選送到存儲器,然后存儲器回送所期望的指令并將其寫入指令寄存器,與此同時程序計數(shù)器值加1,并將新值回寫入程序計數(shù)器。 間接有4個CPU周期,包含微操作有:第1周期把指令寄存器中地址部分的形式地址轉(zhuǎn)到地址寄存器中;第2周期完成從內(nèi)存取出操作數(shù)地址,并放入地址寄存器;第3周期中累加器內(nèi)容傳送到緩沖寄存器,然后再存入所選定的存儲單元。 執(zhí)行包含微操作有:在寄存器中選定一個地址寄存器,并通過多路器將值送到存儲器;來自于存儲器的數(shù)據(jù)作為ALU的一個原操作數(shù),另一個原操作數(shù)則來自于寄存器組中的數(shù)據(jù)寄存器,它們將一同被送往ALU的輸入;ALU的結(jié)果被寫入寄存器組。 中斷包含微操作有:保護斷點及現(xiàn)場,查找中斷向量表以確定中斷程序入口地址,修改程序指針,執(zhí)行完畢后恢復(fù)現(xiàn)場及斷點。 3.3什么是馮諾伊曼計算機結(jié)構(gòu)的主要技術(shù)瓶頸?如何克服? 馮諾伊曼計算機結(jié)構(gòu)的主要技術(shù)瓶頸是數(shù)據(jù)傳輸和指令串行執(zhí)行。可以通過以下方案克服:采用哈佛體系結(jié)構(gòu)、存儲器分層結(jié)構(gòu)、高速緩存和虛擬存儲器、指令流水線、超標(biāo)量等方法。 3.5指令系統(tǒng)的設(shè)計會影響計算機系統(tǒng)的哪些性能? 指令系統(tǒng)是指一臺計算機所能執(zhí)行的全部指令的集合,其決定了一臺計算機硬件主要性能和基本功能。指令系統(tǒng)一般都包括以下幾大類指令。:1)數(shù)據(jù)傳送類指令。(2)運算類指令 包括算術(shù)運算指令和邏輯運算指令。(3)程序控制類指令 主要用于控制程序的流向。(4)輸入/輸出類指令 簡稱I/O指令,這類指令用于主機與外設(shè)之間交換信息。 因而,其設(shè)計會影響到計算機系統(tǒng)如下性能: 數(shù)據(jù)傳送、算術(shù)運算和邏輯運算、程序控制、輸入/輸出。另外,其還會影響到運算速度以及兼容等。 3.9某時鐘速率為2.5GHz的流水式處理器執(zhí)行一個有150萬條指令的程序。流水線有5段,并以每時鐘周期1條的速率發(fā)射指令。不考慮分支指令和亂序執(zhí)行帶來的性能損失。 a)同樣執(zhí)行這個程序,該處理器比非流水式處理器可能加速多少? b)此流水式處理器是吞吐量是多少(以MIPS為單位)? a.速度幾乎是非流水線結(jié)構(gòu)的5倍。 b. 3.10一個時鐘頻率為2.5 GHz的非流水式處理器,其平均CPI是4。此處理器的升級版本引入了5級流水。然而,由于如鎖存延遲這樣的流水線內(nèi)部延遲,使新版處理器的時鐘頻率必須降低到2 GHz。 (1) 對一典型程序,新版所實現(xiàn)的加速比是多少? (2) 新、舊兩版處理器的MIPS各是多少? (1)對于一個有N條指令的程序來說: 非流水式處理器的總執(zhí)行時間 5級流水處理器的總執(zhí)行時間 加速比=,N很大時加速比≈3.2 (2)非流水式處理器CPI=4,則其執(zhí)行速度=2500MHz/4=625MIPS。 5級流水處理器CPI=1,則其執(zhí)行速度=2000 MHz /1=2000 MIPS。 3.11隨機邏輯體系結(jié)構(gòu)的處理器的特點是什么?詳細(xì)說明各部件的作用。 隨機邏輯的特點是指令集設(shè)計與硬件的邏輯設(shè)計緊密相關(guān),通過針對特定指令集進行硬件的優(yōu)化設(shè)計來得到邏輯門最小化的處理器,以此減小電路規(guī)模并降低制造費用。 主要部件包括:產(chǎn)生程序地址的程序計數(shù)器,存儲指令的指令寄存器,解釋指令的控制邏輯,存放數(shù)據(jù)的通用寄存器堆,以及執(zhí)行指令的ALU等幾個主要部分構(gòu)成。 3.13 什么是微代碼體系結(jié)構(gòu)?微指令的作用是什么? 在微碼結(jié)構(gòu)中,控制單元的輸入和輸出之間被視為一個內(nèi)存系統(tǒng)??刂菩盘柎娣旁谝粋€微程序內(nèi)存中,指令執(zhí)行過程中的每一個時鐘周期,處理器從微程序內(nèi)存中讀取一個控制字作為指令執(zhí)行的控制信號并輸出。 微指令只實現(xiàn)必要的基本操作,可以直接被硬件執(zhí)行。通過編寫由微指令構(gòu)成的微代碼,可以實現(xiàn)復(fù)雜的指令功能。微指令使處理器硬件設(shè)計與指令集設(shè)計相分離,有助于指令集的修改與升級,并有助于實現(xiàn)復(fù)雜的指令。 3.14微碼體系結(jié)構(gòu)與隨機邏輯體系結(jié)構(gòu)有什么區(qū)別? (1) 指令集的改變導(dǎo)致不同的硬件設(shè)計開銷。 在設(shè)計隨機邏輯結(jié)構(gòu)時,指令集和硬件必須同步設(shè)計和優(yōu)化,因此設(shè)計隨機邏輯的結(jié)構(gòu)比設(shè)計微碼結(jié)構(gòu)復(fù)雜得多,而且硬件和指令集二者中任意一個變化,就會導(dǎo)致另外一個變化。 在微碼結(jié)構(gòu)中,指令設(shè)計通過為微碼ROM編寫微碼程序來實現(xiàn)的,指令集的設(shè)計并不直接影響現(xiàn)有的硬件設(shè)計。因此,一旦修改了指令集,并不需要重新設(shè)計新的硬件。 (2) 從性能上比較 隨機邏輯在指令集和硬件設(shè)計上都進行了優(yōu)化,因此在二者采用相同指令集時隨機邏輯結(jié)構(gòu)要更快一些。但微碼結(jié)構(gòu)可以實現(xiàn)更復(fù)雜指令集,因此可以用較少的指令完成復(fù)雜的功能,尤其在存儲器速度受限時,微碼結(jié)構(gòu)性能更優(yōu)。 3.15說明流水線體系結(jié)構(gòu)中的5個階段的操作。能否把流水線結(jié)構(gòu)分為6階段?如果可能,試給出你的方案。 流水線若分為5個階段應(yīng)包括:取指,譯碼,取操作數(shù),執(zhí)行,數(shù)據(jù)回寫 流水線若分為6個階段應(yīng)包括:取指,譯碼,取操作數(shù),執(zhí)行,存儲器操作,數(shù)據(jù)回寫 四 4.3 微機系統(tǒng)中總線層次化結(jié)構(gòu)是怎樣的? 按總線所處位置可分為:片內(nèi)總線、系統(tǒng)內(nèi)總線、系統(tǒng)外總線。 按總線功能可分為: 地址總線、數(shù)據(jù)總線、控制總線。 按時序控制方式可分為:同步總線 、異步總線。 按數(shù)據(jù)格式可分為: 并行總線、串行總線。 4.4 評價一種總線的性能有那幾個方面? 總線時鐘頻率、總線寬度、總線速率、總線帶寬、總線的同步方式和總線的驅(qū)動能力等。 4.5 微機系統(tǒng)什么情況下需要總線仲裁?總線仲裁有哪幾種?各有什么特點? 總線仲裁又稱總線判決,其目的是合理的控制和管理系統(tǒng)中多個主設(shè)備的總線請求,以避免總線沖突。當(dāng)多個主設(shè)備同時提出總線請求時,仲裁機構(gòu)按照一定的優(yōu)先算法來確定由誰獲得對總線的使用權(quán)。 集中式(主從式)控制和分布式(對等式)控制。集中式特點:采用專門的總線控制器或仲裁器分配總線時間,總線協(xié)議簡單有效,總體系統(tǒng)性能較低。分布式特點:總線控制邏輯分散在連接與總線的各個模塊或設(shè)備中,協(xié)議復(fù)雜成本高,系統(tǒng)性能較高。 4.6總線傳輸方式有哪幾種?同步總線傳輸對收發(fā)模塊有什么要求?什么情況下應(yīng)該采用異步傳輸方式,為什么? 總線傳輸方式按照不同角度可分為同步和異步傳輸,串行和并行傳輸,單步和突發(fā)方式。同步總線傳輸時,總線上收模塊與發(fā)模塊嚴(yán)格按系統(tǒng)時鐘來統(tǒng)一定時收發(fā)模塊之間的傳輸操作。異步總線常用于各模塊間數(shù)據(jù)傳送時間差異較大的系統(tǒng),因為這時很難同步,采用異步方式?jīng)]有固定的時鐘周期,其時間可根據(jù)需要可長可短。 4.14發(fā)送時鐘和接收時鐘與波特率有什么關(guān)系? 其關(guān)系如下: 發(fā)/收時鐘頻率=n*(發(fā)/收波特率) (其中n=1,16,64) 實際應(yīng)用中可根據(jù)要求傳輸?shù)臅r鐘頻率和所選擇的倍數(shù)n來計算波特率。 五 5.10 用16K1位的DRAM芯片組成64K8位存儲器,要求: (1) 畫出該存儲器的組成邏輯框圖。 (2) 設(shè)存儲器讀/寫周期為0.5μS, CPU在1μS內(nèi)至少要訪問一次。試問采用哪種刷新方式比較合理?兩次刷新的最大時間間隔是多少?對全部存儲單元刷新一遍所需的實際刷新時間是多少? (1)組建存儲器共需DRAM芯片數(shù)N=(64K*8)/(16K*1)=4*8(片)。 每8片組成16K8位的存儲區(qū), A13~A0作為片內(nèi)地址,用A15、A14經(jīng)2:4譯碼器產(chǎn)生片選信號 ,邏輯框圖如下(圖有誤:應(yīng)該每組8片,每片數(shù)據(jù)線為1根) ?。?)設(shè)16K8位存儲芯片的陣列結(jié)構(gòu)為128行128列,刷新周期為2ms。因為刷新每行需0.5μS,則兩次(行)刷新的最大時間間隔應(yīng)小于: 為保證在每個1μS內(nèi)都留出0.5μS給CPU訪問內(nèi)存,因此該DRAM適合采用分散式或異步式刷新方式,而不能采用集中式刷新方式。 l 若采用分散刷新方式,則每個存儲器讀/寫周期可視為1μS,前0.5μS用于讀寫,后0.5μS用于刷新。相當(dāng)于每1μS刷新一行,刷完一遍需要1281μS=128μS,滿足刷新周期小于2ms的要求; l 若采用異步刷新方式,則應(yīng)保證兩次刷新的時間間隔小于15.5μS。如每隔14個讀寫周期刷新一行,相當(dāng)于每15μS刷新一行,刷完一遍需要12815μS=1920μS,滿足刷新周期小于2ms的要求; 需要補充的知識: 刷新周期:從上一次對整個存儲器刷新結(jié)束到下一次對整個存儲器全部刷新一遍為止的時間間隔。刷新周期通??梢允?ms,4ms或8ms。 DRAM一般是按行刷新,常用的刷新方式包括: l 集中式:正常讀/寫操作與刷新操作分開進行,刷新集中完成。 特點:存在一段停止讀/寫操作的死時間,適用于高速存儲器。 (DRAM共128行,刷新周期為2ms,讀/寫/刷新時間均為0.5μS) l 分散式:一個存儲系統(tǒng)周期分成兩個時間片,分時進行正常讀/寫操作和刷新操作。 特點:不存在停止讀/寫操作的死時間,但系統(tǒng)運行速度降低。 (DRAM共128行,刷新周期為128μs,tm=0.5μS為讀/寫時間,tr=0.5μS為刷新時間,tc=1μS為存儲周期) l 異步式:前兩種方式的結(jié)合,每隔一段時間刷新一次,只需保證在刷新周期內(nèi)對整個存儲器刷新一遍。 5.11若某系統(tǒng)有24條地址線,字長為8位,其最大尋址空間為多少?現(xiàn)用 SRAM2114(1K*4)存儲芯片組成存儲系統(tǒng),試問采用線選譯碼時需要多少個2114存儲芯片? 該存儲器的存儲容量=224 *8bit=16M字節(jié) 需要SRAM2114(1K*4)存儲芯片數(shù)目:片 5.12 在有16根地址總線的機系統(tǒng)中畫出下列情況下存儲器的地址譯碼和連接圖。 (1)采用8K*1位存儲芯片,形成64KB存儲器。 (2)采用8K*1位存儲芯片,形成32KB存儲器。 (3)采用4K*1位存儲芯片,形成16KB存儲器。 由于地址總線長度為16,故系統(tǒng)尋址空間為 (1)8K*1位存儲芯片地址長度為13,64KB存儲器需要8個8K*1位存儲芯片,故總共需要16根地址總線,地址譯碼為: A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 共需8片8K*1位存儲芯片 紅色為片選 第一片 地址范圍 0000H~ 1FFFH 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 第二片 地址范圍 2000H~ 3FFFH 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 第三片 地址范圍 4000H~ 5FFFH 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 第四片 地址范圍 6000H~ 7FFFH 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 第五片 地址范圍 8000H~ 9FFFH 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 第六片 地址范圍 0A000H~ 0BFFFH 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 第七片 地址范圍 0C000H~ 0DFFFH 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 第八片 地址范圍 0E000H~ 0FFFFH 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 其連線圖如下: (2)8K*1位存儲芯片地址長度為13,32KB存儲器需要4個8K*1位存儲芯片故總共需要15根地址總線,地址譯碼為: A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 共需4片8K*1位存儲芯片 紅色為片選 第一片 地址范圍 0000H~ 1FFFH 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 第二片 地址范圍 2000H~ 3FFFH 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 第三片 地址范圍 4000H~ 5FFFH 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 第四片 地址范圍 6000H~ 7FFFH 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 其連線圖如下: (3)4K*1位存儲芯片地址長度為12,16KB存儲器需要4個4K*1位存儲芯片故總共需要14根地址總線,地址譯碼為: A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 共需4片4K*1位存儲芯片 紅色為片選 第一片 地址范圍 0000H~ 0FFFH 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 第二片 地址范圍 1000H~ 1FFFH 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 第三片 地址范圍 2000H~ 2FFFH 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 第四片 地址范圍 3000H~ 3FFFH 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 其連線圖如下: 方案一: 方案二: 5.13試為某8位計算機系統(tǒng)設(shè)計一個具有8KB ROM和40KB RAM的存儲器。要求ROM用EPROM芯片2732組成,從0000H地址開始;RAM用SRAM芯片6264組成,從4000H地址開始。 查閱資料可知,2732容量為4K8(字選線12根),6264容量為8K8(字選線13根),因此本系統(tǒng)中所需芯片數(shù)目及各芯片地址范圍應(yīng)如下表所示: A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 共需2片2732構(gòu)成系統(tǒng)ROM 紅色為片選 第一片 地址范圍 0000H~ 0FFFH 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 第二片 地址范圍 1000H~ 1FFFH 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 共需5片6264構(gòu)成系統(tǒng)RAM 紅色為片選 第一片 地址范圍 4000H~ 5FFFH 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 第二片 地址范圍 6000H~ 7FFFH 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 第三片 地址范圍 8000H~ 9FFFH 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 第四片 地址范圍 0A000H~ 0BFFFH 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 第五片 地址范圍 0C000H~ 0DFFFFH 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 硬件連線方式之一如下圖所示: A14 CS 6 EN C 2 B 1 A 0 A0-A11 RD WR D0-D7 AB CS 2732 WR D0-7 AB CS 2732 WR D0-7 AB CS 6264 RD WR D0-7 A12 A13 A15 38譯碼器 A0-A12 RD WR AB CS 6264 RD WR D0-7 …… …… 未用 1 2 1 5 …… 說明: ①8位微機系統(tǒng)地址線一般為16位。采用全譯碼方式時,系統(tǒng)的A0~A12直接與6264的13根地址線相連,系統(tǒng)的A0~A11直接與2732的12根地址線相連。片選信號由74LS138譯碼器產(chǎn)生,系統(tǒng)的A15~A13作為譯碼器的輸入。 ②各芯片的數(shù)據(jù)總線(D0~D7)直接與系統(tǒng)的數(shù)據(jù)總線相連。 ③各芯片的控制信號線(RD、WR)直接與系統(tǒng)的控制信號線相連。 5.14試根據(jù)下圖EPROM的接口特性,設(shè)計一個EPROM寫入編程電路,并給出控制軟件的流程。 EPROM寫入編程電路設(shè)計如下圖所示: 控制軟件流程: (1) 上電復(fù)位; (2) 信號為電平”1”無效(寫模式),信號為電平”0”有效(編程控制模式),軟件進入編程狀態(tài),對EPROM存儲器進行寫入編程操作; (3) 高位地址譯碼信號為電平”1”無效,對存儲器對應(yīng)0000H~3FFFH地址的數(shù)據(jù)依次進行寫入操作(其中高位地址為0、低位地址從0000H到3FFFH依次加1)寫入的值為數(shù)據(jù)總線對應(yīng)的值。 (4) 高位地址譯碼信號為電平”0”有效,對存儲器對應(yīng)4000H~7FFFH地址的數(shù)據(jù)依次進行寫入操作(其中高位地址為1,低位地址從0000H到3FFFH依次加1)寫入的值為數(shù)據(jù)總線對應(yīng)的值。 (5) 存儲器地址為7FFFH時,寫入操作完成,控制軟件停止對EPROM的編程狀態(tài),釋放對信號和信號的控制。 5.15試完成下面的RAM系統(tǒng)擴充圖。假設(shè)系統(tǒng)已占用0000~ 27FFH段內(nèi)存地址空間,并擬將后面的連續(xù)地址空間分配給該擴充RAM。 A10 A15 A14 A12 A13 A11 系統(tǒng) 譯碼器輸出 A15~A14 A13 A12 A11 A10~A0 地址空間 /Q0 00 0 0 0 0000000000~11111111111 0000H~07FFH /Q1 0 0 1 0800H~0FFFH /Q2 0 1 0 1000H~17FFH /Q3 0 1 1 1800H~1FFFH /Q4 1 0 0 2000H~27FFH /Q5 1 0 1 0 000000000~1111111111 2800H~2BFFH 1 2C00H~2FFFH /Q6 1 1 0 /Q7 1 1 1 下面方案的問題: 1. 地址不連續(xù),驅(qū)動設(shè)計可能會比較麻煩; 2. 地址重復(fù),浪費系統(tǒng)地址空間; 3. 不容易理解,實際上使用可能會有問題; 5.16某計算機系統(tǒng)的存儲器地址空間為A8000H~CFFFFH,若采用單片容量為16K*1位的SRAM芯片, (1)系統(tǒng)存儲容量為多少? (2)組成該存儲系統(tǒng)共需該類芯片多少個? (3)整個系統(tǒng)應(yīng)分為多少個芯片組? (1)該計算機系統(tǒng)的存儲器地址空間為A8000H~CFFFFH,系統(tǒng)存儲容量為: (2)單片容量為16K*1為的SRAM芯片的存儲容量為16Kbit=2KB 組成該存儲系統(tǒng)共需該類芯片160KB/2KB=80個 (3)題目未給出該系統(tǒng)的數(shù)據(jù)位寬為多少,此處設(shè)為8bit位寬 則每組芯片組需要8個單片容量為16K*1為的SRAM芯片 所有整個系統(tǒng)應(yīng)分為80/8=10個芯片組。 5.17 由一個具有8個存儲體的低位多體交叉存儲體中,如果處理器的訪存地址為以下八進制值。求該存儲器比單體存儲器的平均訪問速度提高多少(忽略初啟時的延時)? (1)10018,10028,10038,…,11008 (2)10028,10048,10068,…,12008 (3)10038,10068,10118,…,13008 此處題目有誤,10018應(yīng)為,依次類推 低位多體交叉存儲體包含8個存儲體,故處理器每次可同時訪問相鄰8個地址的數(shù)據(jù) (1)訪存地址為相鄰地址,故存儲器比單體存儲器的平均訪問速度提高8倍; (2)訪存地址為間隔2個地址,故存儲器比單體存儲器的平均訪問速度提高4倍; (3)訪存地址為間隔3個地址,但訪存地址轉(zhuǎn)換為十進制數(shù)為3、6、9、12、15、18、21、24、27,分別除8的余數(shù)為3、6、1、4、7、2、5、0、3,故存儲器比單體存儲器的平均訪問速度提高8倍(可能有誤,不確定)。 六 6.2什么是I/O端口?一般接口電路中有哪些端口? I/O端口指的是I/O接口電路中的一些寄存器;一般接口電路中有數(shù)據(jù)端口、控制端口和狀態(tài)端口。 6.3 CPU對I/O端口的編址方式有哪幾種?各有什么特點?80x86對I/O端口的編址方式屬于哪一種? (1)獨立編址 其特點:系統(tǒng)視端口和存儲單元為不同的對象。 (2)統(tǒng)一編址(存儲器映像編址總線結(jié)構(gòu)) 其特點:將端口看作存儲單元,僅以地址范圍的不同來區(qū)分兩者。 80x86對I/O端口的編址方式屬于獨立編址方式。 6.4某計算機系統(tǒng)有8個I/O接口芯片,每個接口芯片占用8個端口地址。若起始地址為9000H,8個接口芯片的地址連續(xù)分布,用74LS138作為譯碼器,試畫出端口譯碼電路圖,并說明每個芯片的端口地址范圍。 A5A4A3 接口2 接口8 接口1 …… Y7 . Y1 Y0 A2~A0 C B A EN A15 A14 … … A7 A6 接口編號 A15~A6 A5 A4 A3 A2~A0 地址空間 1 1001000000 0 0 0 000~111 9000H~9007H 2 0 0 1 000~111 9008H~900FH 3 0 1 0 000~111 9010H~9017H 4 0 1 1 000~111 9018H~901FH 5 1 0 0 000~111 9020H~9027H 6 1 0 1 000~111 9028H~902FH 7 1 1 0 000~111 9030H~9037H 8 1 1 1 000~111 9038H~903FH 6.6 CPU與I/O設(shè)備之間的數(shù)據(jù)傳送有哪幾種方式?每種工作方式的特點是什么?各適用于什么場合? ①無條件控制(同步控制):特點:方式簡單,CPU隨時可無條件讀/寫數(shù)據(jù),無法保證數(shù)據(jù)總是有效,適用面窄。適用于外設(shè)數(shù)據(jù)變化緩慢,操作時間固定,可以被認(rèn)為始終處于就緒狀態(tài)。 ②條件控制(查詢控制): 特點:CPU主動,外設(shè)被動,執(zhí)行I/O操作時CPU總要先查詢外設(shè)狀態(tài);若傳輸條件不滿足時,CPU等待直到條件滿足。解決了CPU與外設(shè)間的同步問題,可靠性高,但CPU利用率低,低優(yōu)先級外設(shè)可能無法及時得到響應(yīng)。適用于CPU不太忙,傳送速度不高的場合。 ③中斷方式: 特點:CPU在執(zhí)行現(xiàn)行程序時為處理一些緊急發(fā)出的情況,暫時停止當(dāng)前程序,轉(zhuǎn)而對該緊急事件進行處理,并在處理完后返回正常程序。CPU利用率高,外設(shè)具有申請CPU中斷的主動權(quán),可以實現(xiàn)實時故障處理,實時響應(yīng)外設(shè)的處理,但中斷服務(wù)需要保護斷點(占用存儲空間,降低速度)。適用于CPU的任務(wù)較忙,傳送速度要求不高的場合,尤其適用實時控制中緊急事件的處理。 ④DMA控制: 特點:數(shù)據(jù)不通過CPU,而由DMAC直接完成存儲單元或I/O端口之間的數(shù)據(jù)傳送。接口電路復(fù)雜,硬件開銷大,大批量數(shù)據(jù)傳送速度極快。適用于存儲器與存儲器之間,存儲器與外設(shè)之間的大批量數(shù)據(jù)傳送的場合。 ⑤通道方式:特點:以程序方式進行I/O管理,可直接訪問主存儲器,不需CPU干預(yù),可通過通道程序?qū)崿F(xiàn)除數(shù)據(jù)傳輸外的其他操作。 6.7常用的中斷優(yōu)先級的管理方式有哪幾種?分別有哪些優(yōu)缺點? ①軟件查詢:方法簡單,實現(xiàn)起來較容易,效率低。 ②硬件排序:占用硬件資源,效率較高。 ③中斷控制芯片:成本較高,效率很高。 6.8在微機與外設(shè)的幾種輸入/輸出方式中,便于CPU處理隨機事件和提高工作效率的I/O方式是哪一種?數(shù)據(jù)傳輸速率最快的是哪一種? 便于CPU處理隨機事件和提高工作效率的是中斷方式,數(shù)據(jù)傳輸速率最快的是DMA控制方式。 七 7.1 ARM處理器有幾種運行模式,處理器如何區(qū)別各種不同的運行模式? ARM處理器有7中運行模式: l 用戶模式(user):ARM處理器正常的程序執(zhí)行狀態(tài) l 快速中斷模式(fiq):處理高速中斷,用于高速數(shù)據(jù)傳輸或通道處理 l 外部中斷模式(irq):用于普通的中斷處理 l 管理模式(supervisor):操作系統(tǒng)使用的保護模式,系統(tǒng)復(fù)位后的默認(rèn)模式 l 中止模式(abort):數(shù)據(jù)或指令預(yù)取中止時進入該模式 l 未定義模式(undefined):處理未定義指令,用于支持硬件協(xié)處理器的軟件仿真 l 系統(tǒng)模式(system):運行特權(quán)級的操作系統(tǒng)任務(wù) 處理器使用CPSR寄存器中的M4~M0位來指示不同的運行模式。 7.2 通用寄存器中PC、CPSR和SPSR的作用各是什么? PC:程序計數(shù)器,用于保存處理器要取的下一條指令的地址。 CPSR:當(dāng)前程序狀態(tài)寄存器,CPSR保存條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志,以及其他一些相關(guān)的控制和狀態(tài)位。 SPSR:備份程序狀態(tài)寄存器,當(dāng)異常發(fā)生時,SPSR用于保存CPSR的當(dāng)前值,當(dāng)從異常退出時,可用SPSR來恢復(fù)CPSR。 7.3 從編程的角度講,ARM處理器的工作狀態(tài)有哪兩種?這兩種狀態(tài)之間如何轉(zhuǎn)換? 從編程角度講,ARM處理器的兩種工作狀態(tài)為: l ARM狀態(tài)(復(fù)位狀態(tài)):處理器執(zhí)行32位的字對齊的ARM指令 l Thumb狀態(tài):處理器執(zhí)行16位的半字對齊的Thumb指令 ARM指令集和Thumb指令集均有切換處理器狀態(tài)的指令,并可在兩種工作狀態(tài)之間切換: l 進入Thumb狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位(最低位)為1時,執(zhí)行BX指令就可以進入Thumb狀態(tài)。如果處理器在Thumb狀態(tài)時發(fā)生異常(異常處理要在ARM狀態(tài)下執(zhí)行),則當(dāng)異常處理返回時自動切換到Thumb狀態(tài) l 進入ARM狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位(最低位)位0時,執(zhí)行BX指令就可以進入ARM狀態(tài)。處理器進行異常處理時,把PC的值放入異常模式鏈接寄存器中,從異常向量地址開始執(zhí)行程序,系統(tǒng)自動進入ARM狀態(tài) 7.5 哪些特征是ARM和其他RISC體系結(jié)構(gòu)所共有的? ARM和其他RISC體系結(jié)構(gòu)共有的三個相同特征: l Load/Store體系結(jié)構(gòu):也稱為寄存器/寄存器體系結(jié)構(gòu)或RR系統(tǒng)結(jié)構(gòu)。在這類機器中,操作數(shù)和運算結(jié)果不能直接從主寄存器中存取,而是必須借用大量的標(biāo)量或矢量寄存器來進行中轉(zhuǎn)。采用這一結(jié)構(gòu)的處理器必然要使用更多的通用寄存器存儲操作數(shù)和運算結(jié)果,由于寄存器與運算器之間的數(shù)據(jù)傳輸速度遠(yuǎn)高于主存與運算器之間的數(shù)據(jù)傳輸速度,采用這一結(jié)構(gòu)有助于提高計算機整體的運行速度 l 采用固定長度精簡指令集:這樣使得機器譯碼變得容易,可以通過硬件直接譯碼的方式完成對指令的解析。雖然由于與復(fù)雜指令集相比,采用精簡指令集需要更多指令來完成相同的任務(wù),但采用硬件直接譯碼的速度卻高于采用微碼方式譯碼。通過采用高速緩存等提高寄存器存儲速度的技術(shù),采用固定長度精簡指令集的機器可以獲得更高性能 l 三地址指令格式:除了除法指令外,ARM的大部分?jǐn)?shù)據(jù)處理指令采用三地址指令。即在指令中包含了目的操作數(shù)、源操作數(shù)和第二源操作數(shù) 八 8.1 ARM指令有哪幾種尋址方式?試分別說明。 ARM指令系統(tǒng)支持的常見尋址方式有: 寄存器尋址: 1. 操作數(shù)存放在寄存器中; 2.指令地址碼字段給出寄存器編號(名); 3.指令執(zhí)行時直接取出寄存器值來操作; 立即尋址: 1. 操作數(shù)包含在指令當(dāng)中; 2. 指令地址碼部分就是數(shù)據(jù)本身; 3. 取指時就取出了可立即使用的操作數(shù); 寄存器間接尋址: 寄存器移位尋址 1. 操作數(shù)存放在寄存器中; 2.指令地址碼字段給出寄存器編號(名)及移位表達式; 3.指令執(zhí)行時取出寄存器值并移位,再將結(jié)果作為源操作數(shù); 寄存器間接尋址: 1. 操作數(shù)存放在內(nèi)存單元中; 2.指令地址碼字段給出 [寄存器編號(名)]; 3.指令執(zhí)行時根據(jù)寄存器值(指針)找到相應(yīng)的存儲單元; 基址變址尋址 1. 操作數(shù)存放在內(nèi)存單元中; 2.指令地址碼字段給出 [寄存器編號(名)]和偏移量; 3.指令執(zhí)行時將基址寄存器的內(nèi)容與偏移量(<4K)相加/減,形成操作數(shù)的有效地址。 4. 常用于查表、數(shù)組操作、功能部件寄存器訪問等。 多寄存器尋址/塊復(fù)制尋址: 1. 操作數(shù)存放在內(nèi)存單元中; 2.指令地址碼字段給出 {寄存器編號(名)列表}; 3.編號高的寄存器總是對應(yīng)內(nèi)存中的高地址單元; 4. 可完成存儲塊和16個寄存器或其子集之間的數(shù)據(jù)傳送。 堆棧尋址: 1. 操作數(shù)存放在內(nèi)存棧頂單元中; 2.指令地址碼字段固定使用棧頂指針SP; 3.指令執(zhí)行時同多寄存器/塊尋址,可完成多個數(shù)據(jù)的入棧和出棧; 相對尋址: 1. 操作數(shù)為指令存放地址; 2.指令地址碼字段為地址偏移量; 3.指令執(zhí)行時同基址尋址,由PC提供基地址根據(jù)偏移量完成跳轉(zhuǎn); 8.2 指出下列指令操作數(shù)的尋址方式。 1) MOV R1,R2 寄存器尋址 2) SUBS R0,R0, #2 立即尋址 3) SWP R1,R1,[R2] 寄存器間接尋址 4) STR R1,[R0,#-4]! 基址變址尋址 5) LDMFD SP! , {R1~R4,LR} 多寄存器直接尋址 6) ANDS R0,R0,R1,LSL R2 寄存器移位尋址 7) STMIA R1!, {R2~R5, R8} 多寄存器直接尋址 8) BL AGAIN 相對尋址 8.3 ARM指令中的第二操作數(shù)有哪幾種表示形式?舉例說明。 第二源操作數(shù)有三類表示形式,分別是: 1) 立即數(shù)方式(#imm) #imm是一個無符號的32位數(shù)值變量,例如 0x104 2) 寄存器方式(Rm) Rm是存儲第二源操作數(shù)的寄存器,例如R3表示R3寄存器 3) 寄存器移位方式(Shifter_operand) 例如R3,ASR #2表示R3地址右移2后寄存器中的值 8.4 判斷下列指令的正誤,并說明理由。 1) ADD R1,R2,#4! 錯誤,#4是立即數(shù)尋址,不是寄存器尋址,所以不能使用“!”來對寄存器值更新。 2) LDMFD R13!,{R2,R4} 正確 3) LDR R1,[R3]! 錯誤,這是零偏移形式,無需使用“!” 4) MVN R5,#0x2F100 正確 5) SBC R15,R6,LSR R4 正確 6) MUL R2,R2,R5 正確 7) MSR CPSR,#0x001 錯誤,立即數(shù)值不合理(模式) 8) LDRB PC,[R3] 正確 8.5 對下列各指令組寫出運算指令執(zhí)行的條件。 1) CMP R0,R1 ADDHI R1,R1,#1 HI:如果R0中的無符號數(shù)>R1中的無符號數(shù)則執(zhí)行ADD指令。 2) CMP R1,R2 SUBMI R2,R2,#0x08 MI:表示如果R1寄存器中的值小于R2寄存器中的值,則執(zhí)行SUB指令。 8.7 指出MOV指令與LDR加載指令的區(qū)別及用途。 ARM是RISC結(jié)構(gòu),數(shù)據(jù)從內(nèi)存到CPU之間的移動只能通過L/S指令來完成,也就是LDR/STR指令。比如想把數(shù)據(jù)從內(nèi)存中某處讀取到寄存器中,只能使用ldr比如: LDR R0, 0x12345678 就是把0x12345678這個地址中的值存放到R0中。而MOV不能這樣用,MOV只能在寄存器之間移動數(shù)據(jù),或者把立即數(shù)移動到寄存器中,這個是和x86這種CISC架構(gòu)的芯片區(qū)別最大的地方。x86中沒有LDR這種指令,因為x86的MOV指令可以將數(shù)據(jù)從內(nèi)存中移動到寄存器中。 8.8 寫一段代碼判斷R1的值是否大于0x30 , 是則將R1減去0x30. CMP R1, 0x30 SUBGT R1 , R1, 0x30 8.9 ARM處理器中支持哪幾種堆棧? 畫出每種堆棧操作的示意圖。 ARM支持的四種堆棧類型: 1. 滿遞增(FA):堆棧向上增長,堆棧指針指向內(nèi)含有效數(shù)據(jù)項的最高地址。 棧底數(shù)據(jù) 堆棧數(shù)據(jù) 堆棧數(shù)據(jù) 堆棧數(shù)據(jù) 棧頂數(shù)據(jù) 堆棧生長方向 指針 存儲器地址 0xA0000004 0xA0000008 0xA000000C 0xA0000010 0xA0000014 2. 空遞增(EA) :堆棧向上增長,堆棧指針指向堆棧上的第一個空位置。 存儲器地址 0xA0000004 0xA0000008 0xA000000C 0xA0000010 0xA0000014 棧底數(shù)據(jù) 堆棧數(shù)據(jù) 堆棧數(shù)據(jù) 堆棧數(shù)據(jù) 空閑 堆棧生長方向 指針 3. 滿遞減(FD) :堆棧向下增長,堆棧指針指向內(nèi)含有效數(shù)據(jù)項的最低地址。 存儲器地址 0xA0000004 0xA0000008 0xA000000C 0xA0000010 0xA0000014 棧頂數(shù)據(jù) 堆棧數(shù)據(jù) 堆棧數(shù)據(jù) 堆棧數(shù)據(jù) 棧底數(shù)據(jù) 4. 空遞減(ED) :堆棧向下增長,堆棧指針向堆棧下的第一個空位置。 存儲器地址 0xA0000004 0xA0000008 0xA000000C 0xA0000010 0xA0000014 指針 堆棧生長方向 指針 空閑 堆頂數(shù)據(jù) 堆棧數(shù)據(jù) 堆棧數(shù)據(jù) 堆底數(shù)據(jù) 堆棧生長方向 九 9.3 AREA gcd,CODE,READONLY EXPORT gcd gcd CMP R0,R1 BEQ RE SUBGT R0,R0,R1 SUBLT R1,R1,R0 RE 9.5編寫一個程序段,當(dāng)寄存器r3中數(shù)據(jù)大于r2中的數(shù)據(jù)時,將r2中的數(shù)據(jù)加10存入寄存器r3;否則將r2中的數(shù)據(jù)加100存入寄存器r3,并把這個程序段定義成一個代碼段。 AREA ADDITION,CODE,READONLY ENTRY Loop CMP R3 , R2 BHI GREATER ADD R3 , R2 , #100 B STOP GREATER ADD R3 , R2 , #10 STOP … END 9.8試編寫一個循環(huán)程序,實現(xiàn)從0開始10個偶數(shù)的累加。 AREA Foud,CODE,READONLY ENTRY MOV R0,#0 ;存放累加和 MOV R1,#0 ;存放加數(shù) MOV R2,#9 ;累加次數(shù) Loop ADD R1,R1,#2 ADD R0,R0,R1 SUB R2,R2,#1 ;調(diào)整累加次數(shù) BNE Loop Stop …… END 9.15閱讀程序,說明如下程序完成的功能。 llsearch CMP R0, #0 LDRNEB R2, [R0] CMPNE R1, R2 LDRNE R0, [R0, #4] BNE llsearch MOV PC, LR 若R0≠0,則將R0指向的字節(jié)數(shù)據(jù)讀入R2; 若R0≠0且R1≠R2,則將R0+4指向的雙字?jǐn)?shù)據(jù)存入R0中; 循環(huán),直至R1=R2退出子程序。 9.16閱讀程序,說明如下程序完成的功能。 strcmp LDRB R2, [R0], #1 LDRB R3, [R1], #1 CMP R2, #0 CMPNE R3, #0 BEQ return CMP R2, R3 BEQ strcmp return SUB R0, R2, R3 MOV PC, LR R0指向數(shù)據(jù)串S1(的前一個字節(jié)單元),R1指向數(shù)據(jù)串S2(的前一個字節(jié)單元); 依次比較字符串S1、S2中的字符,直至任一字符串結(jié)束; 將S1,S2第一個不同字符(或最后一個字符)的差存入R0并返回; 9.17閱讀程序,說明如下程序完成的功能。 CMP R0, #maxindex LDRLS PC, [PC, R0, LSL #2] B IndexOutOfRange DCD Handler0 DCD Handler1 DCD Handler2 DCD Handler3 … 實現(xiàn)子程序散轉(zhuǎn):若R0在有效范圍內(nèi)(小于#maxindex)則跳轉(zhuǎn)到Hander0~3所指的子程序之一。 9.18閱讀程序,說明如下程序完成的功能。 loop LDMIA R1- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 微處理器 系統(tǒng) 結(jié)構(gòu) 嵌入式 設(shè)計 第二 答案
鏈接地址:http://m.zhongcaozhi.com.cn/p-9032572.html