




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
習(xí)題三
3.18086CPU有多少根數(shù)據(jù)線和地址線?它能尋址多少內(nèi)存單元和I/O端口?
8088CPU又有多少根數(shù)據(jù)線和地址線?為什么要設(shè)計(jì)8088CPL?
解:16,20,1M
8,20,為了方便與8位外部接口或設(shè)備相連。
3.28086CPU按功能可以分為哪兩大部分?它們各自的主要功能是什么?
解:8086微處理器從功能結(jié)構(gòu)上可以劃分為執(zhí)行部件EU(ExecutionUnit)和總線接口部件BIU(Bus
InterfaceUnit)兩大部分.
總線接口部件具有下列功能:物理地址的形成、預(yù)取指令、指令隊(duì)列排隊(duì)、讀/寫操作數(shù)和總線控制。
指令執(zhí)行部件的功能是進(jìn)行指令譯碼并執(zhí)行指令。
3.3什么是微處理器的并行操作功能?8086CPU是否具有并行操作功能?
在什么情況下8086的執(zhí)行單元EU才需要等待總線接口單元BIU提取指令?
解:并行操作是同時(shí)完成取指/操作數(shù)和執(zhí)行指令操作,有。
在遇到系統(tǒng)復(fù)位或執(zhí)行轉(zhuǎn)移指令等特殊情況,指令隊(duì)列被刷新時(shí),EU才需要等待BIU進(jìn)行取指操
作?;蛘咴贓U需要操作數(shù)而BIU正忙時(shí),EU需要等待BIU執(zhí)行完當(dāng)前的操作,再去取操作數(shù),等到
EU得到操作數(shù)以后,才能進(jìn)行這條指令的執(zhí)行操作。
3.4邏輯地址和物理地址有何區(qū)別?段加偏移的基本含義是什么?
解:邏輯地址也稱相對(duì)地址或虛擬地址,它是目標(biāo)程序中的地址。物理地址也稱絕對(duì)地址或?qū)嵉刂罚?/p>
它是物理存貯器的單元地址。物理地址=段基地址X16+偏移地址。
3.5基址指針BP和堆棧指針SP在使用中有何區(qū)別?
解:BP則是用來(lái)存放位于堆棧段中的一個(gè)數(shù)據(jù)區(qū)基址的偏移地址的,稱作基址指針寄存器。SP給出棧
頂?shù)钠频刂?,稱為堆棧指針寄存器。
3.G段地址和段起始地址是否相同??jī)烧呤鞘裁搓P(guān)系?
解:段地址為段的起始單元的物理地址(低4位一般為0)除以16的結(jié)果。
段起始地址為段的起始單元的物理地址,它必須能被16整除。
段地址=段起始地址/16
3.78086CPU一般使用哪個(gè)寄存器來(lái)保存計(jì)數(shù)值?
解:CX
3.8寄存器IP的用途是什么?它提供的是什么信息?
解:用于微處理器在程序中順序?qū)ぶ反a段中的下一條指令。
給出接著要執(zhí)行的指令在代碼段中的偏移。
3.9寄存器FLAGES的用途是什么?它提供的是什么信息?
解:反映處理器的狀態(tài)和運(yùn)算結(jié)果的某些特征。
進(jìn)位標(biāo)志,零標(biāo)志,符號(hào)標(biāo)志,溢出標(biāo)志,奇偶標(biāo)志,輔助進(jìn)位標(biāo)志,方向標(biāo)志,中斷允許標(biāo)志,
追蹤標(biāo)志
3.10對(duì)于數(shù)字0,對(duì)應(yīng)的零標(biāo)志是否為1?
解:不是,零標(biāo)志是用于反映運(yùn)算結(jié)果的。
3.11在實(shí)模式下,對(duì)于如下段寄存器內(nèi)容,寫出相應(yīng)的段起始地址和結(jié)束地址:
(1)1000H(2)1234H
錯(cuò)誤!未指定書簽。與接口技術(shù)
(3)E0001I(4)ABOOH
解:(1)lOOOOH^lFFFFH(2)12340H~2233FH
(3)EOOOOH~EFFFFH(4)ABOOOH^BAFFFH
3.12在實(shí)模式下,對(duì)于如下的CS:IP組合,寫出相應(yīng)的存儲(chǔ)器地址:
(1)100011:200011(2)2400H:1A0011
(3)1A00H:EOOOH(4)3456H:AB001I
解:(D12000H(2)25A00H(3)28000H(4)3E060H
3.13什么是總線周期?微處理器在什么情況下才執(zhí)行總線周期?
解:把執(zhí)行外部總線對(duì)存儲(chǔ)器或I/。端口進(jìn)行一次信息的輸入或輸出所需要的時(shí)間
稱為總線周期。
①在指令的執(zhí)行過程中,根據(jù)指令的需要,由執(zhí)行單元EU,請(qǐng)求BIU執(zhí)行一個(gè)總線周期。
②當(dāng)指令隊(duì)列寄存器已經(jīng)空出兩個(gè)字節(jié),BIU必須填寫指令隊(duì)列的時(shí)候。
3.14一個(gè)基本的總線周期由幾個(gè)狀態(tài)組成?在什么情況下需要插入等待狀態(tài)?
解:至少由4個(gè)狀態(tài)組成,分別成為T1,T2,T3,T4.
在總線周期的T3和T4之間插入一些必要的等待狀態(tài)
3.15什么叫做非規(guī)則字?微處理器對(duì)非規(guī)則字的存取是如何訓(xùn)行的?
解:其低位字節(jié)可從奇數(shù)地址開始,這種方式為非規(guī)則存放,這種存放的宇為非規(guī)則字
若存放的數(shù)據(jù)為8位,則將它們按順序進(jìn)行存放;若存入的數(shù)據(jù)為一個(gè)16位的字,則將字的最高
字節(jié)存于高地址單元,低位字節(jié)存于低地址單元;若存放的數(shù)據(jù)為32位的雙字(這通常是指地址指針
數(shù)據(jù)),則將地址指針的偏移量(字)存于低地址的字單元中,將地址指針的段基址(字)存于高地址
的字單元中。對(duì)非規(guī)則字的存取需要兩個(gè)總線周期。
3.16什么是存儲(chǔ)器的分體結(jié)構(gòu)?用什么信號(hào)來(lái)實(shí)現(xiàn)對(duì)兩個(gè)存儲(chǔ)體的選擇?
解:1M字節(jié)的存儲(chǔ)空間分成兩個(gè)512K字節(jié)的存儲(chǔ)體,一個(gè)是偶數(shù)地址存儲(chǔ)體,其數(shù)據(jù)線與系統(tǒng)總線高
8位相連,用BHE=O作為選通信號(hào);?個(gè)是奇數(shù)地址存儲(chǔ)體。其數(shù)據(jù)總線與系統(tǒng)總線低8位相連,用Ao=O
作為選通信號(hào)
兩個(gè)存儲(chǔ)體采用字節(jié)交叉編址方式
3.17為什么8086微處理器要采用分體結(jié)構(gòu)?而8088微處理器不采用分體結(jié)構(gòu)?
解:8086是16位數(shù)據(jù)總線,故在組織1MB的存儲(chǔ)器時(shí),被分成兩個(gè)512KB的存儲(chǔ)體,分別叫做高位庫(kù)
和低位庫(kù)。高位庫(kù)與8086數(shù)據(jù)總線中的D15?D8相連,庫(kù)中每個(gè)單元的地址均為奇數(shù);低位庫(kù)與數(shù)據(jù)總線
中的D7?D0相連,庫(kù)中每個(gè)單元的地址均為偶數(shù)。
8088因?yàn)橥庵袛?shù)據(jù)總線為8位,因此,它所對(duì)應(yīng)的1MB的存儲(chǔ)空間是一個(gè)不分高位庫(kù)和低位庫(kù)的單一
存儲(chǔ)體。
3.18堆棧的深度由哪個(gè)寄存器確定?為什么一個(gè)堆棧的深度最大為64KB?
解:堆棧的深度由SP值決定,由于16位的SP=FFFFH可最大尋址64KB,故深度最大為64KB。
3.19在實(shí)模式下,若SS=1000H,SP=2000H,AX=3000H,寫出執(zhí)行PUSHAX指令后SS、
SP和相應(yīng)的堆棧中的內(nèi)容。
解:SS=1000HSP=1FFEH
(2000H)=30H(1FFFH)=OOH
3.20在實(shí)模式下,若SS=2200H,SP=1100H,寫出執(zhí)行POPAX指令后SS、SP的內(nèi)容。
解:SS=2200HSP=1102H
第2頁(yè)共53頁(yè)
3.21微處理器的WR和RD引腳信號(hào)各表示什么操作?
解:力■寫控制,有效時(shí),表示CPU正在寫出數(shù)據(jù)給存儲(chǔ)器或I/O端口
方讀控制,有效時(shí),表示CPU正在從存儲(chǔ)器或I/O端口讀入數(shù)據(jù)
3.22微處理器的ALE信號(hào)有什么作用?
解:地址鎖存允許有效時(shí),表示復(fù)用引腳:AD7?ADO和A19/S6?A16/S3正在傳送地址信息
3.23微處理器的DT/R信號(hào)有什么作用?它在什么情況下被浮置為商阻狀態(tài)?
解:數(shù)據(jù)發(fā)送/接收,表明當(dāng)前總線上數(shù)據(jù)的流向.
在DMA方式下,DT/R被浮置為高阻狀態(tài)
3.248086系統(tǒng)的最小模式和最大模式的區(qū)別是什么?是由什么引腳的信號(hào)決定的?
解:工作在最小模式時(shí),是一個(gè)單處理器系統(tǒng),所有總線控制信號(hào)有CUP直接產(chǎn)生。
工作在最大模式時(shí),系統(tǒng)中除了主CPU夕卜,還有其他協(xié)處理器,是一個(gè)多處理器系統(tǒng),這時(shí)CPU僅向
總線控制器8288提供狀態(tài)信號(hào)S2SIS0,,而由8288產(chǎn)生所有總線控制信號(hào),以支持構(gòu)成多處理器系統(tǒng)。
MN/MX
3.25微處理器中為什么要使用堆棧這樣的數(shù)據(jù)結(jié)構(gòu)?
解:因?yàn)橛布蛙浖褩R呀?jīng)用于支持4個(gè)主要的計(jì)算領(lǐng)域:表達(dá)式計(jì)算,子程序返回地址存儲(chǔ),動(dòng)
態(tài)分配局部變量存儲(chǔ)器和子程序參數(shù)傳遞。
習(xí)題四
4.1簡(jiǎn)述存儲(chǔ)介質(zhì)和半導(dǎo)體存儲(chǔ)器的基本分類情況。
解:存儲(chǔ)器按存儲(chǔ)介質(zhì)分,有半導(dǎo)體存儲(chǔ)器、磁存儲(chǔ)器和光存儲(chǔ)器。
半導(dǎo)體存儲(chǔ)器按工作方式分,有隨機(jī)存取存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM);RAM又可分為雙極型半
導(dǎo)體和單極MOS型;MOS型RAM還可以分為靜態(tài)和動(dòng)態(tài)的。ROM可分為掩膜ROM和可編程ROM,可編程ROM
又分為可編程PROM,可擦除可編程EPROM和電可擦除可編程EEPROMo
4.2簡(jiǎn)述靜態(tài)RAM與動(dòng)態(tài)RAM的區(qū)別與各自的優(yōu)缺點(diǎn)。
解:靜態(tài)RAM是靠雙穩(wěn)態(tài)觸發(fā)器來(lái)記憶信息的;動(dòng)態(tài)RAM是靠MOS電路中的柵極電容來(lái)記憶信息的。動(dòng)態(tài)
RAM需要設(shè)置刷新電路。但動(dòng)態(tài)RAM比靜態(tài)RAM集成度高、功耗低,從而成本也低,適于作大容量存儲(chǔ)器。
所以主內(nèi)存通常采用動(dòng)態(tài)RAM,而高速緩沖存儲(chǔ)器(Cache)則使用靜態(tài)RAM。
4.3簡(jiǎn)述掩模ROM、PROMsEPROM和EEPROM的主要特點(diǎn)和應(yīng)用場(chǎng)合。
解:MASKROM價(jià)格便宜,但程序在出廠時(shí)已經(jīng)固化,適合程序固定不變的應(yīng)用場(chǎng)合。
OTPROM的價(jià)格適中,同時(shí)又擁有--次性可編程能力,適合既要求一定靈活性,又要求低成本的應(yīng)用
場(chǎng)合,尤其是功能不斷翻新、需要迅速量產(chǎn)的電子產(chǎn)品。
EPROM的寫入要用專用的編程器,并且往芯片中寫內(nèi)容時(shí)必須要加一定的編程電壓。特點(diǎn)是具有可擦
除功能,擦除后即可進(jìn)行再編程,但是缺點(diǎn)是擦除需要使用紫外線照射一定的時(shí)間。
EEPROM的擦除不需要借助于其它設(shè)備,它是以電信號(hào)來(lái)修改其內(nèi)容的,而且是以Byte為最小修改單
位,不必將資料全部洗掉才能寫入,徹底擺脫了EPROMEraser和編程器的束縛。它的最大優(yōu)點(diǎn)是可直接用
電信號(hào)擦除,也可用電信號(hào)寫入。
4.4當(dāng)前新型存儲(chǔ)器都有哪些?今后的發(fā)展趨勢(shì)如何?
4.10某RAM芯片的引腳中有12根地址線,8根數(shù)據(jù)I/O線,該存儲(chǔ)器芯片的容量為多大?若該芯片在系
統(tǒng)中的起始地址為1000H,其結(jié)束地址是多少?
解:4K*8,5095H
4.11某CPU有16根地址線(A0?A15),試分析下圖中片選信號(hào)百T、言■所指定的存儲(chǔ)器地址范圍。
解:CST:0000H-6FFFH,或者1000H-7FFFH,或者8000H-EFFFH
CS2-:0000H-6FFFH
4.12試為8088CPU設(shè)廿192KX8位存儲(chǔ)器系統(tǒng)v共中程序區(qū)為64Kx8位,置于CPU尋址空間最高端,采
用27256(32KX8位);數(shù)據(jù)區(qū)為128K義8位,采用62256(32KX8位),置于尋址空間最低端。寫出地址分
配關(guān)系,畫出所設(shè)計(jì)的電路圖。
解:
宙H
tt?
n
r
T.
Y7
RAM:00000-07FFFHROM:20000-27FFFH
08000-0FFFFH28000-2FFFFH
10000-17FFFH
18000-1FFFFH
習(xí)題五
5.1分別指出下列指令中源操作數(shù)和H的操作數(shù)的尋址方式。
(1)MOVBX,1000H(2)MOVBL,[BX]
(3)MOVBUF[BX],AX<4)MOVBX,[BP][SI]
錯(cuò)誤!未指定書簽。與接口技術(shù)
(5)MOV[DI],DL(6)MOVAX,RESULT
解:(1)源:立即數(shù)尋址;目的:寄存器尋址
(2)源:寄存器間接尋址;目的:寄存器尋址
(3)源:寄存器尋址;目的:寄存器相對(duì)尋址
(4)源:基址變址尋址;目的:寄存器尋址
(5)源:寄存器尋址;目的:寄存器間接尋址
(6)源:直接尋址;目的:寄存器尋址
(7)源:寄存器尋址:目的:直接尋址;
(8)源:相對(duì)基址變址尋址;目的:寄存器尋址
5.2設(shè)已知:(BX)=200011,(SI)=120H,(DS)=1200H,(SS)=20011,(BP)=300011,符號(hào)地址VAREG000H。
試問答在以下各種尋址方式下操作數(shù)存放于何處,如果是在存儲(chǔ)單元中,則計(jì)算單元的物理地址是什么?
(1)使用BX的寄存器尋址(例如:MOVAX,BX)
(2)立即數(shù)尋址(例如:MOVAX,1234)
(3)使用BX的寄存器相對(duì)尋址(例如:MOVAX,[BX])
(4)直接尋址(例如:MOVAX,[1234])
(5)使用SI的寄存器間接尋址(例如:MOVAX,[SI])
(6)使用BP和SI的基址變址尋址(例如:MOVAX,[BP][SI])
(7)使用BX和SI的相對(duì)基址變址尋址(例如:MOVAX,[BX][S1])
解:(1)操作數(shù)在BX寄存器中;
(2)操作數(shù)在指令中;
(3)操作數(shù)在存儲(chǔ)單元中,物理地址=15000出
(4)操作數(shù)在存儲(chǔ)單元中,物理地址:13000H;
(5)操作數(shù)在存儲(chǔ)單元中,物理地址=12120H;
(6)操作數(shù)在存儲(chǔ)單元中,物理地址=05120H;
(7)操作數(shù)在存儲(chǔ)單元中,物理地址=15120H。
5.33aW(DS)=2OOOH,(BX)=100H,(SI)=2H,(20100H)=12Hf(20101H)=34H,(20102H)=56H,(20103H)
=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H),(21203H)=65Ho試指出下列各條指令單獨(dú)執(zhí)行
后累加器中的內(nèi)容是什么?
(1)MOVAX,1200H(2)MOVAX,BX
(3)MOVAX,[1200H](4)MOVAX,[BX]
(5)MOVAX,1100U[BX](6)MOVAX,[BX[SI]
(7)MOVAX,1100H[BX][SI](8)MOVAL,[BX]
解:(1)(AX)=1200H;(2)(AX)=100H;(3)(AX)=4C2AH;(4)(AX)=3412H
(5)(AX)=4C2AH;(6)(AX)=7856H;(7)(AX)=65B7H;(8)(AX)=XX12H
5.4指出下列指令的錯(cuò)誤是什么?
(1)MOVBL,AX(2)MOV[BX],[BP+SI]
(3)MOVCS,AX(4)MOVDS,1000H
(5)MOVBX,[SI][DI](6)MOV[2000H],10
解:(1)類型屬性不匹配;(2)兩操作數(shù)都是存儲(chǔ)單元;(3)把CS用作目的操作數(shù)
(4)立即數(shù)送段寄存器;(5)源操作數(shù)中兩個(gè)均為變址寄存器;(6)類型屬性不明確
5.5設(shè)當(dāng)前數(shù)據(jù)段寄存器的內(nèi)容為1B00H,在數(shù)據(jù)段偏移地址為2000H開始的單元內(nèi),含有一個(gè)內(nèi)容為
0FF10H和8000H的指針,它們是一個(gè)16位變量的偏移地址和段池址,試寫出把該變量裝入AX的指令序歹U,
并畫出內(nèi)存圖。
解:LDSBX,[2000H]
MOVAX,[BX]
第6頁(yè)共53頁(yè)
5.6設(shè)當(dāng)前(SP)=010011,(AX)=200011,(BX)=0B10011,試回答:
執(zhí)行指令PUSHAX后,(SP)為多少?畫出堆棧示意圖。
再執(zhí)行指令PUSHBX和POPAX后,(SP)為多少?畫出堆棧示意圖。
解:(1)執(zhí)行PUSHAX后:(SP)=OOFEH
(2)執(zhí)行PUSHBX和POPAX后:(SP)=OOFEH
5.7要求從85號(hào)端口讀入一個(gè)字節(jié)數(shù)據(jù),然后到數(shù)據(jù)段首地址為1000H的表格中換取相應(yīng)的數(shù)據(jù)碼,再
將該數(shù)據(jù)輸出至3000號(hào)端口,試編寫指令序列。
解:INAL,85
MOVBX,1000H
XLAT
MOVDX,3000
OUTDX,AL
5.8試編寫將某十進(jìn)制數(shù)字轉(zhuǎn)換成七段代碼的程序段。設(shè)該十進(jìn)制數(shù)字存儲(chǔ)在名為BCDKEY的字節(jié)變量中,
要求將轉(zhuǎn)換的結(jié)果送入RESULT變量(十進(jìn)制數(shù)字與相應(yīng)七段代碼的對(duì)應(yīng)表如下)。
十進(jìn)制數(shù)^0123456789
七段代碼3FH06H5BH4FH66H6DH7DH07H7FH6FH
解:MOVAL,BCDKEY
MOBBX,DISPLAY
XLAT
MOVRESULT,AL
5.9根據(jù)以下要求編寫相應(yīng)的指令:
(1)將AX寄存器和BX寄存器的內(nèi)容相加,結(jié)果存入BX寄存器。
(2)用增量指令使采用BX寄存器間接尋址的單元中的字節(jié)內(nèi)容加lo
(3)用BX寄存器利位移量303的寄存器相對(duì)尋址方式把存儲(chǔ)器中的一個(gè)字和(CX)相加,結(jié)果送回該
存儲(chǔ)單元中。
(4)用寄存器BX和SI的基址變址尋址方式,把存儲(chǔ)器中的?個(gè)字節(jié)與AH寄存器的內(nèi)容相加,并保存在
AH中。
(5)采用合適的指令,將1000H單元中的字與1200H單元中的字相加,結(jié)果存入1000H單元。
解:(1)ADDBX,AX
(2)INCBYTEPTR[BX]
(3)ADD[BX+300H],CX
(4)ADDAH,[BX][SI]
(5)MOVBX,1000H
MOVAX,[120OH]
ADD[BX],AX
3.10設(shè)以下表達(dá)式中的變量名均為16位用符號(hào)數(shù)所在單元的地址,編寫指令序列,完成下列運(yùn)算(出發(fā)
運(yùn)算的余數(shù)舍去):
(WXY)/(A+70)-X
(A-BXC)/(X-Y)-Z
解:(1)MOVAX,W
IMULY
MOVBX,A
ADDBX,70
IDIVBX
MOVX,AX
(2)MOVAX,B
錯(cuò)誤!未指定書簽。與接口技術(shù)
IMULC
MOVBX,AX
MOVCX,DX
MOVAX,A
CWD
SUBAX,BX
SBBDX,CX
MOVBX,X
SUBBX,Y
IDIVBX
MOVZ,AX
5.11變量VARA1和變量VARA2已定義如下:
VARA1DW23A8H,028011
VARA2DW0A210H,1248H
(1)將VARA1和VARA2單元中的對(duì)應(yīng)字?jǐn)?shù)據(jù)相加,結(jié)果存入VARA2指示的單元中
(2)將VARA1單元中的兩個(gè)字作為雙字和VARA2單元中的兩個(gè)字組成的雙字相加,結(jié)果存放在
VRAR2單元中,雙字的存放格式都是低位字在低地址單元、高位字在高地址單元中。
解:(1)MOVAX,VARA1
ADDVARA2,AX
(2)MUVAX,VAKA1
ADDVARA2,AX
MOVAX,VARA1+2
ADCVARA2+2,AX
5.12寫出完成以下組合式BCD碼計(jì)算的指令序列:
BCD1+BCD2-BCD3-*DX
解:MOVAL,BCD1
ADDAL,BCD2
DAA
MOVDL,AL
MOVAL,BCD1+1
ADCAL,BCD2+1
DAA
MOVDH,AL
MOVAL,DL
SUBAL,BCD3
DAS
MOVDL,AL
MOVAL,DH
SBBAL,BCD3+1
DAS
MOVDH,AL
5.13指出下列各條指令是否正確,如不正確,則指出其錯(cuò)在何處。
(1)MOVCS,100011(2)ADCBX,25H
(3)ADD[BX],20(4)MULAX,BL
(5)PUSHCS(6)MOVDX,2000H
(7)ADD[BX+ST],30H(8)POPCS
(9)INC[SI](10)MOV[BX],[SI]
解:(1)錯(cuò)誤(2)正確(3)錯(cuò)誤(4)錯(cuò)誤(5)正確
第8頁(yè)共53頁(yè)
(6)正確(7)錯(cuò)誤(8)錯(cuò)誤(9)錯(cuò)誤(10)錯(cuò)誤
5.14用邏輯運(yùn)算指令分別寫出完成下列要求的指令:
將BX寄存器中的高4位清零。
將CX寄存器中的第0、1兩位置1。
將AL寄存器的中間4位變反。
測(cè)試AX的最高位和次高位是否為0o
解:(1)MOVAX,OFFFH
ANDBX,AX
(2)MOVAX,3
ORCX,AX
(3)MOVBL,3CH
XORAL,BL
(4)MOVBX,3FFFH
TESTAX,BX
5.15設(shè)(BX)=0A6H,(CL)=3,CF為1,試指出下列各條指令單獨(dú)執(zhí)行后BX中的值。
(1)SARBX,1(2)SHRBX,CL
(3)SHLBL,CL(4)SALBL,1
(5)RORBX,CL(6)RCLBX,CL
(7)ROLBH,1(8)RCRBL,1
解:(1)(BX)=0053H(2)(BX)=0014H(3)(BX)=0030H(4)(BX)=004CH
(5)(BX)=0C014H(6)(BX)=0534H(7)(BX)=0A6H(8)(BX)=00D3H
5.16已知有一32位的無(wú)符號(hào)數(shù)在(DX,AX)中,試編寫指令序列,將該32位數(shù)左移4位,將低4位用
0填補(bǔ);將移出的高4位存入CH的低4位中。
解:MOVCL,4
MOVCH,DH
SHRCH,CL
SHLDX,CL
MOVBL,AH
SHRBL,CL
SHLAX,CL
ORDL,BL
5.17利用移位指令、傳送指令和加法指令完成乘法運(yùn)算(AX)X10o
解:SALAX,1
MOVBX,AX
MOVCL,2
SALAX,CL
ADDAX,BX
5.18試分別指出在下列3種條件下執(zhí)行指令SUBAX,BX時(shí),對(duì)標(biāo)志位OF、CF、SF、ZF影響的情況:
(1)(AX)=14C6H,(BX)=80DCH
(2)(AX)=42C8H,(BX)=608DH
(3)(AX)=0D023H,(BX)=9FD0H
解:⑴OF=1,CF=1,SF=1,ZF=O
(2)0F=0,CF=1,SF=1,ZF=O
(3)0F=0,CF=O,SF=O,ZF=O
錯(cuò)誤!未指定書簽。與接口技術(shù)
5.19在8086/8088指令系統(tǒng)中,哪些指令可以加重且前綴?重復(fù)前綴共有哪幾種形式?它們的操作功能
是什么?
解:可加重復(fù)前綴的指令有:MOVS、STOS、SCAS、LODS、CMPS;
重復(fù)前綴的形式有:REP、REPE/REPZ、REPNE/REPNZ
5.20在一個(gè)名為STRING、長(zhǎng)度為100字節(jié)的字符串中查找是否含有字符“$”,如果有則將第一次發(fā)現(xiàn)的
“$”字符所在單元的偏移地址送入BX寄存器中;如果未曾找到,則將0FFFFH送入BX寄存器中。
解:CLD
MOVAL,'$'
LEADLSTRING
MOVCX,100
REPNESCASB
JNEZER
DECDI
MOVBX,DI
JMPSTOP
ZER:MOVBX,OFFFFH
STOP:HLT
5.21將2000H段中名為BUFST的緩沖區(qū)中長(zhǎng)度為200個(gè)字節(jié)的數(shù)據(jù)串移到3000H段中名為DSTST的緩沖
區(qū)中。編寫兩種采用不同指令實(shí)現(xiàn)該功能的程序段。
解:⑴MOVAX,2000H
MOVDS,AX
MOVAX,3000H
MOVES,AX
MOVCX,200
CLD
LEASI,BUFST
LEADI,DSTST
REPMOVSB
HLT
(2)MOVAX,2000H
MOVDS,AX
MOVAX,3000H
MOVES,AX
MOVCX,200
MOVSI,OFFSETBIFST
MOVDI,OFFSETDSTST
AGN:MOVAL,[SI]
MOVES:[DI],AL
INCSI
INCDI
LOOPAGN
HLT
5.22將1000段中名為DATSTR的字符串,向高地址方向平移20個(gè)字節(jié),字符串的長(zhǎng)度為45字節(jié)。
解:STD
MOVAX,1000H
MOVDS,AX
第10頁(yè)共53頁(yè)
MOVES,AX
LEASI,DATSTR+44
LEADI,DATSTR+64
MOVCX,45
REPMOVSB
HLT
5.23用其它指令完成與下列指令同樣的功能
(1)REPMOVSB(2)REPECMPSW
(3)REPSTOSB(4)REPNESCASB
解:(1)AGAIN:MOVAL,[SI](2)AGAIN:MOVAL,[SI]
MOVES:[DI],ALCMPAL,ES:[DI]
INCSIINCSI
INCDIINCDI
LOOPAGAINLOOPEAGAIN
(3)AGAIN:MOVES:[DI],AL(4)AGAIN:CMPAL,[DI]
INCDIINCDI
LOOPAGAINLOOPNEAGAIN
5.24有100個(gè)學(xué)生的計(jì)算機(jī)課程成績(jī)存放在COMPLIT緩沖區(qū)中,編寫指令序列統(tǒng)計(jì)85分以上、60?85分、
60分以下各有多少人,并把統(tǒng)計(jì)結(jié)果存入ORDER開始的三個(gè)字節(jié)單元中。
解:LEASI,COMPUT
MOVCX,100
MOVBL,10
MOVBH,0
MOVDX,0
AGAIN:MOVAL,[SI]
CBW
IDIVBL
CMPAL,9
JGERANGE1
CMPAL,8
JEGE85
CMPAL,6
JGERANGE2
INCBH
JMPNEXT
GE85:CMPAH,5
JGERANGE1
RANGE2:INCDL
JMPNEXT
RANGE1:INCDH
NEXT:INCSI
LOOPAGAIN
MOVORDER,DH
MOVORDER+1,DL
MOVORDER+2,BH
HLT
錯(cuò)誤!未指定書簽。與接口技術(shù)
5.25在內(nèi)存數(shù)據(jù)區(qū)從4000H開始存放著由30個(gè)字符組成的字符串,編寫指令序列,查找井統(tǒng)計(jì)率中空格
符的個(gè)數(shù),并將統(tǒng)計(jì)結(jié)果存入4020H單元中。
解:MOVSI,4000H
MOVCX,30
SUBBL,BL
MOVAL,20H
AGAIN:CMPAL,[SI]
JNZNEXT
INCBL
NE燈:INCSI
LOOPAGAIN
MOVSI,4020H
MOV[SI],BL
HLT
5.26編寫一指令序列,統(tǒng)計(jì)寄存器BX中內(nèi)容含“1”的個(gè)數(shù),將統(tǒng)計(jì)結(jié)果送入CX寄存器中c
解:SUBCX,CX
G00N:CMPBX,0
JZSTOP
SHRBX,1
JNCJUMP
INCCX
JUMP:JMPGOON
STOP:HLT
5.27試分析下列程序段:
ADDAX,BX
JNOLI
JNCL2
SUBAX,BX
JNCL3
JNOL4
JMPL5
如果AX和BX的內(nèi)容給定如下:
AXBX
(1)147BH80DCH
(2)0B568H54B7H
(3)4C28H608DH
(4)0D023H9FD0H
(5)94B7H0B568H
問在該5種條件下,以上程序執(zhí)行完后程序?qū)⑥D(zhuǎn)向哪里?
解:⑴L1;(2)L1;(3)L2;(4)L5;(5)L5
5.28設(shè)在內(nèi)存數(shù)據(jù)段中有一個(gè)由28個(gè)字節(jié)數(shù)據(jù)組成的數(shù)組,數(shù)組的起始地址為2000H,試編寫程序段,
將其分成正數(shù)組和負(fù)數(shù)組,正數(shù)組存放于2020H開始的單元中;負(fù)數(shù)組存放于2040H開始的單元中。
解:MOVBX,2000H
MOVCX,1CH
MOVSI,2020H
MOVDI,2040H
L00P1:MOVAL,[BX]
第12頁(yè)共53頁(yè)
SUBAL,0
JSNEGAT
MOV[SI],AL
INCSI
JMPNEXT
NEGAT:MOV[DI],AL
INCDI
NEXT:LOOPL00P1
HLT
5.29在首地址為VALU的字?jǐn)?shù)組中,存放有10個(gè)無(wú)符號(hào)數(shù),編與指令序列,求出它們的平均值并存放于
BL寄存器中(只取整數(shù))。再統(tǒng)計(jì)出數(shù)組中有多少個(gè)小于平均值的數(shù),將結(jié)果存于DI.寄存器中。
解:MOVSI,0
MOVDX,0
MOVCX,DX
AVERAGE:MOVAL,VALU[SI]
CBW
ADDDX,AX
INCSI
LOOPAVERAGE
MOVAX,DX
MOVBL,10
DIVBL
MOVBL,AL
MOVSI,0
MOVDX,0
MOVCX,0
COMPARE:MOVAL,VALU[SI]
CMPAL,BL
JAEGOON
INCDL
GOON:INCSI
LOOPCOMPARE
HLT
5.30有20個(gè)ASCII碼表示的分離式BCD碼存放在緩沖區(qū)UNPBCD中,編寫指令序列將它們轉(zhuǎn)換成組合式
BCD碼,即把兩個(gè)相鄰字節(jié)單元的數(shù)碼合并成一個(gè)字節(jié)單元,高地址單元存放在高4位,低地址單元存放在
低4位,轉(zhuǎn)換結(jié)果存放于PABCD緩沖區(qū)中.
解:MOVCX,14H
LEASI,UNPBCD
LEADI,PABCD
CONVERT:PUSHex
MOVAL,[SI]
SUBAL,30H
MOVBL,AL
MOVAL,[SI+1]
SUBAL,30H
MOVCL,4
SHLAL,CL
ADDAL,DL
錯(cuò)誤!未指定書簽。與接口技術(shù)
MOV[DI],AL
POPCX
ADDSI,2
INCDI
LOOPCONVERT
HLT
習(xí)題六
6.1請(qǐng)指出變量與標(biāo)號(hào)都有哪些屬性?它們的主要區(qū)別是什么?
解:變量的屬性有:段屬性,偏移屬性,類型屬性。
標(biāo)號(hào)的屬性有:段屬性,偏移屬性,距離屬性。
變量和標(biāo)號(hào)都是一種符號(hào)地址。變量的內(nèi)容是代表存放在某些存儲(chǔ)單元中的數(shù)據(jù),變量名就代表這些
單元的起始地址;標(biāo)號(hào)是代表一條指令目標(biāo)代碼的起始地址。
6.2在一個(gè)數(shù)據(jù)段中,試用偽指令定義下列數(shù)據(jù)或字符變量,并畫出內(nèi)存分配示意圖。
⑴為十進(jìn)制數(shù)58定義字節(jié)變量DEDAT
⑵為二進(jìn)制數(shù)U011010B定義字節(jié)變量BINDAT
⑶為十六進(jìn)制數(shù)B7A21I定義字變量11EXDAT
⑷定義6個(gè)0的字變量
⑸為字符串'Ihaveapen'定義字節(jié)變量STRING
解:(1)DEDATDB58
(2)INDATDB11011010B
(3)HEXDB0B7A2H
(4)DW6DUP(O)
(5)STRINGDB'Ihaveapen'
6.3已知在某數(shù)據(jù)段中有如下變量定義:
VRWDDW256DUP(?)
現(xiàn)要求對(duì)這些變量單元既能進(jìn)行字操作,同時(shí)在另一種場(chǎng)合乂能進(jìn)行字節(jié)操作,請(qǐng)問應(yīng)該如何解決?
解:用LABEL偽指令進(jìn)行字節(jié)定義:
VRBDLABELBYTE
VRWDDW256(?)
6.4已知有如下賦值語(yǔ)句:
ALPHAEQU100
BETAEQf25
GAMMAEQU2
試指出下列表達(dá)式的值為多少?
⑴ALPHA*100(2)ALPHAMODGAMMA+BETA
⑶(ALPHA+2)*BETA-2(4)(BETA/3)MOD5
⑸(ALPHA+3)*(BETAMODGAMMA)(6)ALPHAGEGAMMA
⑺BETAAND7(8)GAMMAOR3
第14頁(yè)共53頁(yè)
解:⑴10000(2)26(3)2446(4)3
(5)309(6)0FFFFH(7)08H(8)0BH
6.5分析如下程序,畫出堆棧最滿時(shí)各單元的地址及內(nèi)容。
STASEGSEGMENTAT1000H
DW200DUP(?)
TCPLABELWORD
STASEGENDS
CCDSEGSEGMENT
ASSUMECS:CODSEG,SS:STASEG
START:MOVAX,STASEG
MOVSS,AX
MOVSP,OFFSETTOP
PUSHDS
SUBAX,AX
PUSHAX
PUSHBX
PUSHF
HOPF
POPBX
POPAX
CCDSEGENDS
ENDSTART
解:(1)10000(2)26(3)2446(4)3
6.6編寫一完整的匯編語(yǔ)言源程序,在數(shù)據(jù)段中定義一雙字變量VARLD,再在附加段中也定義一雙字變量
V.ARLE,然后將這兩個(gè)雙字內(nèi)容相加,結(jié)果存放于數(shù)據(jù)段的RESU變量中。
解:DATASEGMENT
WVLDLABELWORD
VARLDDD58A027B4H
RESUDW?,?
DATAENDS
EXTRSEGMENT
WVLELABELWORD
VARLEDD0F4C2380H
EXTRENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:EXTR
START:MOVAX,DATA
MOVDS,AX
MOVAX,EXTR
MOVES,AX
MOVAX,WVLD
ADDAX,ES:WVLE
MOVRESU,AX
MOVAX,WVLD+2
ADCAX,ES:WVLE+2
MOVRESU+2,AX
錯(cuò)誤!未指定書簽。與接口技術(shù)
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
6.7循環(huán)程序一般由哪幾部分構(gòu)成?各部分的功能是什么?
解:(D循環(huán)初始化部分。主要是設(shè)定循環(huán)的初始狀態(tài),為循環(huán)作準(zhǔn)備。如設(shè)置循環(huán)最大次數(shù),循環(huán)過
程中相關(guān)寄存器所需的初始值等等。
(2)循環(huán)工作部分。這是循環(huán)程序的主體部分,它完成該循環(huán)體所要實(shí)現(xiàn)的主要功能,如數(shù)據(jù)的傳送、
運(yùn)算等。
(3)循環(huán)參數(shù)調(diào)整部分。主要功能是用于修改某些數(shù)據(jù),以保證每次循環(huán)時(shí)參與運(yùn)行的某些信息能發(fā)
生有規(guī)律的變化,使完成的功能不完全重復(fù)。
(4)循環(huán)控制部分。循環(huán)控制部分是循環(huán)程序設(shè)計(jì)的關(guān)鍵,它根據(jù)循環(huán)控制條件來(lái)控制循環(huán)的運(yùn)行和
結(jié)束,該控制功能由循環(huán)控制指令完成。
6.8設(shè)有一匯編語(yǔ)言源程序如下:
DATSEGSEGMENT
CONDATDB3EH,0l'7JI,68H,9CH,7FH
ORG1000H
SUMDW?
DATSEGENDS
PROSEGSEGMENT
ASSUMECS:PROSEG,DS:DATSEG
MAINPROCFAR
START:PUSHDS
SUBAX,AX
PUSHAX
MOVAX,DATSEG
MOVDS,AX
LEABX,CONDAT
MOVCX,5
XORDX,DX
NMP:MOVAL,[BX]
ANDAL,AL
JSNEXT
ADDDL,AL
JNZNEXT
INCDH
NEXT:INCBX
LOOPNMP
LEABX,SUM
MOV[BX],DX
RET
MAINENDP
PROSEGENDS
ENDSTART
簡(jiǎn)要說明此程序的功能,指出程序運(yùn)行后四個(gè)通用寄存器AX、BX、CX、DX中的內(nèi)容各是什么?程序運(yùn)行的
結(jié)果是什么?保存在什么地方?
解:程序功能是,統(tǒng)計(jì)CONDAT數(shù)據(jù)區(qū)的9個(gè)字節(jié),將正數(shù)之和送入1000H單元;將前幾個(gè)為0的數(shù)的個(gè)
數(shù)送入1001H單元。
第16頁(yè)共53頁(yè)
程序執(zhí)行結(jié)果:(AX)=0010H(BX)=1000H(CX)=O(DX)=023EHo
正數(shù)之和等于3EH保存于1000H單元中;數(shù)組前面0的個(gè)數(shù)是2,保存于1001H單元中。
6.9設(shè)內(nèi)存自1000H開始的存儲(chǔ)區(qū)中,存放有20個(gè)帶符號(hào)數(shù),試編一程序段,找出其中最小的數(shù),存于數(shù)
據(jù)區(qū)2000H中。
解
AX,1000H
DS,AX
BX,BUFF
CX,[BX]
AX,0
s
CAN?BX,2
DX,[BX]
DX,AX
ENEXT
JGAX,DX
?XCHG
NEXT?LOOV
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 豆類品種識(shí)別與質(zhì)量控制考核試卷
- 電氣設(shè)備批發(fā)商員工激勵(lì)措施考核試卷
- 禮儀用品企業(yè)市場(chǎng)分析與預(yù)測(cè)模型應(yīng)用考核試卷
- 稀土金屬壓延加工中的設(shè)備選型與采購(gòu)策略考核試卷
- 材料老化分析考核試卷
- 棉織造行業(yè)人才培養(yǎng)與技能提升考核試卷
- 認(rèn)證認(rèn)可ISO健康與安全管理考核試卷
- 跨國(guó)財(cái)產(chǎn)申報(bào)風(fēng)險(xiǎn)管理與合同
- 知識(shí)產(chǎn)權(quán)評(píng)估與產(chǎn)業(yè)政策對(duì)接協(xié)議
- 創(chuàng)新人才共有產(chǎn)權(quán)住房分割及交易合同
- 逆變器調(diào)試報(bào)告
- 消防控制室值班記錄1
- 雷尼紹探頭編程課件
- 市級(jí)優(yōu)質(zhì)公開課一元一次不等式組說課課件
- 婚前醫(yī)學(xué)檢查證明
- 婦科經(jīng)帶胎產(chǎn)雜99方方歌講解學(xué)習(xí)
- 工藝變更通知單
- 一年級(jí)音樂教案 這是什么 (市一等獎(jiǎng))
- 20XX-煙草車輛運(yùn)輸方案計(jì)劃
- 蘇教版二年級(jí)下冊(cè)數(shù)學(xué)競(jìng)賽試卷
- 晶體幾何基礎(chǔ)
評(píng)論
0/150
提交評(píng)論