微機(jī)原理與接口技術(shù)(蘇大版)課后答案_第1頁(yè)
微機(jī)原理與接口技術(shù)(蘇大版)課后答案_第2頁(yè)
微機(jī)原理與接口技術(shù)(蘇大版)課后答案_第3頁(yè)
微機(jī)原理與接口技術(shù)(蘇大版)課后答案_第4頁(yè)
微機(jī)原理與接口技術(shù)(蘇大版)課后答案_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論