微型計算機系統(tǒng)概述課后習(xí)題_第1頁
微型計算機系統(tǒng)概述課后習(xí)題_第2頁
微型計算機系統(tǒng)概述課后習(xí)題_第3頁
微型計算機系統(tǒng)概述課后習(xí)題_第4頁
微型計算機系統(tǒng)概述課后習(xí)題_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1章微型計算機系統(tǒng)概述

習(xí)題

1-1.微型計算機包括哪幾個主要組成部分,各部分的基本功能是什么

答:

微型計算機由CPU,存儲器,輸入/輸出接口及系統(tǒng)總線組成.

CPU是微型計算機的核心部件,一般具有下列功能:進行算術(shù)和邏輯運算.暫存少

數(shù)據(jù).對指令譯碼并執(zhí)行指令所規(guī)定的操作.與存儲器和外設(shè)進行數(shù)據(jù)交換的能

力.提供整

個系,總需要的定時和控制信號.響應(yīng)其他部件發(fā)出的中斷請求;總線是計算機

系統(tǒng)各功能

模塊間傳遞信息的公共通道,一般由總線控制器,總線發(fā)送器,總線接收器以及一

組導(dǎo)線組

成;存儲器是用來存儲數(shù)據(jù),程序的部件;I/O接口是微型計算機的重要組成部件,

在CPU

和外設(shè)之間起適配作用.

1-2.CPU執(zhí)行指令的工作過程.

答:

最指令,執(zhí)行指令.

指令執(zhí)行的基本過程:

(1)開始執(zhí)行程序時,程序計數(shù)器中保存第一條指令的地址,指明當前將要執(zhí)行的

指令

存放在存儲器的哪個單元.

(2)控制器:將程序計數(shù)器中的地址送至地址寄存器MAR,并發(fā)出讀命令.存儲器

據(jù)此地址取出一條指令,經(jīng)過數(shù)據(jù)總線進入指令寄存器IR.

(3)指令譯碼器譯碼,控制邏輯陣列發(fā)操作命令,執(zhí)行指令操作碼規(guī)定的操作.

(4)修改程序計數(shù)器的內(nèi)容.

1-3.果微處理器的地址總線為20位,它的最大尋址空間為多少

答:202=1048576=lMB

1-4.處理器,微型計算機和微型計算機系統(tǒng)之間有什么關(guān)系

答:

微處理器是微型計算機的核心部件.微處理器配上存儲器,輸入/輸出接口及相應(yīng)

的外

設(shè)構(gòu)成完整的微型計算機.以微型計算機為主體,配上系統(tǒng)軟件和外部設(shè)備以后,

就構(gòu)成了

完整的微型計算機系統(tǒng).

1-5.下面十進制數(shù)分別轉(zhuǎn)換為二進制,八進制和十六進制數(shù):

128,65535,1024

答:

128,二進制:10000000B,八進制:2000,十六進制:80H

65535,二進制八進制:1777770,十六進制:FFFFH

1024,二進制:10000000000B,八進制:20000,十六進制:400H

1-6.下面二進制數(shù)分別轉(zhuǎn)換為十進制及十六進制數(shù):

1011.1010B,1111101.11B

答:

1011.1010B,十進制:10625,十六進制:B.AH

1111101.11B,十進制:125.75,十六進制:7D.CH

1-7.(5487)10=(01010100100001U)BCD=1010101101111B

1-8.設(shè)字長為8位,請寫出下列數(shù)的原碼,反碼,補碼和移碼:

15,-20,-27/32

答:

[+15]原=00001111,[+15]反=00001111,[+15]補=00001111,[+15]移=10001111

[-20]原=10010100,[-20]反=11101011,[-20]補=11101100,[-20]移=01101100

[-27/32]J^=l.1101100,[-27/321^=1.0010011,[-27/32]#=1.0010100,

[-27/32]移=0.0010100

第2章微型計算機系統(tǒng)的微處理器

習(xí)題

2-1.086/8088CPU的功能結(jié)構(gòu)由哪兩部分組成它們的主要功能是什么

答:

8086/8088CPU的功能結(jié)構(gòu)由以下兩部分組成:總線接口單元BIU(Bus

InterfaceUnit),

執(zhí)行部件EU(ExecutionUnit).

總線接口單元BIU的主要功能是:負責與存儲器,1/0端口進行數(shù)據(jù)傳送.具體講:

指令:總線接I」部件從內(nèi)存中取出指令后送到指令隊列.預(yù)取指令.配合EU執(zhí)行

指令,存

取操作數(shù)和運算結(jié)果.

執(zhí)行部件EU主要功能是:負責指令執(zhí)行.

2-2.086CPU指令部件(隊列)的作用是什么地址加法器的作用是什么

答:

8086/8088的指令隊列分別為6/4個字節(jié),存儲預(yù)取的指令.

地址加法器用來產(chǎn)生20位物理地址.8086/8088可用20位地址尋址1M字節(jié)的內(nèi)

存空間,

而CPU內(nèi)部的寄存器都是16位,因此需要由一個附加的機構(gòu)來計算出20位的物

理地址,這

個機構(gòu)就是20位的地址加法器.

2-3.據(jù)8086CPU的結(jié)構(gòu),簡述程序的執(zhí)行過程.

答:

設(shè)程序的指令代碼已存放在存貯器中.為執(zhí)行程序,CPU按照時鐘節(jié)拍,產(chǎn)生一系

列控

制信號,有規(guī)則地重復(fù)進行以卜過程.

(l)BIU從存貯器中取出一條指令存入指令隊列.

(2)EU從指令隊列取指令并執(zhí)行指令.BIU利用總線空閑時間,從內(nèi)存取第二條指

或取第三條指令存入指令隊列.

(3)EU執(zhí)行下一條指令.如果前面一條指令有寫存貯器的要求,則通知BIU把前條

令結(jié)果寫到存貯器中,然后再取指令存入指令隊列.

(4)如指令執(zhí)行要求讀取操作數(shù),由BIU完成.

(5)EU執(zhí)行再下一條指令,返回⑴處繼續(xù)執(zhí)行上述操作過程.所以,程序的執(zhí)行

程就是CPU取指令,分析指令,執(zhí)行指令,再取指令這樣一個循環(huán)重復(fù)過程.

在指令執(zhí)行過程中,利用EU分析指令操作碼和執(zhí)行指令時不占用總線操作時間

的特

點,BIU自動地通過總線讀取存貯器中的指令碼存入BIU指令隊列,從而使BIU與

EU并

行工作,提高CPU執(zhí)行指令的速度.

2-4.什么是總線周期8086/8088的基本總線周期由幾個時鐘周期組成若CPU的

時鐘頻率為10MHz,則一個時鐘周期為多少一個基本總線周期為多少

答:

總線周期:BIU通過系統(tǒng)總線對存儲器或I/O端口進行一次讀/寫操作的過程稱為

一個

總線周期.

8086/8088CPU的一個基本總線周期由4個時鐘周期(T1~T4)組成,也稱4個T狀

態(tài).

若CPU的主時鐘頻率為10MHz,則一個時鐘周期為-710s,一個基本總線周期為

4X

-710s.

2-5.復(fù)位信號RESET到來后,8086/8088CPU的內(nèi)部狀態(tài)有何特征系統(tǒng)從何處開

始執(zhí)行指令

答:

8086/8088系統(tǒng)中,復(fù)位信號RESET到來后,處理器內(nèi)部的各寄存器和標志寄存器

的內(nèi)容自動設(shè)置為:

CSFFFFHDS0000H

SS0000HES0000H

IP0000H指令隊列空

FR0000H(禁止中斷)

因CS=FFFFH,IP=0000,所以8086/8088將從地址FFFF0H開始執(zhí)行指令.

2-6.在總線周期的T1?T4狀態(tài),CPU分別執(zhí)行什么操作在CPU的讀/寫總線周期

中,數(shù)據(jù)在哪個狀態(tài)出現(xiàn)在數(shù)據(jù)總線上

答:

CPU在每個時鐘周期內(nèi)完成若干個基本操作,具體是:

T1狀態(tài):CPU向多路復(fù)用總線上發(fā)送地址信息指出要尋址的存儲單元或外設(shè)端口

地址.

T2狀態(tài):CPU從總線上撤消地址,使總線的低16位置為高阻抗狀態(tài),為傳輸數(shù)據(jù)作

準備.總線的高4位輸出本總線周期狀態(tài)信息.這些狀態(tài)信息用來表示中斷允許

狀態(tài),當前

正在使用的段寄存器等.

T3狀態(tài):CPU在總線的高4位繼續(xù)輸出總線周期狀態(tài)信號.在總線的低16位出現(xiàn)

CPU寫出的數(shù)據(jù),或者從存儲器或I/O端口讀入的數(shù)據(jù).

T4狀態(tài):總線周期結(jié)束.

在CPU的讀/寫總線周期中,數(shù)據(jù)在T3狀態(tài)出現(xiàn)在數(shù)據(jù)總線上.

2-7.8086/8088讀/寫總線周期,微處理器是在(B)時刻采樣READY信號,以便決

定是否插入Tw.

A.T2B,T3C.T3下降沿D.T2上升沿

2-8.8086/8088系統(tǒng)中為什么要有地址鎖存器需要鎖存哪些信息

答:

因8086/8088系統(tǒng)中地址線,數(shù)據(jù)線是復(fù)用的,所以要有地址鎖存器鎖存T1狀態(tài)

輸出

的地址.8086系統(tǒng)鎖存20位地址及BHE信號,8088系統(tǒng)鎖存20位地址.

2-9.8086/8088的最大模式系統(tǒng)配置與最小模式系統(tǒng)配置在結(jié)構(gòu)上有何區(qū)別總

線控

制器8288的作用是什么

答:

"大模式系統(tǒng)配置在結(jié)構(gòu)上與最小模式系統(tǒng)的主要區(qū)別是增加了一個總線控制

器8288

和一個總線仲裁器8289.

總線控制器8288的作用是:對來自8086/8088CPU的總線狀態(tài)信號S2,SI,S0譯

碼,與輸入控制信號AEN,CEN和I0B相互配合,產(chǎn)生總線命令信號和總線控制信號.

2T0.關(guān)于8086最大工作模式的特點描述正確的是(D).

A.不需要總線控制器8288B.適用于單一處理機系統(tǒng)

C.由編程進行模式設(shè)定D.M/I0引腳不可以直接引用

2T1.8086/8088有最小和最大模式兩種工作模式,當(B)時為最小模式.

A.MN/MX=OB.MN/MX=1B.INTR=1D.HOLD="1"

2-12.8086最小工作模式和最大工作模式的主要差別是(D).

A.地址總線的位數(shù)不同B.I/O端口數(shù)不同

C.數(shù)據(jù)總線位數(shù)不同D.單處理器與多處理器的不同

2-13.PC機中地址總線的作用是(C).

A.用于選擇存儲器單元B.用于選擇進行信息傳輸?shù)脑O(shè)備

C.用于給存儲器單元和I/O設(shè)備接口電路的選擇地址

D.以上都不正確

2-14.設(shè)當前SS=COOOH,SP=2000H,AX=2355H,BX=2122H,CX=8788H,則

當前棧頂?shù)奈锢淼刂肥嵌嗌偃暨B續(xù)執(zhí)行PUSHAX,PUSHBX,POPCX3條指令后,

棧內(nèi)容發(fā)生什么變化AX,BX,CX中的內(nèi)容是什么

2-15.8086/8088的控制標志位有(C)個.

A.1B.2C.3D.4

276.編程人員不能直接讀寫的寄存器是(C).

A.DIB.CXC.IPD.SP

2-17.設(shè)(AH)=03H,(AL)=82H,試指出將AL和AH中的內(nèi)容相加和相減后,標

志位CF,AF,OF,SF,IF和PF的狀態(tài).

答:

(AH)=00000011H

+(AL)=10000010H

10000101

CF=0,AF=0,0F=0,SF=1,IF不確定和PF=0

(AH)=00000011H

_(AL)=10000010H

10000001

CF=1,AF=0,0F=0,SF=1,IF不確定和PF=1

2-18.8086CPU中的標志寄存器FR中有哪些狀態(tài)標志和控制標志這些標志位各

有什

么含義

見教材.

2-19.BHE信號的作用是什么簡述8086系統(tǒng)中,訪問存儲器在讀寫一個字和字節(jié)

過程中,BIIE和A0的狀態(tài).

答:

高8位數(shù)據(jù)總線允許/狀態(tài)復(fù)用信號.總線周期的T1狀態(tài),8086在BHE/S7輸出低

電平,

表示高8位數(shù)據(jù)總線AD15~AD8上的數(shù)據(jù)有效.

8086系統(tǒng)中,BHE和AD0結(jié)合起來,指出當前傳送的數(shù)據(jù)在總線上將以何種格式出

現(xiàn).

(見教材表2-4-1)

8088系統(tǒng)中,由于數(shù)據(jù)總線只有8位,不存在高8位與低8位的問題.所以,該引

(第34號)被定義為雙功能弓I腳.在最大模式時,該引腳恒為高電平;在最小模式

中,則

定義為SSO.

2-20.8086向偶地址存儲單元0送一個字節(jié)數(shù)據(jù)時,須執(zhí)行一個總線周期,在第

一個T

狀態(tài)中,ALE為1,A0為0,WR為1.

2-21.8086系統(tǒng)中,為什么要對存儲器進行分段管理其分段管理是如何實現(xiàn)的

答:

8086/8088地址總線是20位的,CPU中的寄存器是16位的,20位地址無法用16

位寄

存器表示,所以必須分段.

通常有代碼段,數(shù)據(jù)段,堆棧段,輔助段.段內(nèi)地址16位,每個段的大小最大可達

64KB;

實際使用時可以根據(jù)需要來確定段大小.

2-22.已知某存儲單元的段地址為4500H,偏移地址為4500H,該單元的物理地址

是多

答:49500H

2-23.某指令對應(yīng)當前段寄存器CS=FFFFH,指令指針寄存器IP=FFOOH,此時,該指

的物理地址為多少指向這一物理地址的CS值和IP值是唯一的嗎試舉例說明

答:

該指令的物理地址為:CS+IP

FFFFOH+FFOOH=1OFEFOII

這一物理地址的CS值和IP值是唯一的嗎:不唯一

2-24.因為8086CPU的字數(shù)據(jù)既可以存放在內(nèi)存的偶地址單元,也可以安排在奇

地址單

元,所以其堆棧指針SP(A).

A.最好是指向偶地址單元

B.可以指向任何地址單元

C.只能指向偶地址單元

D.只能指向奇地址單元

第3章8086/8088的指令系統(tǒng)

習(xí)題

3-1.試舉例說明8086/8088微處理器的各種尋址方式.

(略)

3-2.假定DS=1000H,SS=9000H,SI=100H,BX=20H,BP=300H,請指出下列指令的

源操作數(shù)是什么尋址方式若源操作數(shù)位于存儲器中,其物理地址是多少

(l)MOVCX,[1000H](2)MOVAX,100H

(3)MOVAX,[BX](4)MOVBL,CL

(5)MOVAL,[BP+5](6)MOVAL,[BP+SI+2]

答:

(1)中源操作數(shù)為直接尋址,其物理地址=DS*16+1000H=l1000H;

(2)中源操作數(shù)為立即尋址;

(3)中源操作數(shù)為寄存器間接尋址,其物理地址=DS*16+(BX)=10020H;

(4)中源操作數(shù)為寄存器尋址;

(5)中源操作數(shù)為變址尋址,其物理地址=SS*16+(BP)+5=90305H;

(6)中源操作數(shù)為基址加變址尋址,物理地址=SS*16+(BP)+(SI)+2=9040211.

3-3.在8088/8086微機的內(nèi)存物理地址34780H處,存放有字節(jié)數(shù)據(jù)58H,已知

DS=3000H,試寫指令序列將該字節(jié)數(shù)據(jù)送入AL寄存器.要求分別采用三種不同的

尋址方

式.

答:

(1)直接尋址:

MOVAL,[4780H]

(2)寄存器間接尋址:

MOVBX,4780H

MOVAL,[BX]

(3)變址尋址:

MOVSI,4782H

MOVAL,[SI-2]

3-4.判斷下述8086/8088指令的寫法是否正確:

(l)MOV[AXLBH(2)MOV[BP],AX

(3)MOV[SP],AX(4)MOV[DI],[SI]

(5)OUT10H,CL(6)INCWORDPTR[SI]

(7)PUSHAL(8)CMP36H,AL

(9)MOVES:[SI],DI(10)MOVBYTEPTR[BX],800

答:

⑴MOV[AX],BH(X)

⑵MOV[BP],AX(J)

z\

(31

\7MOV[SP],AX(X)

z\

(41

\7MOV[DI],[SI](X)

/\

(51

X7OUT10H,CL(X)

z\

(61

\7INCWORDPTR[SI](J)

z\

(7!

\/PUSHAL(X)

/\

(81

\7CMP36H,AL(X)

zX

(9u

\/MOVES:LSI],DI(V)

(10)MOVBYTEPTR[BX],800(X)

3-5.設(shè)有關(guān)寄存器及存儲單元的內(nèi)容如下:

DS=2000H,BX=0100H,AX=1200H,SI=0002H,[20102H]=33H,[20103]=4411,

[21200]=9BH,[21201H]=99H,[21202H]=0AAH,[21203H]=88H.

問:下列各條指令單獨執(zhí)行后相關(guān)寄存器或存儲單元的內(nèi)容為多少

(l)MOVAX,1800H(2)MOVAX,BX

(3)MOVBX,[1200H](4)MOVDX,[BX+1100H]

(5)MOV[BX+SI],AL(6)MOVAX,[BX+SI+HOOH]

答:

⑴AX=1800H

⑵AX=BX=0100H

⑶BX=999BH

(4)DX=999BH

⑸[20102H]=AL=0011

(6)AX=88AAH

3-6.已知SS=OFFOOH,SP=OOOOH,試編寫程序片段將兩個16位數(shù)1122H和3344H

后壓入堆棧,并畫出堆棧區(qū)和SP內(nèi)容變化的過程示意圖(標出存儲單元的地址).

答:

MOVAX,1122H

PUSHAX

11H

22HSP

OFFOO:OFFFFH

OFFOO:OFFFEH

MOVAX,3344H

PUSHAX

OFFOO:OFFFFH11H

22H

33H

44HspOFFOO:OFFFCH

OFFOO:OFFFDH

OFFOO:OFFFEH

3-7.設(shè)在數(shù)據(jù)段偏移地址為2000H單元開始的地方連續(xù)存放了0~15的平方值.

試寫

出包含有XLAT指令的指令序歹山用來查找0~15范圍內(nèi)的某個數(shù)N的平方值(設(shè)N

的值存

放在CL寄存器中).

答:

MOVBX,2000H

MOVAL,CL

XLAT

3-8.試用簡單的幾條指令完成對AL寄存器中的無符號數(shù)乘以12的操作.要求只

能用

移位,加法及MOV指令.

答:

MOVAH,0

MOVCL,2

SHLAX,CL;AL左移兩位,相當于乘4

MOVBX,AX;保存

SHLAX,1;AL再左移一位,相當于原數(shù)乘8

ADDAX,BX;相當于原數(shù)乘12

3-9.已知程序段如下:

MOVAX,1234H

MOVCL,4

ROLAX,CL

DECAX

MOVCX,4

MULCX

問:執(zhí)行完每條指令后,AX=CF=SF=ZF=(設(shè)在執(zhí)行第一條指令前CF=SF=ZF=O).

答:

AX=8D00H

CF=O,SF及ZF不確定.

3T0.執(zhí)行如下三條指令后:

MOVAH,0

MOVAL,7

ADDAL,5

問:(1)若再執(zhí)行一條非組合BCD碼加法調(diào)整指令A(yù)AA后,AX的內(nèi)容為多少(2)

題中的三條指令后緊跟的是一條組合BCD碼加法調(diào)整指令DAA,則執(zhí)行完DAA后

AX的

內(nèi)容為多少

答:

(1)AX=0102H

(2)AX=0012H

3-11.已知AX=14C6H,BX=80DCH,問執(zhí)行下列程序段后,程序轉(zhuǎn)向何處

ADDAX,BX

JNCL2

SUBAX,BX

JNCL3

JMPL4

若初始AX=B568H,BX=54B7H,情況又如何

答:

程序轉(zhuǎn)向地址標號L2處.

若初始AX=B568H,BX=54B7H,程序轉(zhuǎn)向地址標號L4處.

3-12.如下程序完成什么功能

MOVAX,5000H

MOVDS,AX

MOVCX,100

MOVAX,0

MOVSI,AX

START:ADDAX,[SI+1000H]

ADDSI,2

LOOPSTART

MOV[200H],AX

答:

程序完成內(nèi)存500011:100011開始的連續(xù)100個字數(shù)據(jù)的求和,并將和數(shù)存于

5000H:200H處.

3-13,試寫一程序片段,將當前數(shù)據(jù)段偏移地址為2000H開始的100個字節(jié)單元內(nèi)

與偏移地址為3000H開始的100個字節(jié)單元內(nèi)容相交換,即:偏移地址2000H對應(yīng)

單元內(nèi)

容與偏移地址3000H對應(yīng)單元內(nèi)容交換,偏移地址2001H對應(yīng)單元內(nèi)容與偏移地

址3001H

對應(yīng)單元內(nèi)容交換,依此類推.

答:

MOVSI,2000H

MOVDI,3000H

MOVCX,100

REPTO:MOVAL,[SI]

MOVBL,[DI]

MOV[DI],AL

MOV[SI],BL

INCSI

INCDI

LOOPREPTO

3-14.在數(shù)據(jù)段中偏移地址分別為1000H及2000H開始的存儲區(qū)內(nèi)有兩個10字節(jié)

的字

符串,試編寫一段程序來比較這兩個字符串.如果這兩個字符串不同,則程序轉(zhuǎn)至

8000H:1000H處,否則順序執(zhí)行.

答:

MOVSI,1000H;裝入源串偏移地址

MOVDL2000H;裝入目的串偏移地址

MOVCX,10;裝入字符串長度

CLD;方向標志復(fù)位

REPECMPSB

JCXZCONTI

JMP800011:100011

CONTI:NOP

3-15.利用串操作指令將數(shù)據(jù)段中偏移地址1000H開始處的100個字節(jié)移動到數(shù)

據(jù)段

偏移地址為1050H開始的地方.

答:

MOVCX,100

MOVSI,1000H+99

MOVDI,1050H+99

STD;地址減量方式傳送

REPMOVSB;數(shù)據(jù)塊傳送(串操作)

第4章匯編語言程序設(shè)計

習(xí)題

4-1.如下定義:

VARIDB4

VAR2DB10

CNST1EQU12

試指出下列指令的錯誤原因:

(l)MOVCNSTLCX(2)MOVVARI,AX

(3)CMPVARI,VAR2(4)CNST1EQU24

答:

(1)目的操作數(shù)不能是立即數(shù);

(2)VARI單元定義為字節(jié)類型,而AX為字;

(3)8086/8088中兩個內(nèi)存單元不能直接比較;

(4)同一符號名不允許用EQU重復(fù)定義.

4-2.某人定義了如下數(shù)據(jù)段:

DATASEGMENTAT1000H

ORG100H

VALIDB11H

VAL2DW22H,33H

VAL3DB5DUP(44H)

DATAENDS

試指明該數(shù)據(jù)段中偏移地址從100H到109H的各存貯單元的內(nèi)容.

答:

100H:11H

101H:22H

102H:OOH

103H:33H

104H:OOH

105II:44H

106H:44H

107H:44H

108H:44H

109H:44H

4-3.對于下面的數(shù)據(jù)定義,寫出各條指令執(zhí)行后的結(jié)果:

DATASEGMENT

ORG01OOH

AAAADW0A244H

BBBBDB33H,66H,92H,29H

CCCCEQUWORDPTRBBBB

DDDDDB'ABCD'

EEEEEQU$-DDDD

DATAENDS

(1)MOVAX,AAAAAL=()

(2)MOVBX,CCCCBH=()

(3)MOVDX,OFFSETDDDDDL=()

(4)MOVCL,EEEECL=()

答:

(1)MOVAX,AAAAAL=(44H)

(2)MOVBX,CCCCBH=(66H)

(3)MOVDX,OFFSETDDDDDL=(06H)

(4)MOVCL,EEEECL=(04H)

4-4.試編程序?qū)?nèi)存從50000II到5FFFFH的每個單元均寫入數(shù)55H,并再逐個單

元讀

出比較,看寫入的與讀出的是否一致.若全對,則將AL置0;只要有錯,則將AL置

OFFH.

答:

START:MOVAX,5000H

MOVDS,AX

MOVSI,0

MOVCX,OFFFFH

L00P1:MOVBYTEPTR[SI],55H

MOVAL,[SI]

CMPAL,55H

JNZLOOPERR

L00P2:INCSI

LOOPL00P1

MOVBYTEPTR[SI],55H;最后一個單元

MOVAL,[SI]

CMPAL,55H

JNZLOOPERR

MOVAL,0;全對

JMPLOOPOUT

LOOPERR:MOVAL,OFFH

LOOPOUT:NOP

4-5.編寫一個子程序,對AL中的ASCII字符添加偶校驗位序it7),即:使AL中的

"1"的個數(shù)為偶數(shù).

答:

ADDPARITYPROCNEAR

ANDAL,7FH

JPADDEXIT

ORAL,80H

ADDEXIT:RET

ADDPARITYENDP

4-6.利用上題的子程序,編程對內(nèi)存物理地址10000H開始的1024個單元的

ASCII字

符加上偶校驗位.

答:

START:MOVAX,1000H

MOVDS,AX

MOVSI,0

MOVCX,1024

L00P1:MOVAL,[SI]

CALLADDPARITY

MOVLSI],AL

INCSI

LOOPL00P1

4-7,試寫一子程序,完成對一個8位無符號數(shù)乘6的操作.要求:(1)只能用傳送,

法及移位指令;(2)入口參數(shù)(即8位無符號數(shù))放于AL中,出口參數(shù)(即乘6后的

結(jié)果)

放于AX.

答:

MULTI6PROCNEAR

PUSHBX

MOVAH,0

SHLAX,1;乘2

MOVBX,AX

SHLAX,1;乘4

ADDAX,BX;乘6

POPBX

RET

MULTI6ENDP

4-8.給定如下程序片段:

START:MOVAX,1OOOH,

OVSS,AX

OVSP,OOOFH

OVAX,1OOOH

USHAX

OVBX,5439H

USHBX

ALLNEARPTRSUBRT

OPAX

STOPO:HLT

SUBRT:PUSHBP

OVBP,SP

VAAX:MOVAX,[BP+4]

DDAX,456AH

OV[BP+4],AX

OPBP

ET4

問:(1)程序執(zhí)行到標號為SUBRT處的指令時,SP=(2)執(zhí)行完標號為VAAX的

MOV指令后,AX=(3)執(zhí)行到標號為STOPO處的指令時:SP=AX=BX=CF=SF=

OF=

答:

(1)程序執(zhí)行完標號為SUBRT處的"PUSHBP”指令后,SP=0006H

(2)執(zhí)行完標號為VAAX的MOV指令后,AX=5439H

(3)程序執(zhí)行到標號為STOPO處的指令時(實際執(zhí)行"HL『指令之前):

SP=OOOCH

AX=99A3H

BX=5439II

以及以下標志寄存器的內(nèi)容:

CF=0

SF=1

OF=1

4-9.自符號地址為MARK開始的內(nèi)存緩沖區(qū)中,存有100個學(xué)生的某門課的考試成

績.

試找出成績不低于80分以及成績低于60分的學(xué)生個數(shù),同時求出最高的成績分

及最低的成

績分數(shù),并將它們分別存于符號地址為PST,FST,MAXMK及MINMK的四個單元中.

求寫出完整的數(shù)據(jù)段及代碼段.

答:

DATASEGMENT

MARKDB100DUP()

PSTDW0

FSTDW0

MAXMKDB0

MINMKDB100

DATAENDS

CODESEGMENT

ASSUMECSrCODE,DS:DATA

START:MOVAX,DATA

MOVDS,AX

MOVCX,100

MOVBX,OFFSETMARK

AGAIN:MOVAL,[BX]

CMPAL,MAXMK

JCHIGHL

MOVMAXMK,;updatehighestmark

HIGHL:CMPMINMK

JNCMKCHK

MOVMINMK,AL;updatelowestmark

MKCHK:CMPAL,60

JNCHIGHMK

INCFST;increasetheno.ofstudentswhosemark=80

CHKFH:INCBX

LOOPAGAIN

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

4T0.編寫一段程序,接收從鍵盤輸入的10個數(shù)(輸入回車符后結(jié)束),然后將這

些數(shù)按位取反后存于BUFF開始的緩沖區(qū)中.

答:

DATASEGMENT;數(shù)據(jù)段

BUFFDB10DUP(0);數(shù)據(jù)區(qū)

DATAENDS

STACKSEGMENTSTACK'STACK';堆棧段

DB100DUP()

STACKENDS

CODESEGMENT;代碼段

ASSUMECS:CODE,DS:DATA,SS:STACK

START:MOVAX,DATA

MOVDS,AX

MOVCX,10

LEASI,BUFF

REPT1:MOVAH,1;鍵入數(shù)據(jù)

INT21H

CMPAL,ODH;判斷是否是回車鍵

JENEXT1;是,轉(zhuǎn)NEXT1;否繼續(xù)輸入

NOTAL

MOVBUFF,AL

DECCX

NEXT1:ORCX,CX

JNZREPT1

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

4-11.試編程序完成兩個一位十進制數(shù)的加法功能.具體步驟與要求如下:(1)利

用DOS

1號功能調(diào)用,順序從鍵盤輸入被加數(shù),"+”運算符及加數(shù);(2)完成相加功能;(3)

將相

加的結(jié)果用DOS9號功能調(diào)用在屏幕上顯示出來.例如:輸入8+6后,屏幕上應(yīng)顯

示相加

結(jié)果14.如果在上述步驟(1)中有非法輸入,應(yīng)在屏幕上顯示"Inputerror",之后

程序須

重新從頭開始(即從被加數(shù)的輸入開始).

(略)

4-12.試定義一條能對任意寄存器進行左移指定位的宏指令.

答:

SHIFTMACROREG,COUNT

LOCALLEND

PUSHCX

MOVCL,COUNT

CMPCL,1

JCLEND;forCOUNT<1,donotshift

SHLREG,CL

LEND:POPCX

ENDM

4-13.某人寫了如下宏定義,以將某寄存器中的一位16進制數(shù)轉(zhuǎn)化為相應(yīng)的

ASCII碼.

試分析該宏定義是否有錯,若有,試指出錯誤之處及原因.

HEXASCMACROHEXREG

PUSHF

CMPHEXREG,10

JLLS10

ADDHEXREG,'a'O'-10

LS10:ADDHEXREG,'O'

POPF

RET

HEXASCENDP

答:

錯誤之處:

開始處缺:LOCALLS10

應(yīng)去除"RET”語句

"HEXASCENDP"應(yīng)為"ENDM"

4-14.在數(shù)據(jù)段偏移地址BUFFER開始處順序存放了100個無符號16位數(shù),現(xiàn)要求

寫程序?qū)⑦@100個數(shù)據(jù)從大到小排序.

(略)

第5章微型計算機總線

習(xí)題

5-1.ISA總線是屬于____C______總線.

A.同步B.異步C.半同步D.自適應(yīng)

5-2,以下的接口芯片中,可以用作總線主設(shè)備的是__A.

A.DMA控制器B.中斷控制器C.計數(shù)器D.A/D變換器

5-3.總線最大傳輸率等于_____D_______.

A.總線寬度乘以總線頻率

B.總線寬度乘以總線頻率的二分之一

C.總線寬度乘以總線頻率的四分之一

D.總線寬度乘以總線頻率的八分之一

5-4.總線寬度的意思是B.

A.總線插槽的尺寸

B.總線中數(shù)據(jù)線的數(shù)目

C.總線中所有信號線的數(shù)目

D.總線插槽所有引腳的數(shù)目

5-5.8088CPU在形成對外的數(shù)據(jù)總線和地址總線時要使用___B.

A.三態(tài)地址鎖存器和三態(tài)雙向數(shù)據(jù)緩沖器

B.非三態(tài)地址鎖存器和三態(tài)雙向數(shù)據(jù)緩沖器

C.三態(tài)地址鎖存器和非三態(tài)雙向數(shù)據(jù)緩沖器

D.非三態(tài)地址鎖存器和非三態(tài)雙向數(shù)據(jù)緩沖器

5-6.8088在最大模式下使用8288總線控制器產(chǎn)生讀寫控制信號,8288產(chǎn)生的讀

寫信

號有6條,在PC總線中使用的讀寫控制線是_____C______.

A.6條B.5條C.4條D.2條

5-7.PC總線標準中不包括_____C.

A.DMA請求和應(yīng)答線

B.硬中斷請求線

C.和CPU連接的中斷請求和應(yīng)答線

D.復(fù)位線

5-8.PCI總線是一種D總線.

A.8位/16位B.8位/16位

C.16位/32位D.32位/64位

5-9.ISA總線是一種A________總線.

A.8位/16位B.8位/16區(qū)

C.16位/32位D.32位/64位

5-10.以下的說法中,不是同步總線特點的是C.

A.不需要應(yīng)答信號

B.總線周期的長度一般較短

C.總線周期的長短可以變化

D.總線上各部件的工作速度比較接近

5-11.什么是總線,微型計算機為什么要采用總線結(jié)構(gòu)

答:

、、線是在計算機系統(tǒng)中,CPU和其他模塊,模塊和模塊之間傳輸某種信息的公共

通道.

采用總線結(jié)構(gòu),便于微型計算機設(shè)計和生產(chǎn)的標準化和模塊化,降低了生產(chǎn)和使

的成本,對于微型計算機的推廣使用具有非常重要的價值.

572.總線操作有什么限制這些限制對于微型計算機的性能有什么影響

答:

"、線上同時只能傳輸一種信號.所以,不允許同時有幾個部件互相傳輸信息.不同

部件

之間的傳輸只能分時進行.

這種總線傳輸?shù)姆謺r性限制了微型計算機操作的并發(fā)性.

5-13.ISA總線是一種同步總線還是半同步總線

答:

信一種半同步總線.

5-14.ISA總線通過什么信號可以調(diào)整總線周期的長短

答:

I/OCHRDY.如果此信號線的輸入是低電平,要求CPU延長總線周期.

5-15.PCI總線是不是可以接入多個主設(shè)備在接入多個主設(shè)備時,PCI總線是什

么類

型的總線

答:

PCI總線可以接入多個主設(shè)備.

PCI總線本來是屬于半同步總線,可以通過TRDY#和IRDY#來控制插入等待周期.

引入多個主設(shè)備時,需要通過REQ和GNT信號來進行請求和應(yīng)答的聯(lián)絡(luò),但是,并

不會

因此而改變總線的類型位異步總線.總線的類型仍然是半同步總線.

5-16.現(xiàn)在實際的微型計算機是多總線系統(tǒng)還是單總線系統(tǒng)微型計算機采用多

總線系

統(tǒng)有什么優(yōu)點

答:

顯在的微機系統(tǒng)都是多總線系統(tǒng).

多總線系統(tǒng)可以根據(jù)不同的速度需要,在系統(tǒng)的不同地方使用不同速度的總線.

使得系

統(tǒng)的配置具有更多的靈活性.由于不需要所有的總線都使用同樣高速的性能,也

可以降低系

統(tǒng)的成本.

5-17.一個USB系統(tǒng)包括幾種硬設(shè)備,分別在系統(tǒng)中起什么作用

答:

一個USB系統(tǒng)包含三類硬件設(shè)備:USB主機(USBHost),USB設(shè)備(USB

Device),USB

集線器(USBHub)

USB主機有以下功能:

檢測USB設(shè)備的加入和退出;

管理主機和USB設(shè)備間的通信;

讀取和分析設(shè)備的配置信息,對USB設(shè)備進行配置操作;

對總線上的錯誤進行管理和恢復(fù);

為加入的USB設(shè)備提供電源.

USBHub就是USB集線器.USB集線器用于設(shè)備擴展連接,通過USB集線器可以連

接更多的USB設(shè)備.

USB設(shè)備就是使用USB總線標準的外部設(shè)備.

5-18.為什么USB總線很快的得到了普及和應(yīng)用

答:

傳輸速度快,可以滿足一般的需要;

即插即用,使用方便;

成本較低,易于接受.

第6章半導(dǎo)體存儲器

習(xí)題

6-1.半導(dǎo)體存儲器分為哪兩大類隨機存取存儲器由哪幾個部分組成

答:

由隨機存取存儲器(RAM)和只讀存儲器(ROM);RAM由地址寄存器,譯碼驅(qū)

動電路,存儲體,讀寫驅(qū)動電路,數(shù)據(jù)寄存器和控制邏輯6部分組成.

6-2.簡述ROM,PROM,EPROM,EEPROM在功能上各有何特點.

答:

a)ROM是只讀存儲器,使用時只能讀此不能寫入,適用于保存不需要更改而經(jīng)常

讀取的數(shù)據(jù),通常使用的的光盤就是這類存儲器;

b)PROM屬于一次可編程的ROM,通常使用時也只能讀此不能寫入,通常使用的

刻錄光盤就屬于此類存儲器.最初從工廠中制作完成的PROM內(nèi)部并沒有資料?,

用戶可以用專用的編程器將自己的資料寫入,但是這種機會只有一次,一旦寫入

也無法修改,若是出了錯誤,已寫入的芯片只能報廢;

c)EPROM屬于可擦除ROM,但是用戶需要使用專用的紫外線擦除器對其進行數(shù)據(jù)

擦除,并使用專用的編程器對其重新寫入數(shù)據(jù);

d)EEPROM是電可擦寫ROM,可以用專用的編程器對其進行擦寫.

6-3.存儲器的地址譯碼有幾種方式各自的特點是什么

答:

加址譯碼有三種方式:線選法,全譯碼法和部分譯碼法.

e)線選法:使用地址總線的高位地址作為片選信號,低位地址實現(xiàn)片內(nèi)尋址;優(yōu)

點是

薪構(gòu)簡單,需要的硬件電路少,缺點是地址不連續(xù),使用中不方便,而且同一存儲

區(qū)的地址不唯一,造成地址空間浪費;

f)全譯碼法:將地址總線中除片內(nèi)地址以外的全部高位地址都接到譯碼器的輸

入端參

與譯碼.特點是每個存儲單元的地址是唯一的,地址利用充分,缺點是譯碼電路復(fù)

雜;

g)部分譯碼:將高位地址的部分地址線接到譯碼器參與譯碼,產(chǎn)生存儲器的片選

信號

特點是各芯片的地址是連續(xù)的,但是地址不唯一,仍然存在地址的堆疊區(qū).

6-4.某RAM芯片的存儲容量為1024X8位,該芯片的外部引腳最少應(yīng)有幾條其中

幾條地址線幾條數(shù)據(jù)線若已知某RAM芯片引腳中有13條地址線,8條數(shù)據(jù)線,

那么該

芯片的存儲容量是多少

答:

至少23根,其中有10根地址線,8條數(shù)據(jù)線;存儲容量是213*8bit=64Kbit=8KB.

6-5.用Intel21141KX4位的RAM芯片組成32Kx8位的存儲器,需要多少塊這

樣的

心-H-片LL

答:

需要64片.

6-6.設(shè)某微型機的內(nèi)存RAM區(qū)的容量為128KB,若用2164芯片構(gòu)成這樣的存儲器,

需多少片2164至少需多少根地址線其中多少根用于片內(nèi)尋址多少根用于片

選譯碼

答:

需要16片;至少地址線需要17根,其中1條用于片選,16條用于片內(nèi)尋址.

6-7.某8088系統(tǒng)用2764ROM芯片和6264SRAM芯片構(gòu)成16KB的內(nèi)存.其中,ROM

的地址范圍為OFEOOOH?OFFFFFH,RAM的地址范圍為0F000H-0F1FFFH.試利用

74LS138譯碼,畫出存儲器與CPU的連接圖,并標出總線信號名稱.

答:

6-8.什么是Cache簡述其工作原理若主存DRAM的的存取周期為70ns,Cache的

存取周期為5ns,命中率為85%,則它們構(gòu)成的存儲器的平均存取周期是多少

答:

Cache位于主存和CPU之間,有SRAM組成,用來協(xié)調(diào)CPU和主存之間的數(shù)據(jù)傳輸

速度;Cache的工作原理是基于程序訪問的局部性,即在單位時間內(nèi)對局部范圍

的存儲器地

址頻繁訪問,而對此范圍以外的地址則訪問甚少;平均存儲周期

=5ns*85%+70ns*15%=14.75ns.

6-9.什么是虛擬存儲器它的作用是什么

答:

虛擬存儲器又稱虛擬內(nèi)存,是指在內(nèi)存不足的情況下,利用外部存取器的一部分

空間

模擬內(nèi)存,使軟件可以將其當成一般的內(nèi)存使用,從使用角度來看,除了速度較慢

外,其他

方面與內(nèi)存相比并無明顯區(qū)別;虛擬存儲器圓滿解決了計算機存儲系統(tǒng)對存儲容

量,單位成

本和存取速度的苛刻要求,取得了三者之間的最佳平衡.

第7章微型計算機和外設(shè)間的數(shù)據(jù)傳輸

習(xí)題

7T.什么是接口什么是端口什么情況下兩個端口可以共用一個地址在

8086/8088微機系統(tǒng)中,CPU是如何實現(xiàn)端口尋址的

答:

兼外部設(shè)備與計算機連接起來,實現(xiàn)數(shù)據(jù)傳送的控制電路稱為I/O接口電路;為

了存放

接口的數(shù)據(jù),狀態(tài)和控制信息,I/O接口電路擁有幾個不同地址的寄存器,每個寄

存器稱為

一個端口;若狀態(tài)與控制端口的位長和不超過8,則可以共用一個端口;808X系列

CPU的

端口是獨立尋址的,使用IN和OUT指令實現(xiàn)對端口的操作.

7-2.對于查詢方式,中斷方式有什么優(yōu)點和DMA方式相比,中斷方式又有什么不

答:

與查詢方式相比,中斷方式不要求CPU等待或者查詢,CPU與外設(shè)并行工作,可以

大提高系統(tǒng)的工作效率;但與DMA方式相比,每次外設(shè)與存儲器進行數(shù)據(jù)傳送時

都要經(jīng)過

CPU中轉(zhuǎn),在傳送數(shù)據(jù)塊時,傳送中地址指針的改變和傳送計數(shù)器修改將使得傳

輸速度較

低,增加了系統(tǒng)開銷.

7-3.有一輸入設(shè)備,其數(shù)據(jù)端口的地址為FEEOH;狀態(tài)端口地址為FEE2H,當其D0

位為1時表明輸入數(shù)據(jù)準備好.試編寫采用查詢方式進行數(shù)據(jù)傳送的程序段,要

求從該設(shè)備

讀取64個字節(jié)并輸入到從2000H:2000H開始的內(nèi)存中.

答:

子程序如下:

START:MOVAX,2000H

MOVDS,AX

MOVDI,AX

MOVCX,64

L00P1:MOVDX,0FFE2H

L00P2:INAL,DX

ANDAL,01H

JZL00P2

MOVDX,OFFEOH

INAL,DX

MOV[DI],AL

INCDI

LOOPL00P1

RET

第8章中斷系統(tǒng)

習(xí)題

8-1.8086系統(tǒng)中,用IRET指令結(jié)束中斷服務(wù)程序后,標志IF的值是____A

A.肯定等于1B.肯定等于0

C.不確定D.按設(shè)置,可以是1或者0

8-2.執(zhí)行8086的IRET中斷返回指令后,將從堆棧中彈出_____C_____字節(jié)數(shù)據(jù),

入相應(yīng)的寄存器.

A.2個B.4個C.6個D.8個

8-3.8086的中斷向量表中存放的是_____B______.

A.中斷類型號B.中斷服務(wù)程序入口地址

C.斷點地址D.中斷向量地址

8-4.8086中斷向量表的范圍是RAM地址的______A______.

A.00000"003FFHB.00000^007FFH

C.OOOOO'OOBFFHD.OOOOO"OOFFFH

8-5采用中斷方式為外部設(shè)備服務(wù)的優(yōu)點包括_____C.

A.提供可靠的數(shù)據(jù)傳輸服務(wù)和簡化硬件接口

B.提高CPU的效率和提供可靠的數(shù)據(jù)傳輸服務(wù)

C.提高CPU的效率和加強實時處理能力

D.加強實時處理能力和簡化硬件接口

8-6.為了可以實現(xiàn)中斷嵌套,在8086系統(tǒng)的中斷服務(wù)程序中,需要寫一條

D__.

A.CLC指令B.STC指令

C.CLI指令D.STI指令

8-7.在具有2片8259A級聯(lián)的中斷系統(tǒng)中,兩片8259A都設(shè)置為非自動結(jié)束中斷,

下說法中正確的是___C.

A.兩片8259A的中斷服務(wù)程序都要發(fā)送2條E0I命令

B.兩片8259A的中斷服務(wù)程序都要發(fā)送一條E0I命令

C.主8259A的服務(wù)程序發(fā)送一條E0I命令,從8259A的服務(wù)程序發(fā)送2條

D.主8259A的服務(wù)程序發(fā)送2條E0I命令,從8259A的服務(wù)程序發(fā)送一條

8-8.以下和中斷有關(guān)的操作中,必須由CPU自動完成的是__A______.

A.保存斷點地址

B.恢復(fù)斷點地址

C.保存斷點地址和恢復(fù)斷點地址

D.保存斷點地址,恢復(fù)斷點地址和保存標志寄存器

8-9.中斷系統(tǒng)可以實現(xiàn)中斷嵌套,其最主要的原因是——C.

A.通過堆棧保護斷點

B.可以通過指令來開中斷

C.具有中斷優(yōu)先級管理機制

D.使用硬件中斷控制器

8T0.在8086系統(tǒng)中,一個中斷類型號為ODBH的中斷服務(wù)子程序位于從

8100H:1234H

開始的內(nèi)存中,在中斷向量表中相應(yīng)的中斷向量所在的起始物理地址為

____A______.

A.0036CHB.OOODBH

C.82234HD.01234H

8-11在8086系統(tǒng)中,一個中斷類型號為ODBH的中斷服務(wù)子程序入口地址是

8100H:

1234H,這個地址在中斷向量表中連續(xù)4個存儲單元存放的內(nèi)容依次為

____C_______.

A.81H,OOH,12H,34HB.OOH,81H,34H,12H

C.34H,12H,OOH,81HD.12H,34H,81H,00H

8-12.4片8259A構(gòu)成的級聯(lián)中斷控制系統(tǒng)中,最多可以直接連接的外部中斷源的

數(shù)目

是____D______.

A.4個B.32個

C.28個D.29個

8-13.8086的以下各種中斷中,需要硬件提供中斷類型號的只有___D.

A.INTOB.INTn

C.NMID.INTR

8-14.對于8086的軟件中斷,以下說法中正確的是_____D.

A.所有軟件中斷的優(yōu)先級都是相同的

B.所有軟件中斷的優(yōu)先級都可以任意設(shè)置

C.優(yōu)先級有差別,可以調(diào)整

D.優(yōu)先級有差別,不可以調(diào)整

8-15.什么是中斷向量什么是中斷向量表8086的中斷向量表存放在存儲器的

哪個

區(qū)域為什么8086中斷向量表的大小是1024個字節(jié)

答:

中斷向量就是中斷服務(wù)程序的入口地址.

中斷向量表存放中斷服務(wù)程序的入口地址,或者存放跳轉(zhuǎn)到中斷服務(wù)程序入口的

轉(zhuǎn)移指

令.

8086的中斷向量表位于RAM區(qū)的00000ir003FFH.

因為8086支持256個中斷,每個中斷服務(wù)程序的入口地址是4個字節(jié),共需要

1024

字節(jié).

8T6.現(xiàn)在有10個外中斷源要申請中斷,都用軟件查詢來進行優(yōu)先級排隊,此時

需要

為這些中斷源準備幾個中斷服務(wù)程序為什么

答:

R需要一個中斷服務(wù)程序.

10個中斷源通過一個或門向CPU申請中斷.當有幾個中斷源同時申請時,在中斷

服務(wù)

程序中進行排隊查詢.再轉(zhuǎn)移到各自的服務(wù)程序段.并不需要為每個中斷源準備

一個服務(wù)程

序.

8-17.如果8259A設(shè)置為非自動結(jié)束中斷方式.但是,用戶在編寫中斷服務(wù)程序時,

沒有向8259A發(fā)送中斷結(jié)束命令E0I.這樣的做法會產(chǎn)生什么不好的后果

答:

%結(jié)果是8259內(nèi)部的中斷服務(wù)寄存器中的相應(yīng)的登記不會撤銷.也就不會允許

后續(xù)的

同級中斷的申請.而實際上上CPU的服務(wù)已經(jīng)結(jié)束,應(yīng)該可以允許中斷的申請.

8-18.執(zhí)行以下指令后的結(jié)果有什么不同:

MOVAX,1234HMOVAX,1234H

MOVBX,5678HMOVBX,5678H

PUSHBXPUSHBX

PUSHAXPUSHAX

RETIRET

再進一步敘述IRET指令和RET指令有什么不同.

答:

執(zhí)行左邊一組指令后,IP=1234H.

執(zhí)行右邊一組指令后,CS=5678H,IP=1234H.

RET指令一般是近調(diào)用返回,只將堆棧頂部內(nèi)容彈出到IP.

IRET指令一定是遠調(diào)用的返回,要將棧頂4個字節(jié)彈出到CS和IP.還會將自動壓

入的

標志寄存器的內(nèi)容出棧到標志寄存器.

8-19向8259A的A0=l的端口發(fā)送--個命令字,如何可以確定這個命令字是初始

化命

令字ICW2而不是操作命令字OCW1

答:

要看前一個命令字是不是ICW1.如果是ICW1,則這個命令字是ICW2,否則就是

OCW1.

8-20.8259A的初始化有幾種不同的情況,分別使用在什么條件下

答:

1)只使用ICW1和ICW2:單片8259,而且不使用ICW4.

2)使用ICW1,ICW2和ICW3:多片8259,但不使用ICW4.

3)使用ICW1,ICW2和ICW4:單片8259,但使用ICW4.

4)使用ICW1,ICW2,ICW3和ICW4:多片8259,也使用ICW4.

8-21.8259A設(shè)置為非自動結(jié)束中斷,級聯(lián)使用8259A時,主8259A的服務(wù)程序和

8259A的服務(wù)程序,在發(fā)送中斷結(jié)束命令方面有什么不同

答:

主8259的服務(wù)程序要結(jié)束主8259A的ISR寄存器中的登記.從8259的服務(wù)程序

要結(jié)

束主8259A和從8259的ISR寄存器中的登記.

8-22.分析以下中斷向量表寫入程序:

MOVAX,0

MOVES,AX

MOVBX,01C8H

LEAAX,INTSUB

MOVES:[BX],AX

MOVAX,SEGINTSUB

MOVES:[BX+2],AX

相應(yīng)中斷源的中斷類型號是什么請再用另外一種方式,完成這個中斷向量表的

寫入程

序.

答:

中斷類型號是72H.

用DOS功能調(diào)用25H來寫入:

PUSHDS

MOVAX,SEGINTSUB

MOVDS,AX

MOVDX,OFFSETINTSUB

MOVAL,72H

MOVAH,25H

INT21H

POPDS

8-23.以下的子程序1是中斷初始化程序,子程序2是響應(yīng)中斷的中斷服務(wù)程

序.OAOH

和20H都是8259A的端口地址.分析這些程序段,并回答問題:

子程序1:

INT-P2PROCFAR

PUSHDS

PUSHAX

PUSHDX

MOVDX,OFFSETINT-P1

MOVAX,SEGINT-P1

MOVDS,AX

MOVAL,78H

MOVAH,25H

INT21H

POPDX

POPAX

POPDS

RET

INT-P2ENDP

子程序2:

INT-P1PROCFAR

PUSHAX

INC[SI]

MOVAL,20H

OUTOAOH,AL

OUT20H,AL

POPAX

IRET

INT-P1ENDP

請問:

(1)分配給這個中斷的中斷類型號是什么

(2)CPU到中斷向量表的哪四個地址單元取得入口地址

(3)中斷源連接到8259A的哪個中斷輸入,是主8259A還是從8259A

(4)在該中斷處理時能否實現(xiàn)中斷嵌套為什么

答:

(1)中斷類型號是78H.

(2)占用中斷向量表的地址是:001E0H,001E1H,001E2H,001E3H.

(3)連接到8259A的IRO輸入,是從8259A.

(4)不能中斷嵌套.因為再服務(wù)程序中,沒有STI指令.

8-24.修改例8-6的中斷服務(wù)子程序,使得它能夠應(yīng)用于16位除數(shù)的除法溢出中

斷.

入口參數(shù)是BX作為除數(shù),被除數(shù)是指令隱含的.出口參數(shù)應(yīng)該包括32位的商和

16位的余

數(shù).請自己指定具體的出口參數(shù),并完成中斷服務(wù)程序的編程.

答:

32位的商存放在CX:AX,余數(shù)在DX

INTOOPROCFAR

POPCX;修改返回地址

ADDCX,2

PUSHCX

CMPBX,0

JNENEXT

LEADX,MESSAGE;除數(shù)為0,顯示錯誤信息

MOVAH,09

INT21H

JMPFINISH

NEXT:PUSHAX;作除法,AX暫存于堆棧

MOVAX,DX;高16位改為低16位

MOVDX,0;高16位為0

DIVBX

MOVCX,AX;保存商的高16位

POPAX;恢復(fù)低16位被除數(shù)AX

DIVBX;商是CX:AX,余數(shù)是DX

FINISH:IRET

INTOOENDP

8-25.編寫一個4號溢出中斷的服務(wù)程序,取代原來系統(tǒng)中的相應(yīng)程序.新程序的

功能

是顯示有關(guān)溢出的錯誤信息,然后,中止程序的執(zhí)行.編寫一個測試程序,測試新

程序的功

能.測試程序要完成中斷向量表4號中斷入口地址的改寫,并通過具有溢出結(jié)果

的運算來進

行測試.

答:

DATASEGMENT

MESSAGEDB"ARITHMETICOVERFLOW.",ODH,OAH,'$'

MESSAG1DB"AXISTHERESULT.”,ODH,OAH,'$'

DATAENDS

STACKSEGMENTSTACK'STACK'

DB50DUP(O)

STACKENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA,SS:STACK

STARTPROCFAR

PUSHDS

MOVAX,0

PUSHAX

MOVAX,DATA

MOVDS,AX

STI

MOVAL,4;保存原中斷向量

MOVAH,35H

INT21H

PUSHES

PUSHBX

PUSHDS;寫中斷向量表

MOVAX,SEGINT04

MOVDS,AX

MOVDX,OFFSETINT04

MOVAL,4

MOVAH,25H

INT21H

POPDS

MOVAX,8080H;做加法

ADDAX,8080H

INTO

LEADX,MESSAG1;正常結(jié)束

MOVAH,09

INT21H

POPDX;恢復(fù)中斷向量表

POPCX

PUSHDS

MOVDS,CX

MOVAL,4

MOVAH,25H

INT21H

POPDS

RET

STARTENDP

INT04PROCFAR

LEADX,MESSAGE;溢出,顯示錯誤信息

MOVAH,09

INT21H

MOVAH,4CH

INT21H

FINISH:IRET

INT04ENDP

CODEENDS

ENDSTART

第9章微型計算機常用接口技術(shù)

習(xí)題

9T.試說明并行接口和串行接口在數(shù)據(jù)傳輸和內(nèi)部結(jié)構(gòu)上的主要區(qū)別

答:

.行接口使數(shù)據(jù)的各位同時在總線上傳輸,串行接口使數(shù)據(jù)一位一位地傳輸.因

為I/O

接口和微處理器之間的數(shù)據(jù)是并行的,所以兩種接口的區(qū)別主要表現(xiàn)在I/O接口

與外設(shè)之間

的數(shù)據(jù)傳送.

兩種接口在結(jié)構(gòu)上的主要區(qū)別在于串行接口需要進行并行與串行之間的相互轉(zhuǎn)

換,而并

行接口無需進行這種變換.

9-2.8255A的方式0一般用在什么場合在方式0時欲使用應(yīng)答信號進行聯(lián)絡(luò)應(yīng)

該怎

么辦

答:

8255A的方式0一般應(yīng)用在無條件傳送方式,即外設(shè)總是“準備好”的情況.也可以

在查詢傳送方式,這時可利用C口來配合A口和BU的輸入/輸出操作.

在方式0時,如果要用應(yīng)答信號可把C口的4個位(高4位或低4位均可)規(guī)定為

出口,用來輸出一些控制信號,而把C口的另外4個位規(guī)定為輸入口,用來輸入外

設(shè)的狀

態(tài).

9-3.8255A的工作方式控制字和置位/復(fù)位控制字都是寫入控制端口的,那么它

們是由

什么來區(qū)分的如果利用CU置位/復(fù)位功能是否一次可以使C口的若干位同時置

1或置0

答:

^55A控制字的最高位(D7)為特征位,用來區(qū)分方式控制字和C

溫馨提示

  • 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

提交評論