匯編語言與接口技術(shù) 習題解答_第1頁
匯編語言與接口技術(shù) 習題解答_第2頁
匯編語言與接口技術(shù) 習題解答_第3頁
匯編語言與接口技術(shù) 習題解答_第4頁
匯編語言與接口技術(shù) 習題解答_第5頁
免費預(yù)覽已結(jié)束,剩余18頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

匯編語言與接口技術(shù)習題解答匯編語言與接口技術(shù)習題解答匯編語言與接口技術(shù)習題解答xxx公司匯編語言與接口技術(shù)習題解答文件編號:文件日期:修訂次數(shù):第1.0次更改批準審核制定方案設(shè)計,管理制度習題一解答:(1)[]原=[]反=[]補=(2)[]原=[]反=[]補=(3)[-1001]原=11001[-1001]反=10110[-1001]補=10111[N]反=[N]原=[N]補=N=(1)原碼運算:比較可知,正數(shù)較大,用正數(shù)減負數(shù),結(jié)果為正反碼運算:0011=[01010011]反+[-00110011]反=001010011+[1]反=001010011+0=000100000補碼運算:0011=[01010011]補+[-00110011]補=001010011+[1]補=001010011+1=000100000(2)原碼運算:比較可知,負數(shù)較大,用負數(shù)減正數(shù),結(jié)果為負反碼運算:反=+=補碼運算:補=+=(1)()2=(219)10=(0001)BCD(2)(456)10=(0)BCD(3)(174)8=(124)10=(0000)BCD(4)(2DA)16=(730)10=(0)BCD(1)9876H看成有符號數(shù)時,默認為負數(shù)的補碼,轉(zhuǎn)換為十進制數(shù)是:-26506(2)9876H看成無符號數(shù)時,轉(zhuǎn)換為十進制數(shù)是:39030(1)98的壓縮BCD碼為:B(2)98的非壓縮BCD碼為:0000B(1)[S1+S2]補=[S1]補+[S2]補=00010110+00100001=00110111,無溢出[S1-S2]補=[S1]補+[-S2]補=00010110+=,無溢出(2)[S1+S2]補=[S1]補+[S2]補=00010110+=,無溢出[S1-S2]補=[S1]補+[-S2]補=00010110+00100001=00110111,無溢出(3)[S1+S2]補=[S1]補+[S2]補=01100100+00011110=,有溢出[S1-S2]補=[S1]補+[-S2]補=01100100+=01000110,無溢出(4)[S1+S2]補=[S1]補+[S2]補=+=01111110,有溢出[S1-S2]補=[S1]補+[-S2]補=+00011110=,無溢出習題二解答:答:8086有哪些寄存器組各有什么用途①通用寄存器AX、BX、CX、DX它既可用作16位寄存器,又可將它拆成高、低8位,分別作為兩個獨立的8位寄存器使用。AX稱累加器。常用于存放算術(shù)邏輯運算中的操作數(shù),所有I/O指令都使用累加器與外設(shè)接口傳送數(shù)據(jù);BX稱基址寄存器。常用來存放訪問內(nèi)存時的基地址或用作間接尋址時的地址寄存器。CX稱計數(shù)寄存器。在循環(huán)和串操作指令中用作計數(shù)器,指令執(zhí)行后CX寄存器中的內(nèi)容會自動改變。DX稱數(shù)據(jù)寄存器。在I/O指令中用來存放端口的地址,在乘除指令中用作輔助寄存器。②4個專用寄存器SP堆棧指針寄存器。它在堆棧中存放棧頂偏移指針,;BP基址指針寄存器。一般也用來存放訪問內(nèi)存時的基地址;SI源變址寄存器,DI目的變址寄存器。它們常常用在變址尋址方式中。③4個段寄存器CS代碼段寄存器。存放當前程序所在段的段基址;DS數(shù)據(jù)段寄存器。存放當前程序所用數(shù)據(jù)段的段基址;SS堆棧段寄存器。存放當前程序所用堆棧段的段基址,ES附加段寄存器。存放當前程序所用輔助數(shù)據(jù)段的段基址。④指令指針寄存器IP16位的指令指針寄存器IP用于存放下一條執(zhí)行指令的偏移地址。⑤標志寄存器FR它是16位寄存器,但只使用其中的9位,這9位包括6個狀態(tài)標志位和3個控制標志位。狀態(tài)標志記錄了前面算術(shù)邏輯運算結(jié)果的一些特征;控制標志是用戶自己通過指令設(shè)置的,設(shè)置后將對其后的操作產(chǎn)生控制作用。答:8086流水線技術(shù)是利用8086內(nèi)部指令隊列,使8086/8088的執(zhí)行部件和總線接口部件并行工作。其工作過程如下:當8086的指令隊列中有兩個空字節(jié),或者8088的指令隊列中有一個空字節(jié),總線接口部件就自動執(zhí)行一次指令周期,從內(nèi)存中取出后續(xù)的指令代碼放入隊列中。當執(zhí)行部件需要數(shù)據(jù)時,總線接口部件根據(jù)執(zhí)行部件給出的地址,從指定的內(nèi)存單元或外設(shè)中取出數(shù)據(jù)供執(zhí)行部件使用。當運算結(jié)束時,總線接口部件將運算結(jié)果送入指定的內(nèi)存單元或外設(shè)。當指令隊列空時,執(zhí)行部件等待,直到有指令為止。若總線接口部件正在取指令,執(zhí)行部件此時正好發(fā)出訪問總線的請求,則必須等總線接口部件取指令完畢后,該請求才能得到響應(yīng)。一般情況下,程序按順序執(zhí)行,但當遇到跳轉(zhuǎn)指令時,總線接口部件就使指令隊列復(fù)位,從新地址取出指令,并立即傳給執(zhí)行部件去執(zhí)行。所以,8086流水線技術(shù)減少了CPU為取指令而等待的時間,提高了CPU的利用率,加快了整機的運行速度,也降低了對存儲器存取速度的要求。答:為了盡可能使8086/8088CPU適應(yīng)各種使用場合,8086/8088CPU通常有兩種工作模式:最大工作模式和最小工作模式。最小工作模式,就是在系統(tǒng)中只有8086或者8088一個微處理器。在這種系統(tǒng)中,所有的控制信號直接由8086或8088產(chǎn)生,因此,系統(tǒng)中的總線控制邏輯電路被減到最少。最大工作模式,是相對最小工作模式而言。在此工作模式系統(tǒng)中,一般包含兩個或兩個以上微處理器,但是主處理器只有一個,其他的處理器均為協(xié)處理器,協(xié)助主處理器工作。答:邏輯地址是由段基址和偏移地址兩部分構(gòu)成,通常由編程人員在指令中使用。8086系統(tǒng)中任何一個存儲單元對應(yīng)20位的物理地址,都是由邏輯地址轉(zhuǎn)換得來的。8086存儲器中的物理地址是由內(nèi)部總線接口部件BIU——地址加法器產(chǎn)生。由地址加法器把16位段寄存器的內(nèi)容轉(zhuǎn)換為20位物理地址,即段基址左移4位后,再加上有效偏移量地址。物理地址=CS×4+IP=40000H+2200H=42200H答:8086CPU為了能夠?qū)Υ鎯ζ鬟M行字節(jié)和字的訪問,在技術(shù)上將1M字節(jié)的存儲器空間分成兩個512K字節(jié)(219)的存儲體。一個存儲體中包含偶數(shù)地址,該存儲體被稱為偶存儲體;另一個存儲體中包含奇數(shù)地址,該存儲體被稱為奇存儲體,兩個存儲體之間采用交叉編址方式,然后通過A0和BHE組合就可以確定對哪一組存儲體進行訪問,是對字節(jié)還是對字進行訪問。答:在存儲器中,對要存放的字,其低位字節(jié)可以從奇數(shù)地址開始存放,也可以從偶數(shù)地址中開始存放;如果從奇數(shù)地址開始存放稱為非規(guī)則存放,按非規(guī)則存放的字稱為字不對準存放。從偶數(shù)地址中開始存放稱為規(guī)則存放,按規(guī)則存放的字稱為字對準存放。使用字對準存放要在一個總線周期完成,用字不對準存放則需要兩個總線周期才能完成。所以為了加快程序運行速度,編程時應(yīng)盡可能使用字對準存放。習題三解答:答:(1)MOVCX,BX(2)MOVAX,1234H(3)MOVAX,wordptr[20H](4)MOVbyteptr[BX],20H答:(1)EA=3000H(2)EA=1200H(3)EA=3300H(4)EA=4200H(5)EA=4500H答:(1)立即數(shù)尋址(2)直接尋址(3)寄存器間接尋址(4)基址變址尋址(5)相對基址變址尋址(6)寄存器尋址答:(1)段內(nèi)間接尋址(2)段內(nèi)間接尋址(3)段間間接尋址答:(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=10100H答:解:(1)AX=0100H(2)AX=1020H(3)AX=1020H(4)AX=5030H(5)AX=2010H(6)AX=2010H(7)AX=1020H答:(1)SI=0320H(2)BP=1320H(3)DI=0310H(4)X=0FFF0H答:(1)測試AL中1、3、5位是否均為“1”(2)對32位數(shù)(高位在DX,低位在AX)求補碼答:(1)XOR AL,2AH(2)MOVBL,ALNOTBLTEST BL,2AH JE L1 MOVAL,0.. L1: MOVAL,1(3)MOVCL,4ROLAL,CLROLBL,CLXCHGAL,BL(4)PUSHFPOPAX(5)PUSHFPOPAXANDAX,0FEFFHPUSHAXPOPF(6)略(7)STDMOVAX,DSMOVES,AXMOVSI,0163HMOVDI,01B3HMOVCX,100REPMOVSB(8)MOVAL,AIMUL BMOVC,ALMOVC+1,AH習題四解答:答:01H02H03H04H31H32H33H34H0001H0002H0003H0004H00001234H答:(1)STR1的偏移地址為:100H(2)NUM為10(3)STR2+3的存儲單元內(nèi)容為79H(即第四個字符’O’所對應(yīng)的ASIC碼)答:分別為:3CH,1EH,0FH答:(1)(AX)=1234H(2)(AX)=5678H(3)(AX)=5678H答:DATASEGMENTARRAYEQUTHISWORDARRAYDB100DUP()DATAENDS答:(1)ARRAYDB12H,34H,56H,0ABH(2)DARRAYDW1234H,5678H,0ABCDH(3)BCDDW1234(4)STRDB‘STRING’(5)DATA1SEGMENTDB12H,34H,‘A’,‘B’,‘C’DW1234H,5678H,0ABCDHDB5DUP()DATA1ENDS答:(1)LEABX,DATA1(2)MOVCL,BYTEPTR[DAT2+2](3)MOVBYTEPTR[BUF1+9],11H(4)LEN1=13,LEN2=7(5)MOVCX,DAT2-DAT1lEASI,DAT1LEADI,BUF2MOVAX,DSMOVES,AXCLDREPMOVSB答:LEASI,STRMOVDH,[SI]MOVDL,[SI+6]MOV DH,STRMOV DL,STR+7習題五解答:答:(1)將一字節(jié)數(shù)據(jù)和其補碼邏輯乘; (2)AL的內(nèi)容為:89H,NUM的內(nèi)容為:10H。答:(1)求DAT的平方,并將結(jié)果放到DAT+1中。(2)DAT+1的內(nèi)容為51H答:(1)將DAT第0、2位清0,1、3、7位置1;(2)程序執(zhí)行后DAT的內(nèi)容為DAH。答:(1)對BUF的內(nèi)容清0,遇到BUF的內(nèi)容為0FF則停止清0。(2)求BUF中的前10個數(shù),結(jié)果放到AL中。(3)求DAT中的前10個數(shù),結(jié)果放入BUF。(4)從BLOCK開始的100個字節(jié)查找第一個和KEY相等的元素,找到就將結(jié)果放到ADDR中,否則DI置0。答:判斷DAT如果為0,則將AL放到RES中;如果為正,將DAT的值加1,如果為負,將DAT的值減1,放到RES中。答:(1)求0到9的和,結(jié)果放到預(yù)留的空間RES中(2)將AX置0(3)求1到99的和結(jié)果放到AX中。(4)求兩個相鄰數(shù)的積,結(jié)果與前面的數(shù)相加一起保存到DX中。(5)AX的值順序邏輯右移,每次移一位,,同時將BX的值加1,直到AX的值為0。答:DATASEGMENTDATDW6DUP()XDW100YDW200ZDW150DATAENDSSTACKSEGMENTSTACKDW200DUP(0)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,XMOVBX,YADDAX,BXMOVBX,ZSUBAX,BXMOVDAT+6,AXMOVAH,4CHINT21HCODEENDSENDSTART答:DATASEGMENTDAT1DBDAT2DBDAT3DBDATAENDSSTACKSEGMENTSTACKDB200DUP()STACKENDSCODESEGMENTASSUMEDS:DATA,CS:CODE,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAL,7BHMOVBL,ALANDBL,07HMOVDAT1,BLMOVCL,3SHRAL,CLMOVBL,ALANDBL,07HMOVDAT2,BLMOVCL,2SHRAL,CLMOVDAT3,ALMOVAH,4CHINT21HCODEENDSENDSTART答:DATASEGMENTDAT1DW‘A>B’DAT2DW‘A<B’ADB200BDB100DATAENDSSTACKSEGMENTSTACKDB100DUP(0)STACKENDSCODESEGMENTASSUMEDS:DATA,SS:STACK,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVAX,AMOVBX,BCMPAX,BXJBNEXTMOVDX,DAT2MOVAH,9INT21HNEXT:MOVDX,DAT1MOVAH,9INT21HMOVAH,4CHINT21HCODEENDSENDSTART答:DATASEGMENTNUMBER1,2,3,4,5TABLERA,B,C,D,EDATAENDSSTACKSEGMENTSTACKDB100DUP()STACKENDSCODESEGMENTASSUMEDS:DATA,CS:CODE,SS:STACKSTART:MOVBL,NUMBERXORBH,BHSHLBX,1JUMTABLE[BX]A:MOVDL,‘1’JMPDISPLAYB:MOVDL,‘2’JMPDISPLAYC:MOVDL,‘3’JMPDISPLAYD:MOVDL,‘4’JMPDISPLAYE:MOVDL,‘5’JMPDISPLAYDISPLAY:MOVAH,2INT21HMOVAH,4CHINT21HCODEENDSENDSTART習題六解答:答:Movemacroto,from,nLeasi,fromLeadi,toMovcx,nRepmovsbendm答:Clrbmacron,cfilMovcx,nMoval,’’Leadl,cfilRepstosbendm答:Str=”String”Rept10Dbstrendm答:MovemacroxIfidn<x>,<555>Movterminal,0ElseMovterminal,1EndifEndm答:Moval,divdIfesignMovah,0DivscaleElseCbwIdivscaleEndifMovresult,al習題七解答:答:ARM處理器有7個基本工作模式:1)用戶模式(User):非特權(quán)模式,正常程序執(zhí)行的模式,大部分任務(wù)執(zhí)行在這種模式下;2)快速中斷模式(FIQ):當一個高優(yōu)先級(fast)中斷產(chǎn)生時將會進入這種模式,用于高速數(shù)據(jù)傳輸和通道處理;3)外部中斷模式(IRQ):當一個低優(yōu)先級(normal)中斷產(chǎn)生時將會進入這種模式,用于通常的中斷處理;4)管理模式(Supervisor):當復(fù)位或軟中斷指令執(zhí)行時將會進入這種模式,是一種供操作系統(tǒng)使用的一種保護模式;5)數(shù)據(jù)訪問中止模式(Abort):當數(shù)據(jù)或指令存取異常時將會進入這種模式,用于虛擬存儲及存儲保護;6)未定義模式(Undef):當執(zhí)行未定義指令時會進入這種模式,可用于支持硬件協(xié)處理器的軟件仿真;7)系統(tǒng)模式(System):使用和User模式相同寄存器集的特權(quán)模式,但是運行的是特權(quán)級的操作系統(tǒng)任務(wù)。ARM處理器工作狀態(tài):1)ARM狀態(tài):處理器執(zhí)行32位的字對齊的ARM指令;當操作數(shù)寄存器的狀態(tài)位(位0)為1時,可以采用執(zhí)行BX指令的方法,使微處理器從ARM狀態(tài)切換到Thumb狀態(tài)。此外,當處理器處于Thumb狀態(tài)時發(fā)生異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時,自動切換到Thumb狀態(tài)。2)Thumb狀態(tài):處理器執(zhí)行16位的半字對齊的Thumb指令。當操作數(shù)寄存器的狀態(tài)位為0時,執(zhí)行BX指令時可以使微處理器從Thumb狀態(tài)切換到ARM狀態(tài)。此外,在處理器進行異常處理時,把PC指針放入異常模式鏈接寄存器中,并從異常向量地址開始執(zhí)行程序,也可以使處理器切換到ARM狀態(tài)。ARM指令集和Thumb指令集各有其優(yōu)點,若對系統(tǒng)的性能有較高要求,應(yīng)使用32位的存儲系統(tǒng)和ARM指令集,若對系統(tǒng)的成本及功耗有較高要求,則應(yīng)使用16位的存儲系統(tǒng)和Thumb指令集。當然,若兩者結(jié)合使用,充分發(fā)揮其各自的優(yōu)點,會取得更好的效果。答:ARM7TDM后綴TDMI的含義如下:M:表示內(nèi)嵌硬件乘法器(Multiplier);T:表示支持Thumb指令集;I:表示支持片上斷點和調(diào)試點;D:表示支持片上調(diào)試(Debug)。答:ARM處理器將存儲器看做是一個從0開始的線性遞增的字節(jié)集合,指令和數(shù)據(jù)共用一條32位總線。答:當控制位I置位時,IRQ中斷被禁止,否則允許IRQ中斷使能;當控制位F置位時,F(xiàn)IQ中斷被禁止,否則允許FIQ中斷使能。習題八解答:答:ARM異常中斷異常中斷名稱含義復(fù)位(Reset)當處理器復(fù)位引腳有效時,系統(tǒng)產(chǎn)生復(fù)位,程序跳轉(zhuǎn)到復(fù)位異常中斷處理程序處執(zhí)行,復(fù)位異常中斷的優(yōu)先級是最高優(yōu)先級的中斷。通常復(fù)位產(chǎn)生有下面幾種情況:系統(tǒng)加電時、系統(tǒng)復(fù)位時、各種不同的ARM處理器的復(fù)位有一些區(qū)別的,具體的參見后面的實例中的描述未定義的指令Undefinedinstruction當ARM處理器或者系統(tǒng)中的協(xié)處理器認為當前指令未定義時,產(chǎn)生該中斷,可以通過該異常中斷仿真浮點向量運算軟件中斷SoftwareInterruptSWI這是由用戶定義的中斷指令,可用于用戶模式下的程序調(diào)用特權(quán)操作指令數(shù)據(jù)訪問中止DataAbort數(shù)據(jù)訪問指令的目標地址不存在,或者該地址不允許當前指令訪問,處理器產(chǎn)生數(shù)據(jù)訪問中止異常中斷外部中斷請求IRQ當處理器的外部中斷請求引腳有效,或者CPSR寄存器的I控制位被清除時,處理器產(chǎn)生外部中斷請求,應(yīng)用中對于IRQ的中斷處理是比較關(guān)鍵的技術(shù)快速中斷請求FIQ當處理器的外部中斷請求引腳有效,或者CPSR寄存器的F控制位被清楚時,處理器產(chǎn)生外部中斷請求答: .section .rodata .align 3.LC0: .ascii "%d\000" .align 3.LC1: .ascii "%c\000" .align 3.LC2: .ascii "%s\000" .text .align 2 .global main .type main,%functionmain: mov ip,sp stmfd sp!,{fp,ip,lr,pc} sub fp,ip,#4 sub sp,sp,#16 ldr r0,.L2 ldr r1,[fp,#-16] bl printf ldrb r3,[fp,#-17] @zero_extendqisi2 ldr r0,.L2+4 mov r1,r3 bl printf sub r3,fp,#28 ldr r0,.L2+8 mov r1,r3 bl printf mov r0,r3 ldmea fp,{fp,sp,pc}.L3: .align 2.L2: .word .LC0 .word .LC1 .word .LC2 .size main,.-main答:PXA270處理器提供了一個實時時鐘模塊RTC,RTC模塊提供了如下的功能:Timer計數(shù)器功能;Wristwatch手表功能;Stopwatch秒表計時功能;Periodicinterrupt周期中斷;Trimmer調(diào)整RTC時鐘頻率。PXA270采用晶振來驅(qū)動RTC模塊。但是這個晶振在硬件復(fù)位后是被屏蔽的,系統(tǒng)使用13MHz晶振作為時鐘源。因此需要軟件來設(shè)置寄存器,使這個晶振工作。答:MMU的實現(xiàn)過程,實際上就是一個查表映射的過程。建立頁表(translatetable)是實現(xiàn)MMU功能不可缺少的一步。頁表是位于系統(tǒng)的內(nèi)存中,頁表的每一項對應(yīng)于一個虛擬地址到物理地址的映射。每一項的長度即是一個字的長度(在ARM中,一個字的長度被定義為4B)。頁表項除完成虛擬地址到物理地址的映射功能之外,還定義了訪問權(quán)限和緩沖特性等。答: .section .rodata .align 3.LC0: .ascii "%s\000" .align 3.LC1: .ascii "%s\n\000" .text .align 2 .global main .type main,%functionmain: mov ip,sp stmfd sp!,{fp,ip,lr,pc} sub fp,ip,#4 sub sp,sp,#4 ldr r0,.L2 ldr r1,[fp,#-16] bl scanf ldr r0,.L2+4 ldr r1,[fp,#-16] bl printf mov r0,r3 ldmea fp,{fp,sp,pc}.L3: .align

溫馨提示

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

評論

0/150

提交評論