




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 習題(xt)一解答:1.3(1)0.0000原=0.0000 0.0000反=0.0000 0.0000補=0.0000 (2)0.1001原=0.1001 0.1001反=0.1001 0.1001補=0.1001 (3)-1001原=11001 -1001反=10110 -1001補=101111.4N反=1.0101 N原=1.1010 N補=1.0110 N=-0.10101.5(1)原碼(yun m)運算:比較(bjio)可知,正數較大,用正數減負數,結果為正 反碼運算:01010011-00110011=01010011反+-00110011反=001010011 +100110
2、011反=001010011+111001100=000100000 補碼運算:01010011-00110011=01010011補+-00110011補=001010011 +100110011補=001010011+111001101=000100000 (2)原碼運算:比較可知,負數較大,用負數減正數,結果為負 反碼運算:0.100100-0.110010=0.100100+1.110010反=0.100100+ 1.001101=1.110001 補碼運算:0.100100-0.110010=0.100100+1.110010補=0.100100+ 1.001110=1.110010
3、1.6(1) (11011011)2=(219)10=(001000011001)BCD (2) (456)10=(010001010110)BCD (3) (174)8=(124)10=(000100100100)BCD (4) (2DA)16=(730)10=(011100110000)BCD1.7(1)9876H看成有符號數時,默認為負數的補碼,轉換為十進制數是:-26506 (2)9876H看成無符號數時,轉換為十進制數是:390301.8(1)98的壓縮BCD碼為:10011000B (2)98的非壓縮(y su)BCD碼為:0000100100001000B1.9(1)S1+S2補
4、=S1補+S2補=00010110+00100001=00110111,無溢出(y ch) S1-S2補=S1補+-S2補=00010110+11011111=11110101,無溢出(y ch) (2)S1+S2補=S1補+S2補=00010110+11011111=11110101,無溢出S1-S2補=S1補+-S2補=00010110+00100001=00110111,無溢出(3)S1+S2補=S1補+S2補=01100100+00011110=10000010,有溢出S1-S2補=S1補+-S2補=01100100+11100010=01000110,無溢出(4)S1+S2補=S1補
5、+S2補=10011100+11100010=01111110,有溢出S1-S2補=S1補+-S2補=10011100+00011110=10111010,無溢出習題二解答:2.1答:8086有哪些寄存器組?各有什么用途? 通用寄存器AX、BX、CX、DX它既可用作16位寄存器,又可將它拆成高、低8位,分別作為兩個獨立的8位寄存器使用。AX稱累加器。常用于存放算術邏輯運算中的操作數,所有I/O指令都使用累加器與外設接口傳送數據;BX稱基址寄存器。常用來存放訪問內存時的基地址或用作間接尋址時的地址寄存器。CX稱計數寄存器。在循環和串操作指令中用作計數器,指令執行后CX寄存器中的內容會自動改變。D
6、X稱數據寄存器。在I/O指令中用來存放端口的地址,在乘除指令中用作輔助寄存器。 4個專用寄存器SP堆棧指針寄存器。它在堆棧中存放棧頂偏移指針,;BP基址指針寄存器。一般也用來存放訪問內存時的基地址;SI源變址寄存器,DI目的變址寄存器。它們常常用在變址尋址方式中。 4個段寄存器CS代碼段寄存器。存放當前程序所在段的段基址;DS數據段寄存器。存放當前程序所用數據段的段基址;SS堆棧段寄存器。存放當前程序所用堆棧段的段基址,ES附加段寄存器。存放當前程序所用輔助數據段的段基址。 指令指針寄存器IP16位的指令指針寄存器IP用于存放下一條執行指令的偏移地址。標志寄存器FR它是16位寄存器,但只使用其
7、中的9位,這9位包括6個狀態標志位和3個控制標志位。狀態標志記錄了前面算術邏輯運算結果的一些特征;控制標志是用戶自己通過指令設置的,設置后將對其后的操作產生控制作用。2.2答:8086流水線技術是利用8086內部指令隊列,使8086/8088的執行部件和總線接口部件并行工作。其工作過程如下:當8086的指令隊列中有兩個空字節,或者8088的指令隊列中有一個空字節,總線接口部件就自動執行一次指令周期,從內存中取出后續的指令代碼放入隊列中。當執行部件需要數據時,總線接口部件根據執行部件給出的地址,從指定的內存單元或外設中取出數據供執行部件使用。當運算結束時,總線接口部件將運算結果送入指定的內存單元
8、或外設。當指令隊列空時,執行部件等待,直到有指令為止。若總線接口部件正在取指令,執行部件此時正好發出訪問總線的請求,則必須等總線接口部件取指令完畢后,該請求才能得到響應。一般情況下,程序按順序執行,但當遇到跳轉指令時,總線接口部件就使指令隊列復位,從新地址取出指令,并立即傳給執行部件去執行。所以,8086流水線技術減少了CPU為取指令而等待的時間,提高了CPU的利用率,加快了整機的運行(ynxng)速度,也降低了對存儲器存取速度的要求。2.3答:為了(wi le)盡可能使8086/8088CPU適應各種( zhn)使用場合,8086/8088CPU通常有兩種工作模式:最大工作模式和最小工作模式
9、。最小工作模式,就是在系統中只有8086或者8088一個微處理器。在這種系統中,所有的控制信號直接由8086或8088產生,因此,系統中的總線控制邏輯電路被減到最少。最大工作模式,是相對最小工作模式而言。在此工作模式系統中,一般包含兩個或兩個以上微處理器,但是主處理器只有一個,其他的處理器均為協處理器,協助主處理器工作。2.4答:邏輯地址是由段基址和偏移地址兩部分構成,通常由編程人員在指令中使用。8086系統中任何一個存儲單元對應20位的物理地址,都是由邏輯地址轉換得來的。8086存儲器中的物理地址是由內部總線接口部件BIU地址加法器產生。由地址加法器把16位段寄存器的內容轉換為20位物理地址
10、,即段基址左移4位后,再加上有效偏移量地址。物理地址=CS4+IP=40000H+2200H=42200H2.5答:8086CPU為了能夠對存儲器進行字節和字的訪問,在技術上將1M字節的存儲器空間分成兩個512K字節(219)的存儲體。一個存儲體中包含偶數地址,該存儲體被稱為偶存儲體;另一個存儲體中包含奇數地址,該存儲體被稱為奇存儲體,兩個存儲體之間采用交叉編址方式,然后通過A0 和BHE組合就可以確定對哪一組存儲體進行訪問,是對字節還是對字進行訪問。2.6答:在存儲器中,對要存放的字,其低位字節可以從奇數地址開始存放,也可以從偶數地址中開始存放;如果從奇數地址開始存放稱為非規則存放,按非規則
11、存放的字稱為字不對準存放。從偶數地址中開始存放稱為規則存放,按規則存放的字稱為字對準存放。使用字對準存放要在一個總線周期完成,用字不對準存放則需要兩個總線周期才能完成。所以為了加快程序運行速度,編程時應盡可能使用字對準存放。習題三解答:3.6答:(1)MOV CX, BX (2)MOV AX, 1234H (3)MOV AX, word ptr20H (4)MOV byte ptrBX, 20H3.7答:(1)EA=3000H(2)EA=1200H(3)EA=3300H(4)EA=4200H(5)EA=4500H3.8答:(1)立即(lj)數尋址 (2)直接(zhji)尋址 (3)寄存器間接(
12、jin ji)尋址 (4)基址變址尋址 (5)相對基址變址尋址 (6)寄存器尋址3.9答:(1)段內間接尋址 (2)段內間接尋址 (3)段間間接尋址3.10答:(1)直接尋址 PA=10200H(2)寄存間接尋址 PA=10010H(3)跨段寄存器間接尋址 PA=15010H(4)跨段寄存器間接尋址 PA=20010H(5)寄存器間接尋址 PA=200A0H(6)寄存器相對址尋址 PA=0110H(7)基址變址尋址 PA=10110H(8)相對基址變址尋址 PA=10210H(9)寄存器間接尋址 PA=10100H3.12答:解:(1)AX=0100H(2)AX=1020H(3)AX=1020
13、H(4)AX=5030H(5)AX=2010H(6)AX=2010H(7)AX=1020H3.13答:(1)SI=0320H (2)BP=1320H (3)DI=0310H (4)X=0FFF0H3.15答:(1)測試AL中1、3、5位是否均為“1” (2)對32位數(高位在DX,低位在AX)求補碼3.16答:(1)XORAL ,2AH(2)MOV BL ,AL NOT BLTEST BL, 2AHJEL1MOV AL ,0.L1:MOV AL , 1(3)MOV CL, 4ROL AL, CLROL BL, CLXCHG AL, BL(4)PUSHFPOP AX(5)PUSHFPOP AXA
14、ND AX,0FEFFHPUSH AXPOPF(6)略(7)STDMOV AX, DSMOV ES, AXMOV SI, 0163HMOV DI, 01B3HMOV CX, 100REP MOV SB(8)MOV AL,AIMUL BMOV C,ALMOV C+1 ,AH習題(xt)四解答:4.4答:01H02H03H04H31H32H33H34H0001H0002H0003H0004H00001234H4.5答:(1)STR1的偏移(pin y)地址為: 100H(2)NUM為 10(3)STR2+3的存儲單元(cn ch dn yun)內容為 79H (即第四個字符O所對應(duyng)的
15、ASIC碼)4.6答:分別為:3CH ,1EH,0FH4.9答:(1)(AX)=1234H (2)(AX)=5678H (3)(AX)=5678H4.10答:DATA SEGMENTARRAY EQU THIS WORDARRAY DB 100 DUP (?)DATA ENDS4.11答:(1)ARRAY DB 12H, 34H, 56H, 0ABH(2)DARRAY DW 1234H, 5678H, 0ABCDH(3)BCD DW 1234 (4)STR DB STRING(5)DATA1 SEGMENT DB 12H, 34H,A,B,CDW 1234H, 5678H, 0ABCDHDB
16、5 DUP (?) DATA1 ENDS4.14答:(1)LEA BX ,DATA1(2)MOV CL ,BYTE PTRDAT2+2(3)MOV BYTE PTRBUF1+9,11H(4)LEN1=13, LEN2=7(5)MOV CX, DAT2-DAT1lEA SI , DAT1LEA DI , BUF2MOV AX , DSMOV ES , AXCLDREP MOVSB4.15答:LEA SI ,STR MOV DH ,SI MOV DL ,SI+6MOV DH, STRMOV DL, STR+7習題(xt)五解答:5.7答:(1)將一字節(z ji)數據和其補碼邏輯乘;(2)AL的內
17、容(nirng)為:89H,NUM的內容為:10H。5.8答:(1)求DAT的平方,并將結果放到DAT+1中。(2)DAT+1的內容為51H5.9答:(1)將DAT第0、2位清0,1、3、7位置1;(2)程序執行后DAT的內容為DAH。5.12答:(1)對BUF的內容清0,遇到BUF的內容為0FF則停止清0。(2)求BUF中的前10個數,結果放到AL中。(3)求DAT中的前10個數,結果放入BUF。(4)從BLOCK開始的100個字節查找第一個和KEY相等的元素,找到就將結果放到ADDR中,否則DI置0。5.13答:判斷DAT如果為0,則將AL放到RES中;如果為正,將DAT的值加1,如果為負
18、,將DAT的值減1,放到RES中。5.14答:(1)求0到9的和,結果放到預留的空間RES中(2)將AX置0(3)求1到99的和結果放到AX中。(4)求兩個相鄰數的積,結果與前面的數相加一起保存到DX中。(5)AX的值順序邏輯右移,每次移一位,同時將BX的值加1,直到AX的值為0。5.17答:DATA SEGMENT DAT DW 6DUP(?)X DW 100Y DW 200Z DW 150DATA ENDSSTACK SEGMENT STACKDW 200 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: M
19、OV AX,DATAMOV DS,AXMOV AX,XMOV BX,YADD AX,BXMOV BX,ZSUB AX,BXMOV DAT+6,AXMOV AH,4CHINT 21HCODE ENDSEND START5.20答:DATA SEGMENTDAT1 DB ?DAT2 DB ?DAT3 DB ?DATA ENDSSTACK SEGMENT STACK DB 200 DUP(?)STACK ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AL, 7BHMOV BL,ALAND B
20、L,07HMOV DAT1,BLMOV CL,3SHR AL,CLMOV BL,ALAND BL,07HMOV DAT2,BLMOV CL,2 SHR AL,CLMOV DAT3,ALMOV AH,4CHINT 21HCODE ENDS END START5.21答:DATA SEGMENTDAT1 DW ABDAT2 DW ABA DB 200B DB 100DATA ENDSSTACK SEGMENT STACK DB 100DUP(0)STACK ENDSCODE SEGMENTASSUME DS:DATA,SS:STACK,CS:CODESTART:MOV AX,DATAMOV DS,
21、AXMOV AX,AMOV BX,BCMP AX,BXJB NEXTMOV DX,DAT2MOV AH,9INT 21HNEXT: MOV DX,DAT1MOV AH,9INT 21HMOV AH,4CHINT 21HCODE ENDS END START5.26答:DATA SEGMENTNUMBER 1,2,3,4,5TABLER A,B,C,D,EDATA ENDSSTACK SEGMENT STACKDB 100DUP(?)STACK ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACKSTART:MOV BL,NUMBER XOR BH,B
22、H SHL BX,1 JUM TABLEBXA:MOV DL,1 JMP DISPLAYB:MOV DL,2 JMP DISPLAYC:MOV DL,3 JMP DISPLAYD:MOV DL,4 JMP DISPLAYE:MOV DL,5 JMP DISPLAYDISPLAY:MOV AH,2 INT 21HMOV AH,4CHINT 21HCODE ENDS END START習題(xt)六解答:6.9答:Move macro to,from,n Lea si,from Lea di,to Mov cx,n Rep movsbendm6.10答:Clrb macro n,cfilMov c
23、x,nMov al,Lea dl,cfilRep stosbendm6.11答:Str=”String”Rept 10Db strendm6.12答:Move macro xIfidn ,Mov terminal,0ElseMov terminal,1EndifEndm6.13答:Mov al,divdIfe sign Mov ah,0Div scaleElseCbwIdiv scaleEndifMov result,al習題(xt)七解答:7.1 答:ARM 處理器有7個基本(jbn)工作模式:1)用戶模式(User):非特權模式,正常(zhngchng)程序執行的模式,大部分任務執行在這種
24、模式下;2)快速中斷模式(FIQ):當一個高優先級(fast)中斷產生時將會進入這種模式,用于高速數據傳輸和通道處理;3)外部中斷模式(IRQ):當一個低優先級(normal)中斷產生時將會進入這種模式,用于通常的中斷處理;4)管理模式(Supervisor):當復位或軟中斷指令執行時將會進入這種模式,是一種供操作系統使用的一種保護模式;5)數據訪問中止模式(Abort): 當數據或指令存取異常時將會進入這種模式,用于虛擬存儲及存儲保護;6)未定義模式(Undef): 當執行未定義指令時會進入這種模式,可用于支持硬件協處理器的軟件仿真;7)系統模式(System): 使用和User模式相同寄存
25、器集的特權模式,但是運行的是特權級的操作系統任務。ARM處理器工作狀態:1)ARM狀態: 處理器執行32位的字對齊的ARM指令; 當操作數寄存器的狀態位(位0)為1時,可以采用執行BX指令的方法,使微處理器從ARM狀態切換到Thumb狀態。此外,當處理器處于Thumb狀態時發生異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時,自動切換到Thumb狀態。 2)Thumb狀態: 處理器執行16位的半字對齊的Thumb指令。 當操作數寄存器的狀態位為0時,執行BX指令時可以使微處理器從Thumb狀態切換到ARM狀態。此外,在處理器進行異常處理時,把PC指針放入異常模式鏈接
26、寄存器中,并從異常向量地址開始執行程序,也可以使處理器切換到ARM狀態。ARM指令集和Thumb指令集各有其優點,若對系統的性能有較高要求,應使用32位的存儲系統和ARM指令集,若對系統的成本及功耗有較高要求,則應使用16位的存儲系統和Thumb指令集。當然,若兩者結合使用,充分發揮其各自的優點,會取得更好的效果。7.2答:ARM7TDM后綴TDMI的含義(hny)如下: M:表示(biosh)內嵌硬件乘法器(Multiplier);T:表示(biosh)支持Thumb指令集;I:表示支持片上斷點和調試點;D:表示支持片上調試(Debug)。7.3答:ARM處理器將存儲器看做是一個從0開始的線
27、性遞增的字節集合,指令和數據共用一條32 位總線。7.4答:當控制位I置位時,IRQ中斷被禁止,否則允許IRQ中斷使能;當控制位F置位時,FIQ中斷被禁止,否則允許FIQ中斷使能。習題八解答:8.1答:ARM異常中斷異常中斷名稱含 義復位(Reset)當處理器復位引腳有效時,系統產生復位,程序跳轉到復位異常中斷處理程序處執行,復位異常中斷的優先級是最高優先級的中斷。通常復位產生有下面幾種情況:系統加電時、系統復位時、各種不同的ARM處理器的復位有一些區別的,具體的參見后面的實例中的描述未定義的指令Undefined instruction當ARM處理器或者系統中的協處理器認為當前指令未定義時,
28、產生該中斷,可以通過該異常中斷仿真浮點向量運算軟件中斷Software Interrupt SWI這是由用戶定義的中斷指令,可用于用戶模式下的程序調用特權操作指令數據訪問中止Data Abort數據訪問指令的目標地址不存在,或者該地址不允許當前指令訪問,處理器產生數據訪問中止異常中斷外部中斷請求IRQ當處理器的外部中斷請求引腳有效,或者CPSR寄存器的I控制位被清除時,處理器產生外部中斷請求,應用中對于IRQ的中斷處理是比較關鍵的技術快速中斷請求FIQ當處理器的外部中斷請求引腳有效,或者CPSR寄存器的F控制位被清楚時,處理器產生外部中斷請求8.2答:.section.rodata.align
29、3.LC0:.ascii%d000.align3.LC1:.ascii%c000.align3.LC2:.ascii%s000.text.align2.globalmain.typemain, %functionmain:movip, spstmfdsp!, fp, ip, lr, pcsubfp, ip, #4subsp, sp, #16ldrr0, .L2ldrr1, fp, #-16blprintfldrbr3, fp, #-17 zero_extendqisi2ldrr0, .L2+4movr1, r3blprintfsubr3, fp, #28ldrr0, .L2+8movr1, r
30、3blprintfmovr0, r3ldmeafp, fp, sp, pc.L3:.align2.L2:.word.LC0.word.LC1.word.LC2.sizemain, .-main8.3答:PXA270處理器提供了一個實時(sh sh)時鐘模塊RTC,RTC模塊提供(tgng)了如下的功能:Timer 計數器功能(gngnng);Wristwatch 手表功能;Stopwatch 秒表計時功能;Periodic interrupt 周期中斷;Trimmer 調整(tiozhng)RTC時鐘(shzhng)頻率。PXA270 采用(ciyng)32.768kHz 晶振來驅動RTC 模
31、塊。但是這個晶振在硬件復位后是被屏蔽的,系統使用13MHz 晶振作為時鐘源。因此需要軟件來設置寄存器,使這個晶振工作。8.4答:MMU的實現過程,實際上就是一個查表映射的過程。建立頁表(translate table)是實現MMU功能不可缺少的一步。頁表是位于系統的內存中,頁表的每一項對應于一個虛擬地址到物理地址的映射。每一項的長度即是一個字的長度(在ARM中,一個字的長度被定義為4B)。頁表項除完成虛擬地址到物理地址的映射功能之外,還定義了訪問權限和緩沖特性等。8.5答:.section.rodata.align3.LC0:.ascii%s000.align3.LC1:.ascii%sn00
32、0.text.align2.globalmain.typemain, %functionmain:movip, spstmfdsp!, fp, ip, lr, pcsubfp, ip, #4subsp, sp, #4ldrr0, .L2ldrr1, fp, #-16blscanfldrr0, .L2+4ldrr1, fp, #-16blprintfmovr0, r3ldmeafp, fp, sp, pc.L3:.align2.L2:.word.LC0.word.LC1.sizemain, .-main習題(xt)九解答:9.1答:接口是微機(wi j)與外設的通道?;竟δ苁窃谙到y總線和輸入輸出設備之間傳輸信號。9.3答:有端口統一(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論