




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、嵌入式系統(tǒng)結(jié)構(gòu)與編程習(xí)題答案第一章緒論1. 國(guó)內(nèi)嵌入式系統(tǒng)行業(yè)對(duì)“嵌入式系統(tǒng)”的定義是什么?如何理解?答:國(guó)內(nèi)嵌入式行業(yè)一個(gè)普遍認(rèn)同的定義是:以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能,可靠性,成本,體積,功耗嚴(yán)格要求的專業(yè)計(jì)算機(jī)系統(tǒng)。從這個(gè)定義可以看出嵌入式系統(tǒng)是與應(yīng)用緊密結(jié)合的,它具有很強(qiáng)的專用性,必須結(jié)合實(shí)際系統(tǒng)需求進(jìn)行合理的剪裁利用。因此有人把嵌入式系統(tǒng)比作是一個(gè)針對(duì)特定的應(yīng)用而“量身定做”的專業(yè)計(jì)算機(jī)系統(tǒng)。2嵌入式系統(tǒng)是從何時(shí)產(chǎn)生的,簡(jiǎn)述其發(fā)展歷程。答:從20世紀(jì)70年代單片機(jī)的出現(xiàn)到目前各式各樣的嵌入式微處理器,微控制器的大規(guī)模應(yīng)用,嵌入式系統(tǒng)已經(jīng)有了30多
2、年的發(fā)展歷史。嵌入式系統(tǒng)的出現(xiàn)最初是基于單片機(jī)的。公司1971年開(kāi)發(fā)出第一片具有4位總線結(jié)構(gòu)的微處理器4004,可以說(shuō)是嵌入式系統(tǒng)的萌芽階段。80年代初的8051是單片機(jī)歷史上值得紀(jì)念的一頁(yè)。20世紀(jì)80年代早期,出現(xiàn)了商業(yè)級(jí)的“實(shí)時(shí)操作系統(tǒng)內(nèi)核”,在實(shí)時(shí)內(nèi)核下編寫應(yīng)用軟件可以使新產(chǎn)品的沿著更快,更節(jié)省資金。20世紀(jì)90年代實(shí)時(shí)內(nèi)核發(fā)展為實(shí)時(shí)多任務(wù)操作系統(tǒng)。步入21世紀(jì)以來(lái),嵌入式系統(tǒng)得到了極大的發(fā)展。在硬件上,的性能得到了極大的提升,特別是技術(shù)的出現(xiàn)與完善,為嵌入式操作系統(tǒng)提供了功能強(qiáng)大的硬件載體,將嵌入式系統(tǒng)推向了一個(gè)嶄新的階段。3當(dāng)前最常用的源碼開(kāi)放的嵌入式操作系統(tǒng)有哪些,請(qǐng)舉出兩例,并
3、分析其特點(diǎn)。答:主要有嵌入式和嵌入式實(shí)時(shí)操作內(nèi)核嵌入式操作系統(tǒng)是針對(duì)嵌入式微控制器的特點(diǎn)而量身定做的一種操作系統(tǒng),包括常用的嵌入式通信協(xié)議和常用驅(qū)動(dòng),支持多種文件系統(tǒng)。主要有以下特點(diǎn):源碼開(kāi)放,易于移植,內(nèi)核小,功能強(qiáng)大,運(yùn)行穩(wěn)定,效率高等。是源碼工卡的實(shí)時(shí)嵌入式系統(tǒng)內(nèi)核,主要有以下特點(diǎn):源碼公開(kāi),可移植性強(qiáng),可固化,可剪裁,占先式,多任務(wù),可確定性,提供系統(tǒng)服務(wù)等。4舉例說(shuō)明嵌入式設(shè)備在工控設(shè)備中的應(yīng)用。答:由于工業(yè)控制系統(tǒng)特別強(qiáng)調(diào)可靠性和實(shí)時(shí)性,“量身定做”的嵌入式控制系統(tǒng)恰能滿足工業(yè)控制的需求。例如:工業(yè)過(guò)程控制,數(shù)字控制機(jī)床,電網(wǎng)設(shè)備監(jiān)測(cè),電力自動(dòng)控制系統(tǒng),石油化工監(jiān)控等。5嵌入式技術(shù)
4、的發(fā)展趨勢(shì)有哪些?答:未來(lái)嵌入式系統(tǒng)的發(fā)展趨勢(shì)有:1.隨著信息化與數(shù)字化的發(fā)展,嵌入式設(shè)備進(jìn)行網(wǎng)絡(luò)互聯(lián)是未來(lái)發(fā)展的趨勢(shì)。2.優(yōu)化嵌入式系統(tǒng)軟硬件內(nèi)核,提高系統(tǒng)運(yùn)行速度,降低功耗和硬件成本。3.指令集的并行計(jì)算技術(shù)將引入嵌入式微處理器。4.嵌入式微處理器將會(huì)向多核技術(shù)發(fā)展。5.嵌入式技術(shù)將引領(lǐng)信息時(shí)代。第2章技術(shù)與體系結(jié)構(gòu)1 .簡(jiǎn)述處理器內(nèi)核調(diào)試結(jié)構(gòu)原理答:處理器一般都帶有嵌入式追蹤宏單元(),它是公司自己推出的調(diào)試工具。處理器都支持基于(聯(lián)合測(cè)試行動(dòng)小組)的調(diào)試方法。它利用芯片內(nèi)部的來(lái)控制內(nèi)核操作,可完成單步調(diào)試和斷點(diǎn)調(diào)試等操作。當(dāng)處理單步執(zhí)行完畢或到達(dá)斷點(diǎn)處時(shí),就可以在宿主機(jī)端查看處理器現(xiàn)場(chǎng)
5、數(shù)據(jù),但是它不能在運(yùn)行過(guò)程中對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行仿真。ETM并數(shù)據(jù)送往()控制器。解決了上述問(wèn)題,能夠在運(yùn)行過(guò)程中實(shí)時(shí)掃描處理器的現(xiàn)場(chǎng)信息,上圖中分為三條掃描鏈(圖中的粗實(shí)線),分別用來(lái)監(jiān)視核,嵌入式的狀態(tài)。2 .分析7各字母所代表的含義。答:7TDMI-S中是的縮寫7是系列號(hào);T:支持高密度16位的指令集;D:支持片上調(diào)試;M:支持用于長(zhǎng)乘法操作(64位結(jié)果)指令,包含快速乘法器;I:帶有嵌入式追蹤宏單元,用來(lái)設(shè)置斷點(diǎn)和觀察點(diǎn)的調(diào)試硬件;S:可綜合版本,意味著處理器內(nèi)核是以源代碼形式提供的。這種源代碼形式又可以編譯成一種易于工具使用的形式。3.處理器的工作模式有哪幾種,其中哪些為特權(quán)模式,哪些為異
6、常模式,并指出處理器在什么情況下進(jìn)入相應(yīng)的模式。答:技術(shù)的設(shè)計(jì)者將處理器在應(yīng)用中可能產(chǎn)生的狀態(tài)進(jìn)行了分類,并針對(duì)同一類型的異常狀態(tài)設(shè)定了一個(gè)固定的入口點(diǎn),當(dāng)異常產(chǎn)生時(shí),程序會(huì)自動(dòng)跳轉(zhuǎn)到對(duì)應(yīng)異常入口處進(jìn)行異常服務(wù)。1 .用戶模式:非特權(quán)模式,也就是正常程序執(zhí)行的模式,大部分任務(wù)在這種模式下執(zhí)行。在用戶模式下,如果沒(méi)異常發(fā)生,不允許應(yīng)用程序自行改變處理器的工作模式,如果有異常發(fā)生,處理器會(huì)自動(dòng)切換工作模式2 .模式:也稱為快速中斷模式,支持高速數(shù)據(jù)傳輸和通道處理,當(dāng)一個(gè)高優(yōu)先級(jí)()中斷產(chǎn)生時(shí)將會(huì)進(jìn)入這種模式。3 .模式:也稱為普通中斷模式,:當(dāng)一個(gè)低優(yōu)先級(jí)()中斷產(chǎn)生時(shí)將會(huì)進(jìn)入這種模式。在這模式下
7、按中斷的處理器方式又分為向量中斷和非向量中斷兩種。通常的中斷處理都在模式下進(jìn)行。4 .模式:稱之為管理模式,它是一種操作系統(tǒng)保護(hù)模式。當(dāng)復(fù)位或軟中斷指令執(zhí)行時(shí)處理器將進(jìn)入這種模式。5 .中止模式:當(dāng)存取異常時(shí)將會(huì)進(jìn)入這種模式,用來(lái)處理存儲(chǔ)器故障、實(shí)現(xiàn)虛擬存儲(chǔ)或存儲(chǔ)保護(hù)。6 .未定義指令異常模式:當(dāng)執(zhí)行未定義指令時(shí)會(huì)進(jìn)入這種模式,主要是用來(lái)處理未定義的指令陷阱,支持硬件協(xié)處理器的軟件仿真,因?yàn)槲炊x指令多發(fā)生在對(duì)協(xié)處理器的操作上。7 .系統(tǒng)模式:使用和模式相同寄存器組的特權(quán)模式,用來(lái)運(yùn)行特權(quán)級(jí)的操作系統(tǒng)任務(wù)。在這7種工作模式中,除了用戶模式以外,其他6種處理器模式可以稱為特權(quán)模式,在這些模式下,
8、程序可以訪問(wèn)所有的系統(tǒng)資源,也可以任意地進(jìn)行處理器模式的切換。在這6種特權(quán)模式中,除了系統(tǒng)模式外的其他5種特權(quán)模式又稱為異常模式,每種異常都對(duì)應(yīng)有自己的異常處理入口點(diǎn)。4.答分析程序狀態(tài)寄存器()各位的功能描述,并說(shuō)明在什么情況下進(jìn)行置位和清零。條件位:N=1-結(jié)果為負(fù),0-結(jié)果為正或0Z=1-結(jié)果為0,0-結(jié)果不為0C=1-進(jìn)位,0-借位V=1-結(jié)果溢出,0結(jié)果沒(méi)溢出Q位:僅5架構(gòu)支持指示增強(qiáng)型指令是否溢出中斷禁止位:I=1:禁止.F=1:禁止.T僅架構(gòu)支持T=0:處理器處于狀態(tài)T=1:處理器處于狀態(tài)位(處理器卞II式位):0b100000b100010b100100b100110b1011
9、10b110110b111115.簡(jiǎn)述處理器異常處理和程序返回的過(guò)程。答:只要正常的程序流被暫時(shí)中止,處理器就進(jìn)入異常模式。例如響應(yīng)一個(gè)來(lái)自外設(shè)的中斷。在處理異常之前,7內(nèi)核保存當(dāng)前的處理器狀態(tài),這樣當(dāng)處理程序結(jié)束時(shí)可以恢復(fù)執(zhí)行原來(lái)的程序。如果同時(shí)發(fā)生兩個(gè)或更多異常,那么將按照固定的順序來(lái)處理異常。異?;蛉肟诜祷刂噶钕蚶锉砥铺幚砥髂J絻?yōu)先級(jí)141460x00000008未定義的指令1460x00000004領(lǐng)取指中止14450X0000000C快中斷14430X0000001C中斷14440x00000018數(shù)據(jù)中止14820X00000010復(fù)位無(wú)無(wú)10X00000000在異常發(fā)生后,7內(nèi)
10、核會(huì)作以下工作:1 .在適當(dāng)?shù)闹斜4嫦乱粭l指令的地址2 .將復(fù)制到適當(dāng)?shù)闹校? .將模式位強(qiáng)制設(shè)置為與異常類型相對(duì)應(yīng)的值;4 .強(qiáng)制從相關(guān)的異常向量處取指。7內(nèi)核在中斷異常時(shí)置位中斷禁止標(biāo)志,這樣可以防止不受控制的異常嵌套。注:異常總是在狀態(tài)中進(jìn)行處理。當(dāng)處理器處于狀態(tài)時(shí)發(fā)生了異常,在異常向量地址裝入時(shí),會(huì)自動(dòng)切換到狀態(tài)。當(dāng)異常結(jié)束時(shí),異常處理程序必須:1 .將中的值減去偏移量后存入,偏移量根據(jù)異常的類型而有所不同;2 .將的值復(fù)制回;3 .清零在入口置位的中斷禁止標(biāo)志。注:恢復(fù)的動(dòng)作會(huì)將T、F和I位自動(dòng)恢復(fù)為異常發(fā)生前的值。6.處理器字?jǐn)?shù)據(jù)的存儲(chǔ)格式有哪兩種?并指出這兩種格式的區(qū)別。答:7處
11、理器可以將存儲(chǔ)器中的字以下列格式存儲(chǔ)大端格式()小端格式()小端存儲(chǔ)器系統(tǒng):在小端格式中,高位數(shù)字存放在高位字節(jié)中。因此存儲(chǔ)器系統(tǒng)字節(jié)0連接到數(shù)據(jù)線70。大端存儲(chǔ)器系統(tǒng):在大端格式中,高位數(shù)字存放在低位字節(jié)中。因此存儲(chǔ)器系統(tǒng)字節(jié)0連接到數(shù)據(jù)線3124。7 .分析帶有存儲(chǔ)器訪問(wèn)指令()的流水線運(yùn)行情況,并用圖示說(shuō)明流水線的運(yùn)行機(jī)制。答:存儲(chǔ)器訪問(wèn)指令流水線舉例周期搽作ADOSUBLDRMOVANDORR123456|FetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecute回寫L.FetchDecodeExecute1FetchDecode1取指
12、的存儲(chǔ)器訪問(wèn)和執(zhí)行的數(shù)據(jù)路徑占用都是不可同時(shí)共享的資源,對(duì)于多周期指令來(lái)說(shuō),如果指令復(fù)雜以至于不能在單個(gè)時(shí)鐘周期內(nèi)完成執(zhí)行階段,就會(huì)產(chǎn)生流水線阻塞。對(duì)存儲(chǔ)器的訪問(wèn)指令是非單周期指令指令的執(zhí)行,訪問(wèn)存儲(chǔ)器,回寫寄存器(占用了3個(gè)周期)。造成了指令的執(zhí)行被阻斷。8 .簡(jiǎn)述9的5級(jí)流水線每一級(jí)所完成的功能和實(shí)現(xiàn)的操作。答:920在指令操作上采用5級(jí)流水線.取指:從指令中讀取指令。譯碼:對(duì)指令進(jìn)行譯碼,識(shí)別出是對(duì)哪個(gè)寄存器進(jìn)行操作并從通用寄存器中讀取操作數(shù)。執(zhí)行:進(jìn)行運(yùn)算和移位操作,如果是對(duì)存儲(chǔ)器操作的指令,則在中計(jì)算出要訪問(wèn)的存儲(chǔ)器地址。存儲(chǔ)器訪問(wèn):如果是對(duì)存儲(chǔ)器訪問(wèn)的指令,用來(lái)實(shí)現(xiàn)數(shù)據(jù)緩沖功能(通
13、過(guò)數(shù)據(jù))。寄存器回寫:將指令運(yùn)算或操作結(jié)果寫回到目標(biāo)寄存器中。9 .什么叫流水線互鎖?應(yīng)如何來(lái)解決,舉例說(shuō)明。答:互鎖:當(dāng)前指令的執(zhí)行需要前面指令的執(zhí)行結(jié)果,但前面的指令沒(méi)有執(zhí)行完畢,引起流水線的等待。互鎖發(fā)生時(shí),硬件會(huì)停止指令的執(zhí)行,直到數(shù)據(jù)準(zhǔn)備好。螞期ADDRI,RI,R2SUBR3tR4,R1LORR4JR71ORRR8,R3,R4AHDR6,R3,R1EORR3,R1,R2F-取指(Fetch)D-解碼(DecodedE-執(zhí)行(Execute)I-互鎖(Interlock)M存(Memory)W寫回(Writehack)上邊程序中指令執(zhí)行時(shí)需要使用指令加載后的R4寄存器,因此造成了指令
14、的等待。編譯器以及匯編程序員可以通過(guò)重新設(shè)計(jì)代碼的順序或者其他辦法來(lái)減少互鎖的數(shù)量。第3章指令集尋址方式1 .在指令編碼中,條件碼占幾位,最多有多少個(gè)條件,各個(gè)條件是如何形成的?答:條彳碼占4位,最多有15個(gè)條件麋作碼條件助記符標(biāo)志含義00001相等00010不相等00101無(wú)符號(hào)數(shù)大于或等于00110無(wú)符號(hào)數(shù)小于01001負(fù)數(shù)01010正數(shù)或零01101溢出01110沒(méi)有溢出100010無(wú)符號(hào)數(shù)大于100101無(wú)符號(hào)數(shù)小于或等于1010有符號(hào)數(shù)大于或等于1011有符號(hào)數(shù)小于11000有符號(hào)數(shù)大于11011有符號(hào)數(shù)小于或等于1110任何無(wú)條件執(zhí)行(指令默認(rèn)條件)1111任何從不執(zhí)行(不要使用)
15、2 .指令條件碼中,V標(biāo)志位在什么情況下才能等于1?答:V一溢出標(biāo)志位對(duì)于加減法運(yùn)算指令,當(dāng)操作數(shù)和運(yùn)算結(jié)果為二進(jìn)制補(bǔ)碼表示的帶符號(hào)數(shù)時(shí),1表示符號(hào)位溢出,其他指令通常不影響V位。3 .在指令中,什么是合法的立即數(shù)?判斷下面各立即數(shù)是否合法,如果合法則寫出在指令中的編碼格式(也就是8位常數(shù)和4位移位數(shù))0x54300x1080x3040x5010100000x3340000x30000x100000x55800000x7F8000x39C0000x180000答:立即數(shù)必須由1個(gè)8位的常數(shù)通過(guò)進(jìn)行32位循環(huán)右移偶數(shù)位得到,其中循環(huán)右移的位數(shù)由一個(gè)4位二進(jìn)制的兩倍表示。即一個(gè)8位的常數(shù)通過(guò)循環(huán)右
16、移2*4位(即0,2,4,。30)得到0X54300000,0000,0000,0000,0101,0100,0011,0000非法立即數(shù)0X1080000,0000,0000,0000,0000,0001,0000,10000x42循環(huán)右移30位(4=0)0X3040000,0000,0000,0000,0000,0011,0000,01000x5010000,0000,0000,0000,0000,0101,0000,00010100000000,1111,1011,0001,0000,0000,0000,00000x3340000000,0000,0011,0011,0100,0000,
17、0000,00000x30000000,0000,0011,1111,1100,0000,0000,00000x100000000,0001,1111,1110,0000,0000,0000,00000x55800000000,0101,0101,1000,0000,0000,0000,00000x7F8000000,0000,0000,0111,1111,1000,0000,00000x39C0000000,0000,0011,1001,1100,0000,0000,00000x1800000001,1111,1110,1000,0000,0000,0000,000001循環(huán)右移30位(4=
18、0)非法立即數(shù)非法立即數(shù)0循環(huán)右移18位(4=0x9)0循環(huán)右移18位(4=0x9)非法立即數(shù)非法立即數(shù)非法立即數(shù)07循環(huán)右移18位(4=0x9)非法立即數(shù)4 .分析邏輯右移,算術(shù)右移,循環(huán)右移,帶擴(kuò)展的循環(huán)右移它們間的差別。答:邏輯左移:31邏輯右移:31匚尸算術(shù)右移:0循環(huán)右移:31帶擴(kuò)展的循環(huán)右移:315數(shù)據(jù)處理指令具體的尋址方式有哪些,如果程序計(jì)數(shù)器作為目標(biāo)寄存器,會(huì)產(chǎn)生什么結(jié)果?答:數(shù)據(jù)處理指令尋址方式具體可分為5種類型:1)第二操作數(shù)為立即數(shù)2)第二操作數(shù)為寄存器3)第二操作數(shù)為寄存器移位方式且移位的位數(shù)為一個(gè)5位立即數(shù)4)第二操作數(shù)為寄存器移位方式且移位數(shù)值放在寄存器中5)第二操
19、作數(shù)位寄存器進(jìn)行移位得到。如果(R15)用作目標(biāo)寄存器,指令會(huì)產(chǎn)生不可預(yù)知的結(jié)果。6 .在指令尋址中,字,無(wú)符號(hào)字節(jié)的指令尋址和半字,有符號(hào)字節(jié)尋址,試分析它們之間的差別。答:在指令尋址中,字,無(wú)符號(hào)字節(jié)的指令尋址中共有以下3種內(nèi)存地址構(gòu)成格式:1)中的偏移量為立即數(shù)2)中的偏移量為寄存器的值3)中的偏移量通過(guò)寄存器移位得到半字,有符號(hào)字節(jié)的指令尋址中共有以下2種內(nèi)存地址構(gòu)成格式:1)中的偏移量為立即數(shù)2)中的偏移量為寄存器的值7 .塊拷貝指令在實(shí)現(xiàn)寄存器組合連續(xù)的內(nèi)存單元中數(shù)據(jù)傳遞時(shí),地址的變化方式有哪幾種類型,并分析它們的地址變化情況。答:批量指令在實(shí)現(xiàn)寄存器組合連續(xù)的內(nèi)存單元中數(shù)據(jù)傳遞時(shí)
20、,地址的變化方式有以下4種類型:后增():每次數(shù)據(jù)傳送后地址加4;先增():每次數(shù)據(jù)傳送前地址加4;后減():每次數(shù)據(jù)傳送后地址減4;先減():每次數(shù)據(jù)傳送前地址減4;8 .棧操作指令地址的變化方式有哪幾種類型,并分析它們的地址變化情況,從而得出棧操作指令尋址和塊拷貝指令之間的對(duì)應(yīng)關(guān)系。答:根據(jù)堆棧指針的指向位置不同和堆棧的生長(zhǎng)方向不同,共有4種類型的堆棧工作方式:滿遞增堆棧:堆棧指針指向最后壓入的數(shù)據(jù),且由低地址向高地址生成。滿遞減堆棧:堆棧指針指向最后壓入的數(shù)據(jù),且由高地址向低地址生成。空遞增堆棧:堆棧指針指向下一個(gè)要放入數(shù)據(jù)的空位置,且由低地址向高地址生成??者f減堆棧:堆棧指針指向下一個(gè)
21、要放入數(shù)據(jù)的空位置,且由高地址向低地址生成。9 .分析協(xié)處理器加載/存儲(chǔ)指令的尋址方式種的內(nèi)存地址索引格式中不同的匯編語(yǔ)法格式下內(nèi)存地址的計(jì)算方法。答:協(xié)處理器加載/存儲(chǔ)指令的尋址方式種的內(nèi)存地址索引格式中,索引格式類似于指令尋址中的立即數(shù)作為地址偏移量的形式。中的偏移量為8位立即數(shù)的匯編語(yǔ)法格式有以下3種:?前變址不回寫形式:<>,<8>*4第一個(gè)內(nèi)存地址編號(hào)為基地址寄存器值加上/減去8的4倍,后續(xù)的每一個(gè)地址是前一個(gè)內(nèi)存地址加4,直到協(xié)處理器發(fā)出信號(hào),結(jié)束本次數(shù)據(jù)傳輸為止。?前變址回寫形式:<>,<8>*4!第一個(gè)內(nèi)存地址編號(hào)為基地址寄存器值
22、加上/減去8的4倍,后續(xù)的每一個(gè)地址是前一個(gè)內(nèi)存地址加4,直到協(xié)處理器發(fā)出信號(hào),結(jié)束本次數(shù)據(jù)傳輸為止。當(dāng)指令執(zhí)行時(shí),生成的地址值將寫入基址寄存器。?后變址回寫形式:<>,<8>*4內(nèi)存地址為基址寄存器的值,當(dāng)存儲(chǔ)器操作完成后,將基地址寄存器值加上/減去8的4倍,后續(xù)的每一個(gè)地址是前一個(gè)內(nèi)存地址加4,直到協(xié)處理器發(fā)出信號(hào),結(jié)束本次數(shù)據(jù)傳輸為止。最后將值加上/減去8的4倍寫回到基址寄存器(更新基地址寄存器)。10 .寫出下列指令的機(jī)器碼,并分析指令操作功能。R0,R1R1,,0X198R1,R2,,0R20R0,R14R0,R11#2!R0,R14R0,R22!R1,R20
23、0R0,R128R0!,R151011!R03答:機(jī)器碼部分略。R0 1R0,R1R1,,0X198;R00X198R1,R2,,0;當(dāng)1時(shí),R12+0并影響標(biāo)志位R20;R2-0,并影響標(biāo)志位R0,R14;R0【R1+4】R0,R11#2!;【R11*4】0,R111*4R0,R14;R0«【R1+4】半字,R0的高16位清零R0,R22!;R0«【R2-2】字節(jié),R0有符號(hào)擴(kuò)展為32位,R22-2R1,R200;【R2+00】1低8位,R0,R128R0】【11】以字為單位讀取到R1,R2,R8中R0!,R151011將寄存器R15,R10,R11的值以字為單位依次寫入
24、【R0】中,每寫一個(gè)字之前R00-4!R03將寄存器R03,的的值以字為單位依次寫入中,每寫一個(gè)字之后4第4章指令集系統(tǒng)1指令可分為哪幾類?說(shuō)出哪幾條指令是無(wú)條件執(zhí)行的。答:微處理器的指令集可以分為:數(shù)據(jù)處理指令,分支指令,加載/存儲(chǔ)指令,批量加載/存儲(chǔ)指令,交換指令,程序狀態(tài)寄存器()處理指令,協(xié)處理器操作指令和異常產(chǎn)生指令八大類。幾乎所有的指令都是可以有條件執(zhí)行的。帶鏈接和狀態(tài)切換的跳轉(zhuǎn)指令,當(dāng)目標(biāo)地址由程序標(biāo)號(hào)給出時(shí),即:<>由于指令碼中是沒(méi)有條件編碼位的,所以指令是無(wú)條件執(zhí)行的。2 .如何實(shí)現(xiàn)兩個(gè)64位數(shù)的加法操作,如何實(shí)現(xiàn)兩個(gè)64位數(shù)的減法操作,如何求一個(gè)64位數(shù)的負(fù)數(shù)?
25、答:1)使用實(shí)現(xiàn)64位加法,結(jié)果存于 R1、R0中:R0020等于低32位相加,并影響標(biāo)志位R1131等于高32位相加,并加上低位進(jìn)位2)使用實(shí)現(xiàn)64位減法,結(jié)果存于R1、R0中:R002;低32位相減,并影響標(biāo)志位R113;高32位相減,并減去低位借位3)使用指令實(shí)現(xiàn)求64位數(shù)值的負(fù)數(shù):R200R3103 .寫出指令與指令的二進(jìn)制編碼格式,并指出它們之間的區(qū)別。答:指令的二進(jìn)制編碼格式:3128272625242322212019161512110cond01IPUBWLRnRdaddressing_mode_specific指令的二進(jìn)制編碼格式:3128272625242322212019
26、161512118765130cond000F'UJWLRnRdaddr_mode1SH1addr_mode指令用于將內(nèi)存中的一個(gè)8位字節(jié)數(shù)據(jù)讀取到指令中的目標(biāo)寄存器的低8位中,寄存器的高24位用零擴(kuò)展。指令用于將內(nèi)存中的一個(gè)8位字節(jié)數(shù)據(jù)讀取到指令中的目標(biāo)寄存器的低8位中,寄存器的高24位用符號(hào)位擴(kuò)展。4 .分析下列每條語(yǔ)句的功能,并確定程序段所實(shí)現(xiàn)的操作。R0,0R1,0R1,,1答:R0,,0R1,,0R1,,1R0與0的大小R00,則R1=0R0>0,則R1=15 .請(qǐng)使用多種方法實(shí)現(xiàn)將字?jǐn)?shù)據(jù)0送入寄存器R0答:1)R0,#02)R0,#1R0,R0,#06 .寫一條指令,
27、分別完成下列操作:(1)R0=16(2)R01/16(3)R12*3(4)R00答:(1)R0=16R0,#16(2)R01/16R0,R1,#4(3)R12*3R3,#3R1,R2,R3(4)R00R0,R0,#07 .編寫一個(gè)匯編程序,累加一個(gè)隊(duì)列中的所有元素,碰到0時(shí)停止。結(jié)果放入R4。答:假設(shè)隊(duì)列為地址從R0開(kāi)始遞增的字隊(duì)列:R1,R04!R2,R1R442B8 .寫出實(shí)現(xiàn)下列操作的指令:當(dāng)1時(shí),將存儲(chǔ)器地址為R1的字?jǐn)?shù)據(jù)讀入寄存器R0.當(dāng)1時(shí),將存儲(chǔ)器地址為R12的字?jǐn)?shù)據(jù)讀入寄存器R0將存儲(chǔ)器地址為R1-4的字?jǐn)?shù)據(jù)讀入寄存器R0。將存儲(chǔ)器地址為R16的字?jǐn)?shù)據(jù)讀入寄存器R0,并將新地址
28、R16寫入R1。答:1)R0,R12) R0,R123) R0,R144) R0,R16!9.寫出下列指令所實(shí)現(xiàn)的操作:R0, R02R1 , R3, R2, #2!R0, R2 , 2!R1 , R2 , ,00R0,R128R0!,R151011答: R2, R3, 4!2<-R3-4, R33-4R0, R020<-R0,R002R1, R3, R2, #2!1<-R32*4, R332*4R0, R2, 2!0低8位-R2-2字節(jié)數(shù)據(jù),R0高24位符號(hào)擴(kuò)展,R22-2R1, R2, #00R1 低 8 位-> R2+00R0,R128從地址R0開(kāi)始的內(nèi)存中依次讀
29、取字?jǐn)?shù)據(jù),送入寄存器R1, R2, R8R0!,R151011將寄存器R11, R10, R51的字?jǐn)?shù)據(jù),依次寫入地址R0中,每次寫入前 R00-410指令的優(yōu)勢(shì)是什么?答:指令支持原子操作,它能在一條指令中完成存儲(chǔ)器和寄存器之間的數(shù)據(jù)交換。11.如何用帶操作的批量字?jǐn)?shù)據(jù)加載指令實(shí)現(xiàn)中斷的返回?答:在進(jìn)入中斷處理程序時(shí),首先計(jì)算返回地址,并保存相關(guān)的寄存器?R14144;?R13!, R03, R12, 如果中斷處理程序返回到被中斷的進(jìn)程則執(zhí)行下面的指令。該指令從數(shù)據(jù)棧中恢復(fù)寄 存器R03及R12的值,將返回地址傳送到中,并將值復(fù)制到中?R13!, R03, R12, A12.用匯編語(yǔ)言編寫代
30、碼,實(shí)現(xiàn)將處理器切換到用戶模式,并關(guān)閉中斷。 答;禁能中斷R0R0,R00x80,R0;切換到用戶模式R0R0,#0x0F,R01 .與32位的指令集相比較,16位的指令集具有哪些優(yōu)勢(shì)?答:在體系結(jié)構(gòu)中,指令集是32位的,具有很高的執(zhí)行效率。但是對(duì)于嵌入式而言,其存儲(chǔ)空間極其有限,由于每條指令都要占用4個(gè)字節(jié),對(duì)存儲(chǔ)空間的要求較高。為了壓縮代碼的存儲(chǔ),增加代碼存儲(chǔ)密度,公司設(shè)計(jì)了16位的指令。代碼所需的存儲(chǔ)空間約為代碼的6070%。2 指令可分為哪幾類?指令有條件執(zhí)行指令嗎,如果有請(qǐng)說(shuō)明哪些指令是條件執(zhí)行的。答:指令可分為數(shù)據(jù)處理指令,存儲(chǔ)器操作指令,分支指令,軟中斷指令。指令集只有一條分支指
31、令是有條件的,其余所有指令都是無(wú)條件的;B3 .分析下面的指令程序代碼,指出程序所完成的功能。200x400R01R0R2031R02R302B答:上述代碼首先將處理器狀態(tài)切換到狀態(tài),R2031;用R0的符號(hào)位填充R2R02;如果R0為正數(shù),則R0不變;如果R0為負(fù)數(shù),則R0取反R302;R02->R3(R2為全零或全1)4 .在狀態(tài)中,用多種方法實(shí)現(xiàn)將寄存器R0中的數(shù)據(jù)乘以10答:1)R1,#10R012)R1,R03R2,R01R0125.帶鏈接的分支指令提供了一種在狀態(tài)下程序間相互調(diào)用的方法,當(dāng)從子程序返回時(shí),可以采用哪種返回方式?答:通常使用下面的方式之一:;需要在子程序中使用6
32、.指出下列的程序代碼所完成的功能:R0131R10R10答:R0131;用R1的符號(hào)位填充R0R10;如果R1為正數(shù),則R1不變;如果R1為負(fù)數(shù),則R1取反R10;R10->R1(R0為全零或全1)第6章匯編偽指令與偽操作1 .在匯編語(yǔ)言程序設(shè)計(jì)中,偽操作與偽指令的區(qū)別是什么?答:偽指令是處理器支持的匯編語(yǔ)言程序里的特殊助記符,它不再處理器運(yùn)行期間由機(jī)器執(zhí)行,只是在匯編時(shí)被合適的機(jī)器指令代替成或指令,從而實(shí)現(xiàn)真正的指令操作。偽操作是匯編語(yǔ)言程序里的一些特殊的指令助記符,其作用主要是為了完成匯編程序做各種準(zhǔn)備工作,對(duì)源程序運(yùn)行匯編程序處理,而不是在計(jì)算機(jī)運(yùn)行期間由處理器執(zhí)行。也就是說(shuō),這些
33、偽操作只是在匯編過(guò)程中起作用,一旦匯編結(jié)束,偽操作也就隨之消失。2 .分析匯編語(yǔ)言偽指令,的匯編結(jié)果,說(shuō)明它們之間的區(qū)別。答:偽指令將一個(gè)32位的常數(shù)或者一個(gè)地址值讀取到寄存器中,可以看作是加載寄存器的內(nèi)容。如果加載的常數(shù)符合或指令立即數(shù)的要求,則用或指令替代偽指令。如果加載的常數(shù)不符合或指令立即數(shù)的要求,匯編器將常量放入內(nèi)存文字池,并使用一條程序相對(duì)偏移的指令從內(nèi)存文字池讀出常量。偽指令將基于相對(duì)偏移的地址值或基于寄存器相對(duì)偏移的地址值讀取到寄存器中,比偽指令可以讀取更大范圍的地址。在匯編編譯器編譯源程序時(shí),偽指令被編譯器替換成兩條合適的指令。若不能用兩條指令實(shí)現(xiàn),則產(chǎn)生錯(cuò)誤,編譯失敗。偽指
34、令將基于相對(duì)偏移的地址值或基于寄存器相對(duì)偏移的地址值讀取到寄存器中。在匯編編譯器編譯源程序時(shí),偽指令被編譯器替換成一條合適的指令。通常,編譯器用一條指令或指令來(lái)實(shí)現(xiàn)該偽指令的功能,若不能用一條指令實(shí)現(xiàn),則產(chǎn)生錯(cuò)誤,編譯失敗。( 1 )聲明一個(gè)局部的算術(shù)變量( 2 )聲明一個(gè)局部的邏輯變量( 3 )聲明一個(gè)局部的字符串變量( 4 )聲明一個(gè)全局的邏輯變量( 5 )聲明一個(gè)全局的字符串變量( 6 )聲明一個(gè)全局的算術(shù)變量( 7 )聲明一個(gè)全局的邏輯變量( 8 )聲明一個(gè)全局的字符串變量 答:( 1 )聲明一個(gè)局部的算術(shù)變量( 2 )聲明一個(gè)局部的邏輯變量3 .在編譯環(huán)境下,寫出下列操作的偽操作:并
35、將其初始化0;并將其初始化;并將其初始化空串;并將其初始化;并將其初始化空串;并將其初始化0;并將其初始化;并將其初始化“”;并將其初始化0;并將其初始化;3)聲明一個(gè)局部的字符串變量并將其初始化 空串;聲明一個(gè)全局的邏輯變量并將其初始化 ;5)聲明一個(gè)全局的字符串變量并將其初始化 空串;6)聲明一個(gè)全局的算術(shù)變量并將其初始化 0;7)0聲明一個(gè)全局的邏輯變量并將其初始化 ;(8)聲明一個(gè)全局的字符串變量并將其初始化“”;""4 .用開(kāi)發(fā)工具偽操作將寄存器列表R05,R7,R8的名稱定義為。答:R05,R7,R85 .完成下列數(shù)據(jù)定義偽操作:(1)申請(qǐng)以1為起始地址的連續(xù)的
36、內(nèi)存單元,并依次用半字?jǐn)?shù)據(jù)0x11,0x22,0x33,0x44,0x55進(jìn)行初始化;(2)申請(qǐng)以為起始地址的連續(xù)的內(nèi)存單元,并用字符串“79”進(jìn)行初始化;答:(1)10x11,0x22,0x33,0x44,0x55(2) “79”6 .定義一個(gè)結(jié)構(gòu)化的內(nèi)存表,其首地址固定為0x900,該結(jié)構(gòu)化內(nèi)存表包含2個(gè)域,長(zhǎng)度為8個(gè)字節(jié),2長(zhǎng)度為160個(gè)字節(jié)。答:0x9001 82 1607 .在編譯環(huán)境下,寫出實(shí)現(xiàn)下列操作的偽操作:(1)分配一段字節(jié)內(nèi)存單元,并用57,0x11,031,'Z',0x76進(jìn)行初始化;(2)分配一段半字內(nèi)存單元,并用00,0,0x12進(jìn)行初始化;( 3 )
37、分配一段字內(nèi)存單元, 并用( 4 )分配一段內(nèi)存單元,并用長(zhǎng)為答:1 )分配一段字節(jié)內(nèi)存單元,并用57,0x11,031 , 'Z', 0x762)分配一段半字內(nèi)存單元,并用00,0, 0x123 )分配一段字內(nèi)存單元, 并用0x12345678,0 進(jìn)行初始化;8 字節(jié)的數(shù)值0x11 填充 100 次;57,0x11,031 , 'Z', 0x76 進(jìn)行初始化;00,0, 0x12 進(jìn)行初始化;0x12345678,0 進(jìn)行初始化;0x12345678,04)分配一段內(nèi)存單元,并用長(zhǎng)為8字節(jié)的數(shù)值0x11填充100次;100,8,0x118 .寫出與編譯環(huán)境下
38、偽操作,功能相同的標(biāo)準(zhǔn)開(kāi)發(fā)工具編譯環(huán)境下的偽操作。答:對(duì)應(yīng)或32對(duì)應(yīng)或16第7章匯編語(yǔ)言程序設(shè)計(jì)1 .分別寫出集成開(kāi)發(fā)環(huán)境下匯編語(yǔ)句格式與環(huán)境下匯編語(yǔ)句通用格式,并分析它們的區(qū)別。答:環(huán)境下匯編語(yǔ)句格式如下:?:標(biāo)號(hào)(地址)?:指令()?:偽操作?:偽指令環(huán)境下匯編語(yǔ)言語(yǔ)句格式如下:?:?:?:2 .局部標(biāo)號(hào)提供分支指令在匯編程序的局部范圍內(nèi)跳轉(zhuǎn),它的主要用途是什么,并舉一實(shí)例加以說(shuō)明。答:局部標(biāo)號(hào)?局部標(biāo)號(hào)的語(yǔ)法格式如下:?n(099)?被引用的局部標(biāo)號(hào)語(yǔ)法規(guī)則是:?%FIBAITn?其中:?n是局部標(biāo)號(hào)的數(shù)字號(hào)。(099)?是當(dāng)前局部范圍的名稱。?%表示引用操作。?F指示匯編器只向前搜索。
39、?B指示匯編器只向后搜索。?A指示匯編器搜索宏的所有嵌套層次。?T指示匯編器搜索宏的當(dāng)前層次。?局部標(biāo)號(hào)提供分支指令在匯編程序在局部范圍內(nèi)的跳轉(zhuǎn)3 .先對(duì)內(nèi)存地址0000開(kāi)始的100個(gè)字內(nèi)存單元填入0x100000010x10000064字?jǐn)?shù)據(jù),然后將每個(gè)字單元進(jìn)行64位累加,結(jié)果保存于【R9:R8】(R9中存放高32位)。答:解:先對(duì)內(nèi)存地址0000開(kāi)始的100個(gè)字內(nèi)存單元填入0x100000010x10000064字?jǐn)?shù)據(jù),然后將每個(gè)字單元進(jìn)行64位累加,結(jié)果保存于【R9:R8】(R9中存放高32位)。在集成開(kāi)發(fā)環(huán)境下編程:/*寄存器使用說(shuō)明*R0:存放地址值*R2:遞減計(jì)數(shù)器* *R9:6
40、4位遞加結(jié)果的高32位* *R8:64位遞加結(jié)果的低32位* */;聲明代碼段;標(biāo)識(shí)程序入口32;聲明32位指令R00000;初始化寄存器R10x10000001R21001 ;第一次循環(huán)賦值R1,R04R111R2211R00000R2100R90R802 ;第二次循環(huán)累加R1,R04R818;R881,進(jìn)位影響標(biāo)志位R990;R99,C為進(jìn)位位R2212(R13) ,各模式的堆棧4 .在環(huán)境下用匯編語(yǔ)言編寫程序,初始化處理器各模式下的堆棧指針指針地址如下:,0000設(shè)置棧的內(nèi)存基地址,用戶模式堆棧地址,64管理模式堆棧地址,64*2未定義模式堆棧地址,64*3中止模式堆棧地址,64*4模式
41、堆棧地址,64*5模式堆棧地址答:在開(kāi)發(fā)環(huán)境下編程:,0000設(shè)置棧的內(nèi)存基地址,用戶模式堆棧地址,64管理模式堆棧地址,64*2未定義模式堆棧地址,64*3中止模式堆棧地址,64*4模式堆棧地址,64*5模式堆棧地址0x10用戶模式0x11模式0x12模式0x13管理模式0x17中止模式0x1B未定義模式0x1F系統(tǒng)模式0x1F模式位掩碼控制字R0讀取當(dāng)前R00清除模式位設(shè)置系統(tǒng)模式下的R101設(shè)置中止模式下的R101設(shè)置管理模式下的R101設(shè)置模式下的R10設(shè)置模式下的R101B文件結(jié)束5.內(nèi)存數(shù)據(jù)區(qū)定義如下:1,2,3,4,5,6,7,8,9,0,0,0,0,0,0,0x101,2,3,
42、4,5,6,7,8,9,0,0,0,0,0,0,0x10:320,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0請(qǐng)用指令編寫程序,實(shí)現(xiàn)將數(shù)據(jù)從源數(shù)據(jù)區(qū)拷貝到目標(biāo)數(shù)據(jù)區(qū),要求以6個(gè)字為單位進(jìn)行塊拷貝,如果不足6個(gè)字時(shí),則以字為單位進(jìn)行拷貝(其中數(shù)據(jù)區(qū)處存放源數(shù)據(jù)的個(gè)數(shù))。答:解:程序設(shè)計(jì)思路:每進(jìn)行6個(gè)字的批量拷貝前,先判斷是否大于6,是則進(jìn)行6字的批量拷貝并將減去6,否則則進(jìn)行單字的拷貝,在使用寄存器組時(shí)還要注意保存現(xiàn)場(chǎng)。在集成開(kāi)發(fā)環(huán)境下編程:/*R0:源數(shù)據(jù)區(qū)指針*寄存器使用說(shuō)明*R1:目標(biāo)數(shù)據(jù)區(qū)指針* *R2:單字拷
43、貝字?jǐn)?shù)* *R3:塊拷貝字?jǐn)?shù)* *R510:批量拷貝使用的寄存器組* *:棧指針* */32;設(shè)置要拷貝的字?jǐn)?shù);聲明代碼段;標(biāo)識(shí)程序入口32;聲明32位指令R00=源數(shù)據(jù)區(qū)指針R1,;R1=目標(biāo)數(shù)據(jù)區(qū)指針R2;R2=單字拷貝字?jǐn)?shù)0x9000R26;R2<=6,則拷貝單字!,R510;保存將要使用的寄存器組R510;進(jìn)行塊拷貝,每次拷貝6個(gè)字6R0!,R510R1!,R510R22662>6!,R510;恢復(fù)寄存器組R510;將剩余的數(shù)據(jù)區(qū)以字為單位拷貝;拷貝剩余字節(jié)R3,R04R3,R14R2211,2,3,4,5,6,7,8,9,0,0,0,0,0,0,0x101,2,3,4,5
44、,6,7,8,9,0,0,0,0,0,0,0x100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,06.將一個(gè)存放在【R10】中的64位數(shù)據(jù)(其中R1中存放高32位)的高位和低位對(duì)稱換位,如第0位與第63位調(diào)換,第1位與第62位調(diào)換,第2位與第61位調(diào)換,。第31位與第32位調(diào)換。答:解:程序設(shè)計(jì)思路:對(duì)于單個(gè)32位寄存器的對(duì)稱換位操作,我們可以采用移位操作的方法,通過(guò)依次從低位取出目標(biāo)寄存器的各個(gè)位,再將其放置到目標(biāo)寄存器的最低位,然后通過(guò)移位操作,送入相應(yīng)位。對(duì)于R10到【R32的64位對(duì)稱換位操作,我們可以采用R1
45、-R2和R0-R3的兩個(gè)32位的換位操作來(lái)完成。在集成開(kāi)發(fā)環(huán)境下編程:*/*寄存器使用說(shuō)明* *R1,R0:源數(shù)據(jù)* *R3,R2:目標(biāo)數(shù)據(jù)* *R4:計(jì)數(shù)器,初值為32,遞減至0;聲明代碼段32R00x55555555R30R50R43232R501R353 #1R00 #1R441;標(biāo)識(shí)程序入口;聲明32位指令;輸入源數(shù)據(jù);目標(biāo)數(shù)據(jù);數(shù)據(jù)臨時(shí)緩沖區(qū);計(jì)數(shù)器;取出源數(shù)據(jù)的最低位送R5將目標(biāo)數(shù)據(jù)左移一位,并將取出的數(shù)據(jù);送入其最低位;源數(shù)據(jù)右移一位;遞減計(jì)數(shù)R10x55555555;輸入源數(shù)據(jù)R20;目標(biāo)數(shù)據(jù)R50;數(shù)據(jù)臨時(shí)緩沖區(qū)R432;計(jì)數(shù)器32R511;取出源數(shù)據(jù)的最低位送R5R252#
46、1;將目標(biāo)數(shù)據(jù)左移一位,并將取出的數(shù)據(jù);送入其最低位R11#1;源數(shù)據(jù)右移一位R441;遞減計(jì)數(shù)7.內(nèi)存數(shù)據(jù)區(qū)定義如下:0x12345678,0x87654321,012,0450x12345678,0x87654321,012,0450x12345678,0x87654321,012,0450x12345678,0x87654321,012,0450x12345678,0x87654321,012,0450x12345678,0x87654321,012,0450x12345678,0x87654321,012,0450x12345678,0x87654321,012,045以上可以看做一個(gè)
47、8*4矩陣,請(qǐng)用匯編語(yǔ)言在集成開(kāi)發(fā)環(huán)境下設(shè)計(jì)程序,實(shí)現(xiàn)對(duì)矩陣的轉(zhuǎn)置操作。如果改為在環(huán)境下編程,程序應(yīng)如何修改。答:解:使用R0指向源數(shù)據(jù)區(qū),R1指向目標(biāo)數(shù)據(jù)區(qū)。從源數(shù)據(jù)區(qū)中按列取數(shù)據(jù)(每次取個(gè)),然后順序存入目標(biāo)數(shù)據(jù)區(qū)。在集成開(kāi)發(fā)環(huán)境下編程:/*寄存器使用說(shuō)明*R0:源數(shù)據(jù)* *R1:目標(biāo)數(shù)據(jù)* *R2:行計(jì)數(shù)器,初值為8,遞減至0* *R3:列計(jì)數(shù)器,初值為4,遞減至0*/;聲明代碼段;標(biāo)識(shí)程序入口32;聲明32位指令R0R1R34R28R4,R016;按列取數(shù)據(jù)R4,R14;按行存數(shù)據(jù)R221;行計(jì)數(shù)遞減R331;列計(jì)數(shù)遞減第8章匯編語(yǔ)言與嵌入式C混合編程1 .嚴(yán)格按照嵌入式C語(yǔ)言的編程規(guī)
48、范,寫一個(gè)C語(yǔ)言程序,實(shí)現(xiàn)將一個(gè)二維數(shù)組內(nèi)的數(shù)據(jù)行和列進(jìn)行排序。答:略2 .嵌入式C程序設(shè)計(jì)中常用的移位操作有哪幾種,請(qǐng)說(shuō)明每種運(yùn)算所對(duì)應(yīng)的指令實(shí)現(xiàn)。答:移位操作分為左移操作與右移操作左移運(yùn)算符“<<”實(shí)現(xiàn)將“<<”左邊的操作數(shù)的各個(gè)二進(jìn)制位向左移動(dòng)“<<”右邊操作數(shù)所指定的位數(shù),高位丟棄,低位補(bǔ)0。其值相當(dāng)于乘以:2“左移位數(shù)”次方。<< ”右邊操作數(shù)所右移運(yùn)算符“>>”實(shí)現(xiàn)將“>>”左邊的操作數(shù)的各個(gè)二進(jìn)制位向右移動(dòng)指定的位數(shù)。?對(duì)于空位的補(bǔ)齊方式,無(wú)符號(hào)數(shù)與有符號(hào)數(shù)是有區(qū)別的。?對(duì)無(wú)符號(hào)數(shù)進(jìn)行右移時(shí),低位丟棄,高位用0補(bǔ)齊,其值相當(dāng)于除以:2“右移位數(shù)”次方?對(duì)有符號(hào)數(shù)進(jìn)行右移時(shí),根據(jù)處理器的不同選擇邏輯右移或算術(shù)右移3 限制符在程序中起到什么作用。請(qǐng)舉例說(shuō)明。答:的本意為“暫態(tài)的”或.“易變的”,該說(shuō)明符起到抑制編譯器優(yōu)化的作用。如果在聲明時(shí)用“”關(guān)鍵進(jìn)行修飾,遇到這個(gè)關(guān)鍵字聲明的變量,編譯器對(duì)訪問(wèn)該變量的代碼就不再進(jìn)行優(yōu)化,從而可以提供特殊地址的穩(wěn)定訪問(wèn)。?例:硬件端口寄存器讀取?000;?(0x54000000)讀端口 J?(0x54000000)再讀端口 J?以上代碼可能被
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中獸醫(yī)學(xué)知到課后答案智慧樹(shù)章節(jié)測(cè)試答案2025年春甘肅農(nóng)業(yè)大學(xué)
- 通遼職業(yè)學(xué)院《微型飛行器設(shè)計(jì)導(dǎo)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海工程技術(shù)大學(xué)《道橋施工技術(shù)1》2023-2024學(xué)年第一學(xué)期期末試卷
- 陜西鐵路工程職業(yè)技術(shù)學(xué)院《土木工程制圖D》2023-2024學(xué)年第一學(xué)期期末試卷
- 山西同文職業(yè)技術(shù)學(xué)院《建設(shè)項(xiàng)目檔案管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年湖南省岳陽(yáng)市高中名校普通高考第二次適應(yīng)性檢測(cè)試題英語(yǔ)試題含解析
- 湖南司法警官職業(yè)學(xué)院《植物醫(yī)學(xué)概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 濰坊科技學(xué)院《電路原理實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南省常德市武陵區(qū)芷蘭實(shí)驗(yàn)學(xué)校歷史班2024-2025學(xué)年下學(xué)期高三語(yǔ)文試題1月階段測(cè)試考試試卷含解析
- 公司訴訟制度優(yōu)化建議
- 全國(guó)職業(yè)院校技能大賽(新材料智能生產(chǎn)與檢測(cè)賽項(xiàng))選拔賽試題庫(kù)(300題)
- 幼兒園夏季護(hù)理培訓(xùn)
- 高等職業(yè)學(xué)校電梯工程技術(shù)專業(yè)實(shí)訓(xùn)教學(xué)條件建設(shè)標(biāo)準(zhǔn)(征求意見(jiàn)稿)
- 2024年錦州師范高等??茖W(xué)校單招職業(yè)技能測(cè)試題庫(kù)及答案解析
- 2024年國(guó)家電網(wǎng)招聘之通信類題庫(kù)附參考答案(考試直接用)
- 《市場(chǎng)營(yíng)銷學(xué) 第3版》課件全套 段淑梅 第1-12章 市場(chǎng)營(yíng)銷概論-市場(chǎng)營(yíng)銷組合
- 大學(xué)生信息素養(yǎng)大賽考試題庫(kù)及答案
- 兒童保健(康復(fù))管理信息系統(tǒng)需求說(shuō)明
- 文獻(xiàn)檢索與論文寫作
- 《麻醉與BIS監(jiān)測(cè)》課件
- 嶺南版二年級(jí)美術(shù)上冊(cè)期末試題B
評(píng)論
0/150
提交評(píng)論