微機原理與接口技術試題庫(含答案)_第1頁
微機原理與接口技術試題庫(含答案)_第2頁
微機原理與接口技術試題庫(含答案)_第3頁
微機原理與接口技術試題庫(含答案)_第4頁
微機原理與接口技術試題庫(含答案)_第5頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

三、選擇題

1、在計算機內部,一切信息的存取、處理和傳送都是以________D_______形式進行的。

A)EBCDIC碼B)ASCII碼C)十六進制編碼D)二進制編碼

2、與十進制數56等值的二進制數是_A—。

A)111000B)111001C)101111D)110110

四、是非判斷題

1、在第三代計算機期間浮現了操作系統。(V)

2、對于種類不同的計算機,其機器指令系統都是相同的。(X)

3、在計算機中,數據單位bit的意思是字節。(X)

1.微處理器,微型計算機和微型計算機系統三者之間有何區別?

答:微處理器即CPU,它包括運算器、控制器、寄存器陣列和內部總線等部份,用于實現微型計算機的運算和控制功

能,是微型計算機的核心;一臺微型計算機由微處理器、內存儲器、I/O接口電路以及總線構成;微型計算機系統則包

括硬件系統和軟件系統兩大部份,其中硬件系統又包括微型計算機和外圍設備;由此可見,微處理器是微型計算機的重

要組成部份,而微型計算機系統又主要由微型計算機作為其硬件構成。

2.CPU在內部結構上由哪幾部份構成?CPU應具備哪些主要功能?

答:CPU在內部結構上由運算器、控制器、寄存器陣列和內部總線等各部份構成,其主要功能是完成各種算數及邏輯

運算,并實現對整個微型計算機控制,為此,其內部又必須具備傳遞和暫存數據的功能。

3.累加器和其它通用寄存器相比有何不同?

答:累加器是通用寄存器之一,但累加器和其它通用寄存器相比又有其獨特之處。累加器除了可用做通用寄存器存放

數據外,對某些操作,普通操作前累加器用于存放一個操作數,操作后,累加器用于存放結果。

4.微型計算機的總線有哪幾類?總線結構的特點是什么?

答:微型計算機的總線包括地址總線、數據總線和控制總線三類,總線結構的特點是結構簡單、可靠性高、易于設計

生產和維護,更主要的是便于擴充。

6.計算機I/O接口有何用途?試列出8個I/O接口。

答:計算機I/O接口是連接計算機和外部設備的紐帶和橋梁,它主要用于協調和控制計算機與外設之間的信息流通和

交換。例如:串行通訊口(COM口)、并行打印機口、軟盤驅動器接口、硬盤驅動器接口、光驅接口、顯示器接口、

音響設備接口、其它通用設備接口(USB、SCSI等)。

7.現在,計算機主板上普通都包括哪些I/O接口?I/O接口卡如何與主板相連?

答:現在,計算機主板上普通包括串行通訊口、并行打印口、軟盤驅動器接口、硬盤驅動器接口、光驅接口、USB接

口等。象顯示器適配器、網卡、modem卡等I/O接口卡普通通過總線插槽與主板相連。

8.簡述系統總線,AGP總線,PCI總線及ISA總線的作用。

答:系統總線是CPU與存儲器及橋接器之間傳遞信息的通道,AGP總線專門用與連接CPU與顯示器適配器,PCI總

線普通用于連接一些高速外設接口作為高速外設與CPU或者內存交換信息的通道,而ISA總線普通用于連接一些非高

速外設接口作為非高速外設與CPU或者內存交換信息的通道。

9.試說明計算機用戶,計算機軟件,計算機硬件三者的相互關系。

答:計算機用戶,計算機軟件系統,計算機硬件系統共同構成一個計算機應用系統,三者在該系統中處于三個不同的

層次。計算機用戶處于最高層,計算機軟件處于中間層,計算機硬件系統處于最下層。在這里計算機用戶是系統的主

宰,他們通過軟件系統與硬件系統發生關系,指揮計算機硬件完成指定的任務。即,計算機用戶使用程序設計語言編

制應用程序,在系統軟件的干預下使用硬件系統進行工作。

11.存儲單元的選擇由什么信號控制?讀、寫靠什么信號區分?

答:存儲單元的選擇由地址信號控制,而對存儲單元進行讀操作還是寫操作則要靠讀、寫信號區分。

4.若用一個字節來表示帶符號數,判斷下列各運算在機內進行時是否會產生溢出,寫出判斷過程。

A.5BH+32H;B.-08H-15H;C.-51H+(-3DH);D.2DH+3CH

答:A.產生溢出,5BH=01011011B其補碼表示的機器數為Q1011011

32H=00110010B其補碼表示的機器數為:00110010

相加的結果為V0001101

數值最高位向符號位進位,但符號位向前無進位,故產生溢出。

B.不產生溢出,-08H=-00001000B其補碼表示的機器數為111000

-15H=-00010101B其補碼表示的機器數為:11101011

相加的結果為:111100011

數值最高位向符號位進位,符號位同時也向前進位,故不產生溢出.

C.產生溢出,-51H=-01010001B其補碼表示的機器數為

-3DH=-00111101B其補碼表示的機器數為:11000011

相加的結果為:101110010

數值最高位向符號位無進位,但符號位向前進位,故產生溢出.

D.不產生溢出,2DH=00101101B其補碼表示的機器數為:00101101

3CH=00111100B其補碼表示的機器數為:00111100

相加的結果為:01101001

數值最高位向符號位無進位,符號位向前也無進位,故不產生溢出。

6.詳細敘述總線緩沖器的作用。

答:總線緩沖器的作用主要是控制各路數據在總線上的交叉傳送避免相互沖突,當幾路數據都要向總線上傳送時,就

通過各路的緩沖器來解決,當一路傳送時,緩沖器使其它各路數據與總線斷開。

7.鎖存器和寄存器有什么不同?

答:鎖存器與寄存器都是用來暫存數據的器件,在本質上沒有區別,無非寄存器的輸出端平時不隨輸入端的變化而變

化,惟獨在時鐘有效時才將輸入端的數據送輸出端(打入寄存器),而鎖存器的輸出端平時總隨輸入端變化而變化,

惟獨當鎖存器信號到達時,才將輸出端的狀態鎖存起來,使其再也不隨輸入端的變化而變化。

1.8086從功能上分成為了EU和BIU兩部份。這樣設計的優點是什么?

答:傳統計算機在執行程序時,CPU總是相繼地完成取指令和執行指令的動作,即,指令的提取和執行

是串行進行的。而8086CPU在功能上分成為了EU和BIU兩部份,BIU負責取指令,EU負責指令的執行,

它們之間既互相獨立又互相配合,使得8086可以在執行指令的同時進行取指令的操作,即實現了取指

令和執行指令的并行工作,大大提高了CPU和總線的利用率,從而提高了指令的處理速度。

2.8086CPU中地址加法器的重要性體現在哪里?

答:地址加法器是8086CPU的總線接口單元中的一個器件,在8086存儲器分段組織方式中它是實現存

儲器尋址的一個關鍵器件,地址加法器將兩個16位寄存器中的邏輯地址移位相加,得到一個20位的實

際地址,把存儲器尋址空間從64K擴大到1M,極大地擴大了微型計算機的程序存儲空間,從而大大提高

了程序運行效率。

3.8086CPU中有哪些寄存器?分組說明用途。哪些寄存器用來指示存儲器單元的偏移地址?

答:8086CPU中有8個通用寄存器AX、BX、CX、DX、SP、BP、SI、DI;兩個控制寄存器IP、FL;四個

段寄存器CS、DS、SS、ESo8個通用寄存器都可以用來暫存參加運算的數據或者中間結果,但又有各自

的專門用途。例如,AX專用做累加器,某些指令指定用它存放操作數和運算結果;CX為計數寄存器,

在某些指令中做計數器使用;DX為數據寄存器;BX為基址寄存器,BP為基址指針,SI為源變址寄存

器,DI為目的變址寄存器,這4個寄存器在數據尋址中用來存放段內偏移地址(有效地址)或者段內

偏移地址的一部份;SP為堆棧指示器,用來存放棧頂有效地址。兩個控制寄存器用來存放有關的狀態

信息和控制信息。例如,標志寄存器FL用來存放狀態標志和控制標志;而指令指針用來存放下一條要

取指令的有效地址。四個段寄存器用來存放段地址。例如,CS寄存器用來存放代碼段的段地址;DS寄

存器用來存放數據段的段地址;SS寄存器用來存放堆棧段的段地址;ES寄存器用來存放擴展段的段地

址。

4.8086系統中存儲器的邏輯地址由哪兩部份組成?物理地址由何器件生成?如何生成?每一個段的邏

輯地址與寄存器之間有何對應關系?

答:8086系統中存儲器的邏輯地址由段地址(段首址)和段內偏移地址(有效地址)兩部份組成;存儲

單元的物理地址由地址加法器生成,尋址時,CPU首先將段地址和段內偏移地址送入地址加法器,地址

加法器將段地址左移4位并與段內偏移地址相加,得到一個20位的物理地址。數據段的段地址在DS寄

存器中,段內偏移地址可能在BX、BP、SI或者DI寄存器中。代碼段的段地址在CS寄存器中,段內偏

移地址在IP寄存器中。堆棧段的段地址在SS寄存器中,段內偏移地址在SP寄存器中。擴展段的段地

址在ES寄存器中,段內偏移地址可能在BX、BP、SI或者DI寄存器中。

5.設CPU中各有關寄存器的當前狀況為:SS=0a8bH.DS=17ceH>CS=dc54H>BX=394bH、IW2f39H、S41200H,

BX給出的是某操作數的有效地址,請分別寫出該操作數、下一條要取的指令及當前棧頂的邏輯地址和

物理地址。

答:該操作數的邏輯地址為DS:BX=17CE:394BH,物理地址=17CEH*1OH+394BH=1B62BH;下一條要取的

指令的邏輯地址為CS:IP=DC54:2F39H,物理地址=DC54H*10H+2F39H=DF479H;當前棧頂的邏輯地址=SS:

SP=0A8B:1200H,物理地址=0A8BH*10H+l200H=0BAB0H。

6.若DS=157DH時,某操作數的物理地址是215FAH,當DS=18DEH時,該操作數的物理地址是多少?

答:該操作數的段內偏移地址=該操作數的物理地址-DS=215FAH-157D0H=BE2AH,故當DS=18DEH時,該

操作數的物理地址=DS*10H+BE2AH=18DE0H+BE2AH=24C0AH

7.設AX=2875H、BX=34DFH、SS=1307H、SP=8H,依此執行PUSHAX、PUSHBX、POPAX、POPCX后柱頂

指針變為多少?AX=?BX=?CX=?

答:當前棧頂指針=SS*10H+SP=13070H+8H=13078H,依此執行PUSHAX、PUSHBX、POPAX、POPCX后棧

頂指針仍為13078H。但AX=34DFH,BX=34DFH,CX=2875H。

1.假定(BX)=637DH,(SI)=2A9BH,位移量D=3237H,試確定在以下各種尋址方式下的有效地址是

(1)即將尋址

(2)直接尋址

(3)使用BX的寄存器尋址

(4)使用BX的間接尋址

(5)使用BX的寄存器相對尋址

(6)基址變址尋址

(7)相對基址變址尋址

答:(1)即將數尋址的有效地址是當前IP的內容;

(2)直接尋址,若使用位移量D=3237H進行,則有效地址為3237H;

⑶使用BX的寄存器尋址時,操作數在BX寄存器中,因此無有效地址;

⑷使用BX的間接尋址時,有效地址在BX寄存器中,即有效地址=637DH;

⑸使用BX的寄存器相對尋址的有效地址=(BX)+D=637DH+3237H=95B4H;

(6)基址變址尋址的有效地址=(BX)+(SI)=637DH+2A9BH=8E18H;

(7)相對基址變址尋址的有效地址=(BX)+(SI)+D=C050H;

2.寫出把首地址為BLOCK的字數組的第6個字送到DX寄存器的指令。要求使用以下幾種尋址方式:

(1)寄存器間接尋址

(2)寄存器相對尋址

(3)基址變址尋址

答:(1)使用寄存器間接尋址,把首地址為BLOCK的字數組的第6個字送到DX寄存器的指令為:

MOVBX,BLOCK

ADDBX,12

MOVDX,[BX]

⑵使用寄存器相對尋址,把首地址為BLOCK的字數組的第6個字送到DX寄存器的指令為:

MOVBX,BLOCK

MOVDX,[BX+12]

⑶使用基址變址尋址,把首地址為BLOCK的字數組的第6個字送到DX寄存器的指令為:

MOVBX,BLOCK

MOVSI,12

MOVDX,[BX+SI]

3.現有(DS)=2000H,(BX)=O1OOH,(SI)=0002H,(20220H)=12H,(20221H)=34H,(20222H)=56H,

(20223H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,試說明下列各條指令執

行完后AX寄存器的內容。

⑴MOVAX,1200H

⑵MOVAX,BX

⑶MOVAX,[1200H]

(4)MOVAX,[BX]

⑸MOVAX,[BX+11OO]

(6)MOVAX,[BX+SI]

(7)MOVAX,[BX+SI+11OO]

答:⑴指令MOVAX,1200H執行完后AX寄存器的內容為1200H;

⑵指令MOVAX,BX執行完后AX寄存器的內容為0100H;

(3)指令MOVAX,[1200H]是將從物理地址=(DS)*10H+1200H=21200H開始的兩個單元內容送AX,

執行完后AX寄存器的內容為4c2AH;

(4)指令MOVAX,[BX]是將從物理地址=(DS)*10H+(BX)=20220H開始的兩個單元內容送AX,故

執行完后AX寄存器的內容為3412H;

(5)指令MOVAX,[BX+11OO]是將從物理地址=(DS)*10H+(BX)+1100H=21200H開始的兩個單元

內容送AX,故執行完后AX寄存器的內容為4C2AH;

(6)指令MOVAX,[BX+SI]是將從物理地址=(DS)*10H+(BX)+(SI)=20222H開始的兩個單元內

容送AX,故執行完后AX寄存器的內容為7856H;

(7)指令MOVAX,[BX+SI+HOO]是將從物理地址=(DS)*10H+(BX)+(SI)+1100H=21202H開始

的兩個單元內容送AX,故執行完后AX寄存器的內容為65B7H;

4.假設已知(DS)=2900H,(ES)=2100H,(SS)=1500H,(SI)=OOAOH,(BX)=0100H,(BP)=OO1OH,數據段中變

量名VAL的偏移地址值為0050H,試指出下列源操作數字段的尋址方式是什么?其物理地址值是多少?

(1)MOVAX,OABH(2)MOVAX,BX

⑶MOVAX,[100H](4)MOVAX,VAL

⑸MOVAX,[BX](6)MOVAX,ES:[BX]

⑺MOVAX,EBP](8)MOVAX,[SI]

⑼MOVAX,[BX+10](10)MOVAX,VAL[BX]

(11)MOVAX,[BX][SI](12)MOVAX,[BP][SI]

答:(1)在指令MOVAX,OABH中,源操作數字段的尋址方式是即將數尋址,其物理地址值=(CS)*10H+

(IP);

(2)在指令MOVAX,BX中,源操作數字段的尋址方式是寄存器尋址,操作數在BX中,無物理地址;

⑶在指令MOVAX,[100H]中,源操作數字段的尋址方式是直接尋址,其物理地址值=(DS)*10H+100

=29000H+100H=29100;

(4)在指令MOVAX,VAL中,源操作數字段的尋址方式是直接尋址,其物理地址值=(DS)*10H+50H

=29000H+50H=29050H;

(5)在指令MOVAX,[BX]中,源操作數字段的尋址方式是寄存器間接尋址,其物理地址值=(DS)

*10H+(BX)=29000H+100H=29100H;

(6)在指令MOVAX,ES:[BX]中,源操作數字段的尋址方式是寄存器間接尋址,其物理地址值=(ES)

*10H+(BX)=21000H+100H=21100H;

(7)在指令MOVAX,[BP]中,源操作數字段的尋址方式是寄存器間接尋址,其物理地址值=(SS)

*10H+(BP)=15000H+10H=15010H;

(8)在指令MOVAX,[SI]中,源操作數字段的尋址方式是寄存器間接尋址,其物理地址值=(DS)

*10H+(SI)=29000H+0A0H=290A0H;

(9)在指令MOVAX,[BX+10]中,源操作數字段的尋址方式是寄存器相對尋址,其物理地址值=(DS)

*10H+(BX)+0AH=29000H+100H+0AH=2910AH;

(10)在指令MOVAX,VAL[BX]中,源操作數字段的尋址方式是寄存器相對尋址,其物理地址值=(DS)

*10H+(BX)+50H=29000H+100H+50H=29150H;

(11)在指令MOVAX,[BX][SI]中,源操作數字段的尋址方式是基址變址尋址,其物理地址值=(DS)

*10H+(BX)+(SI)=29000H+100H+0A0H=291A0H;

(12)在指令MOVAX,[BP][SI]中,源操作數字段的尋址方式是基址變址尋址,其物理地址值=(SS)

*10H+(BP)+(SI)=15000H+10H+0A0H=150B0H

5.分別指出下列指令中的源操作數和目的操作數的尋址方式。

(1)MOVSI,200

⑵MOVCX,DATA[SI]

⑶ADDAX,[BX+DI]

(4)ANDAX,BX

⑸MOV[SI],AX

(6)PUSHF

答:(1)目的操作數字段的尋址方式是寄存器尋址,源操作數字段的尋址方式是即將數尋址;

(2)目的操作數的尋址方式是寄存器尋址,源操作數的尋址方式是寄存器相對尋址;

(3)目的操作數的尋址方式是寄存器尋址,源操作數的尋址方式是基址變址尋址;

(4)目的操作數的尋址方式是寄存器尋址,源操作數的尋址方式也是寄存器尋址;

(5)目的操作數的尋址方式是寄存器間接尋址,源操作數的尋址方式是寄存器尋址;

(6)目的操作數的尋址方式是寄存器間接尋址,源操作數的尋址方式是寄存器尋址;

6.試述指令MOVAX,2022H和MOVAX,DS:[2022H]的區別。

答:指令MOVAX,2022H是將即將數2022H送AX寄存器,而指令MOVAX,DS:[2022用是將DS段有效地

址為2022H的兩個單元的內容送AXo

7.寫出以下指令中內存操作數的所在地址。

(1)MOVAL,[BX+5]

(2)MOV[BP+5],AX

(3)INCBYTEPTR[SI+3]

(4)MOVDL,ES:[BX+DI]

(5)MOVBX,[BX+SI+2]

答:⑴指令MOVAL,[BX+5]中內存操作數的所在地址=(DS)*10H+(BX)+5;

(2)指令MOV[BP+5],AX中內存操作數的所在地址=(SS)*10H+(BP)+5和(SS)*10H+(BP)+6;

(3)指令INCBYTEPTR[SI+3]中內存操作數的所在地址=(DS)+(SI)+3;

(4)指令MOVDL,ES:[BX+DI]中內存操作數的所在地址=(ES)*10H+(BX)+(DI);

(5)指令MOVBX,[BX+SI+2]中內存操作數的所在地址=(DS)*10H+(BX)+(SI)+2和(DS)*10H+

(BX)+(SI)+3;

8.判斷下列指令書寫是否正確,如有錯誤,指出錯在何處并用正確的程序段(一條或者多條指令)實

現原錯誤指令((8)、(13)除外)期望實現的操作。

(1)MOVAL,BX(9)MOVES,3278H

(2)MOVAL,SL(10)PUSHAL

(3)INC[BX](IDPOP[BX]

(4)MOV5,AL(12)MOV[1A8H],23DH

(5)MOV[BX],[SI](13)PUSHIP

(6)MOVBL,F5H(14)MOV[AX],23DH

(7)MOVDX,2000H(15)SHLAX,5

(8)POPCS(16)MULAX,BX

答:(1)MOVAL,BX錯,源操作數為字類型,目的操作數為字節類型,二者不一致。應改為:MOVAX.BX

或者MOVAL,BL;

⑵MOVAL,SL錯,SI寄存器不能分為高8位和低8位使用,即沒有SL寄存器。應改為:MOVAX,SI

(3)INC[BX]錯,未指定操作數的類型。應改為:INCBYTEPTR[BX]

(4)MOV5,AL錯,目的操作數使用了即將數,在指令中普通不允許。應改為:MOVDS:[5],AL

(5)MOV[BX],[SI]錯,源操作數和目的操作數均為內存單元,不允許。

應改為:MOVAX,[SI]

MOV[BX],AX

(6)MOVBL,F5H錯,源操作數錯,以A~F開頭的數字前應加0。應改為:MOVBL,0F5H

(7)MOVDX,2000H正確。

(8)POPCS錯,不能將棧頂數據彈至CS中。

(9)MOVES,3278H錯,即將數不能直接送ES寄存器。

應改為:MOVAX,3278H

MOVES,AX

(10)PUSHAL錯,棧操作不能按字節進行。應改為:PUSHAX

(11)POP[BX]正確。

(12)MOV[1A8H],23DH錯,源操作數是即將數,目的操作數必須使用寄存器指出。應改為:

MOVBX,1A8H

MOV[BX],23DH

(13)PUSHIP錯,不能用IP寄存器做源操作數。

(14)MOV[AX],23DH錯,不能用AX寄存器間接尋址。應改為:MOVBX,AX

MOV[BX],23DH

(15)SHLAX,5錯,不能用大于己于1的即將數指出移位位數。應改為:

MOVCL,5

SHLAX,CL

(16)MULAX,BX錯,目的操作數AX是隱含的,不能在指令中寫出。應改為:MULBX

9.設堆棧指針SP的初值為2000H,AX=3000H,BX=5000H,試問:

(1)執行指令PUSHAX后(SP)=?

⑵再執行PUSHBX及POPAX后(SP)=?(AX)=?(BX)=?

答:(1)執行指令PUSHAX后(SP)=2000H-2=lFFEH;

(2)再執行PUSHBX及POPAX后(SP)=1FFEH,(AX)=5000H,(BX)=5000H

10.要想完成把[2000H]送[1000H]中,用指令:MOV[1000H],[2000H]是否正確?如果不正確,應用什么

雌?

答:把[2000H]送[1000H]中,用指令MOV[1000H],[2000H]不正確,應改為:MOVAX,[2000H]MOV

[1000H],AX

n.假如想從200中減去AL中的內容,用SUB200,AL是否正確?如果不正確,應用什么方法?

答:想從200中減去AL中的內容,用SUB200,AL不正確,應改為:MOVBL,200SUBBL,AL

12分別寫出實現如下功能的程序段

⑸將數據段中以BX為偏移地址的連續四個單元的內容顛倒過來

答:

⑸將數據段中以BX為偏移地址的連續四個單元的內容顛倒過來的程序段是:

MOVAL,[BX];數據段中BX為偏移地址的字單元內容送AX

XCHGAL,[BX+3];數據段中BX+3為偏移地址的字單元內容與AX的內容交換

MOV[BX],AL;數據段中BX+3為偏移地址的字單元內容送BX為偏移地址的字單元

MOVAL,[BX+1];數據段中BX+1為偏移地址的字單元內容送AX

XCHGAL,[BX+2];數據段中BX+2為偏移地址的字單元內容與AX的內容交換

MOV[BX+1],AL;數據段中BX+2為偏移地址的字單元內容送BX+1為偏移地址的字單元

1.假設OPL0P2是已經用DB定義的變量,W_OP3和W_0P4是已經用DW定義的變量,判斷下列指令

書寫是否正確?如有錯誤,指出錯在何處?并寫出正確的指令(或者程序段)實現原錯誤指令期望

實現的操作((19)、(20)不改)。

⑴PUSH0P1

(2)POP[W_0P4]

(3)MOVAX,WORDPTR[SI][DI]

(4)MOVAX,WORDPTRES:BX

(5)MOVBYTEPTR[BX],1000

(6)MOVBX,OFFSET[SI+200H]

(7)MOV0P2,[BX]

(8)CMPHIGHW_0P3,25

(9)CMP0P1,0P2

(10)CMPAX,0P2

(11)MOVW_0P3[BX+4*3][DI],SP

(12)ADDW_0P3,W_0P4

(13)MOVAX,W_0P3[DX]

(14)MOV0P1,LOWDS

(15)MOVSP,0P2[BX][SI]

(16)MOVAX,W_0P3+W_0P4

(17)MOVAX,W_0P3-W_0P4+100

(18)SUBAL,W_OP3+7

(19)MOVAX,BXSHL2

(20)MOVBX,W_0P3AND8FD7H

答:1.(l)PUSH0P1錯,0P1為字節類型,棧操作不能按字節進行,應改為:PUSHWORDPTR0P1

(2)POP[W_OP4]正確。

(3)MOVAX,WORDPTR[SI][DI]錯,源操作數尋址方式有問題。

應改為:MOVBX,SI

MOVAX,WORDPTR[BX][DI]

(4)MOVAX,WORDPTRES:BX錯,若源操作數為寄存器尋址是不能加段說明及屬性修改的。顯然,原意應為寄存器間

接尋址,故應改為:MOVAX,WORDPTRES:[BX]

(5)MOVBYTEPTR[BX],1000錯,源操作數為字類型,目的操作數為字節類型,二者不一致。應改為:MOVWORD

PTR[BX],1000

(6)MOVBX,OFFSET[SI+200H]錯,OFFSET運算應在匯編時完成,但[SI+200H]在執行指令時才可獲得。應改為:LEA

BXJSI+200H]

(7)MOVOP2,[BX]錯,源操作數和目的操作數均為內存單元,不允許。

應改為:MOVAL,[BX]

MOVOP2,AL

(8)CMPHIGHWJDP3,25錯,目的操作數中使用HIGH來分離存儲器操作數,這是不允許的。應改為:CMPBYTEPTR

W_OP3+1,25

(9)CMPOP1,OP2錯,源操作數和目的操作數均為內存單元,不允許。

應改為:MOVAL,OP2

CMPAL,OP1

(10)CMPAX,OP2錯,源操作數為字節類型,目的操作數為字類型,二者不一致。

應改為:CMPAX,WORDPTR0P2

(11)MOVW_OP3[BX+4*3][DI],SP正確。

(12)ADDWJ3P3,WJ3P4錯,源操作數和目的操作數均為內存單元,不允許。

應改為:MOVAX,W_OP4

ADDW_OP3,AX

(13)MOVAX,W_OP3[DX]錯,不能用DX寄存器間接尋址。

應改為:MOVBX,DXMOVAX,

W_OP3[BX]

(14)1\/1。丫0「1,1_0亞口$錯,源操作數中使用LOW來分離寄存器操作數,這是不允許的。

應改為:MOVWORDPTROP1,DS

(15)MOVSP,OP2[BX][SI]錯,源操作數為字節類型,目的操作數為字類型,二者不一致。應改為:MOVSP,WORDPTR

OP2[BX][SI]

(16)MOVAX,W_OP3+W_OP4錯,兩個標識符相加無意義。應改為:MOVAX,W_OP1

ADDAX,W_0P2

(17)MOVAX,W_OP3-W_OP4+100正確,源操作數為兩個標識符(地址)相減再加一數,匯編時得到一個數。

(18)SUBAL,W_OP3+7錯,兩個操作數類型不一致。應改為:SUBAL,BYTEPTRW_OP3+7

(19)MOVAX,BXSHL2錯,SHL只能對常量進行運算,左邊不能使用寄存器

(20)MOVBX,W_OP3AND8FD7H錯,AND只能對常量進行運算,左邊不能使用變量

4.設已定義數據段

DATASEGMENT

VAR2DW10H,7889H

VAR5DB20H,0

ADRRDWVAR2,VAR5

DATAENDS

為使ADRR字存儲單元中存放內容為“0010H",ADRR+2字存儲單元中存放內容為“0020H”,

上述省略號位置應分別填寫一條什么語句?說明理由。

答:為使ADRR字存儲單元中存放內容為“0010H",ADRR+2字存儲單元中存放內容為“0020H”,

上述省略號位置應分別填寫ORG10H和ORG20H,或者分別填寫語句

VARIDB10HDUP(?)和VAR36DUP(?)

5.下面的數據段中,有數據為'4100T的字存儲單元有幾個?它們的偏移量分別是多少?

DATASEGMENT

DAIDB0

ORG41H

DA2DB0,'A',41H,0,41H

ADRDWDAI,DA2

DATAENDS

答:給出的數據段中,有數據'4100H,的字存儲單元有3個,它們的偏移量分別是41H、44H、

47Ho

7.試用數據定義語句DB或者DW改寫下述兩語句中的某一個,使它們在存儲器中有徹底相同的存

儲情況。

VARIDB'abcdefghij'

VAR2DW6162H,6364H,6566H,6768H,696AH

答:將第一個偽指令語句改寫為VARIDW匕i,,,ef','gh,,<ij,,第二個偽指

令語句不變。或者第一個偽指令語句不變,而將第二個偽指令語句改寫為:

VAR2DB61H,62H,63H,64H,65H,66H,67H,68H,69H,6AH

9.按下面的要求寫出程序的框架

(D數據段的位置從OEOOOH開始,數據段中定義一個100字節的數組,其類型屬性既是字又是字

節;

(2)堆棧段從小段開始,段組名(類別名)為STACK;

⑶代碼段中指定段寄存器,指定主程序從1000H開始,給有關段寄存器賦值;

(4)程序結束。

答:所求程序框架為:

DataSEGMENTATOEOOOH

Arr_wLABELWORD

Arr_bDB100DUP(?)

DataENDS

Sta_segSEGMENTPARA'STACK'

DB80DUP(?)

TopLABELWORD

Sta_segENDS

CodeSEGMENT

ASSUMECS:Code,DS:data,SS:sta_seg

ORG1000H

Start:MOVAX,data

MOVDS,AX

MOVAX,Sta_seg

MOVSS,AX

MOVSP,OFFSETTop

MOVAH,4CH

INT21H

CodeENDS

ENDStart

10.編寫一個程序,要求運行時屏幕顯示‘BELL',同時響鈴一次(響鈴的ASCH碼為07)。

答:所求程序為:

CodeSEGMENT

ASSUMECS:code

Start:MOVDL,42H

MOVAH,2

INT21H

MOVDL,45H

MOVAH,2

INT21H

MOVDL,4CH

MOVAH,2

INT21H

MOVDL,4CH

MOVAH,2

INT21H

MOVDL,7

MOVAH,2

INT21H

MOVAH,4CH

INT21H

CodeENDS

ENDStart

n.假設在數據段X_SEG、附加段Y_SEG和堆棧段Z_SEG中分別定義了字變量X、Y和Z,試編制

一完整的程序計算X+Y+Z,并將結果送Xo

答:所求程序為:

X_SEGSEGMENT

XDW12eH

X_SEGENDS

Y_SEGSEGMENT

YDW4d2H

Y_SEGENDS

ZSEGSEGMENTSTACK'STACK'

ZDW2CAH

Z_SEGENDS

CodeSEGMENT

ASSUMECS:Code,DS:X_SEG,ES:Y_SEG,SS:Z_SEG

Start:MOVAX,X_SEG

MOVDS,AX

MOVAX,Y_SEG

MOVES,AX

MOVAX,ES:Y

ADDX,AX

MOVBP,0

MOVAX,[BP+Z]

ADDX,AX

MOVAH,4CH

INT21H

CodeENDS

ENDStart

12.寫一個完整的程序放在代碼段C_SEG中,要求把數據段D_SEG中的DADD1和附加段E_SEG中

的DADD2相加,并把結果存放在D_SBG段中的SUM中。其中DADD1、DADD2和SUM均為雙字類型,

DADD1賦值為98765,DADD2賦值為-15893。

答:所求程序為:

DSEGSEGMENT

DADD1DD98765

SUMDD?

DSEGENDS

ESEGSEGMENT

DADD2DD-15893

ESEGENDS

CSEGSEGMENT

ASSUMECS:C_SEG,DS:D_SEG,ES:E_SEG

Start:MOVAX,DSEG

MOVDS,AX

MOVAX,ESEG

MOVES,AX

MOVAX,WORDPTRDADD1

MOVBX,WORDPTRDADD1+2

ADDAX,WORDPTRES:DADD2

ADCBX,WORDPTRES:DADD2+2

MOVWORDPTRSUM,AX

MOVWORDPTRSUM+2,BX

MOVAH,4CH

INT21H

C_SEGENDS

ENDStart

一、填空題

1、執行部件EU的組織有:4—個通用寄存器,4個專用寄存器和_1個標志寄存器和算術

邏輯部件=

2、8086CPU從偶地址訪問內存1個字時需占用—1個總線一周期,而從奇地址訪問內存1個字操作需占用2

個總線周期。

3、IBM-PC機中的內存是按段存放信息的,一個段最大存貯空間為_64K字節。

4、8086微處理機在最小模式下,用M/io_來控制輸出地址是訪問內存還是訪問1/0?

5、一臺計算機能執行多少種指令,是在一設計時確定的。

二、單項選擇題

1、微型計算機的性能主要由B來決定。

A、價錢B、CPUC、控制器D、其它

2、對微處理器而言,它的每條指令都有一定的時序,其時序關系是C

A、一個時鐘周期包括幾個機器周期,一個機器周期包括幾個指令周期。

B、一個機器周期包括幾個指令周期,一個指令周期包括幾個時鐘周期。

C、一個指令周期包括幾個機器周期,一個機器周期包括幾個時鐘周期。

D、一個指令周期包括幾個時鐘周期,一個時鐘周期包括幾個機器周期。

3、屬于數據寄存器組的寄存器是C

A、AX,BX,CX,DSB、SP,DX,BP,IPC、AX,BX,CX,DXD、AL,DLSI,AH

4、微型計算機的ALU部件是包含在D之中。

A、存貯器B、I/O接口C、I/O設備D、CPU

5、在8086和8088匯編語言中,一個字能表示的有符號數的范圍是B

A、-32768WnW32768B、-32768WnW32767C、-65535WnW65535D、-65536WNW65535

6、80386微型計算機是32位機,根據是它的D。

A、地址線是32位B、數據線為32位C、寄存器是32位的D、地址線和數據線都是32位

7、某數存于內存數據段中,已知該數據段的段地址為2000H,而數據所在單元的偏移地址為0120H,該數的在內

存的物理地址為(B)

A.02120HB.20220HC.21200HD.03200H

8、在存貯器讀周期時,根據程序計數器PC提供的有效地址,使用從內存中取出(D)

A.操作數B.操作數地址C.轉移地址D.操作碼

9、8086/8088系統中,對存貯器進行寫操作時,CPU輸出控制信號有效的是(A)

A.W/IO=1,WR=0B.WR=1C.M/IO=0,RD=0D.RD=0

10、在8086/8088微機系統中,將AL內容送到I/O接口中,使用的指令是(D)

A.INAL,端口地址B.MOVAL,端口地址C.OUTAL,端口地址D.OUT端口地址,AL

三、簡答題

1.微處理器內部結構由哪些部件組成?

2.論述8086CPU的最小方式和最慷慨式的區別。

3.論述指令周期、機器周期和時鐘周期間的關系。

4.8086CPU從功能上分為幾部份?各部份由什么組成?各部份的功能是什么?

5.8086系統中的物理地址是如何得到的?假如CS=2500H,IP=2100H,其物理地址是多少?

6.什么是最大模式?什么是最小模式?用什么方法將8086/8088置為最大模式和最小模式?

7.存儲器分段組織有何優越性?

8.試述BHE與A0組合如何選擇數據字?

9.CPU響應中斷時,為什么要執行兩個連續的中斷響應周期?

答案:

一、填空題

1、4個通用寄存器、4個專用寄存器、1個標志寄存器和算術邏輯部件

2、1個總線、2個總線

3、64K

4、M/IO

5、十

二、單項選擇題

1>B2、C3、C4、D5、B6、D7、B8、D9、A10、D

三、簡答題

1、答案:微處理器由兩部份組成,總線接口單元和執行單元

2、8086CPU的最小方式和最慷慨式的區別是:最小方式,MN/MX接+5V(MX為低電平),用于構成小型單處理機系統,

支持系統工作的器件:⑴時鐘發生器,8284A,(2)總線鎖存器,74LS373,(3)總線收發器,74LS245,控制信號由CPU

提供。最慷慨式,MN/MX接地(MX為低電平),用于構成多處理機和協處理機系統,支持系統工作的器件:(1)時鐘發生

器,8284A,(2)總線鎖存器,74LS373,(3)總線收發器,74LS245,(4)總線控制芯片,8288,控制信號由8288提供。

3、答:(1).執行一條指令所需要的時間稱為指令周期;(2).一個CPU同外部設備和內存儲器之間進行信息交換過

程所需要的時間稱為總線周期;(3).時鐘脈沖的重復周期稱為時鐘周期;(4).一個指令周期由若干個總線周期組成,

一個總線周期又由若干個時鐘周期組成;(5).8086CPU的總線周期至少由4個時鐘周期組成;(6).總線周期完成

一次數據傳輸包括:傳送地址,傳送數據;(7)等待周期--在等待周期期間,總線上的狀態向來保持不變;(8)

空暇周期-一總線上無數據傳輸操作

4、8086從功能上可分為執行單元和總線接口單元。執行單元的功能是負責指令的執行,將指令譯碼并利用內部寄存

器和ALU對數據進行處理。它由4個通用寄存器(AX、BX、CX、DX),4個專用寄存器(BP、SP、SI和DI),標

志寄存器和算術邏輯部件組成。總線接口單元的功能是存儲器、I/O端口傳送數據。它由4個段寄存器(CS、DS、

ES、SS),指令指針寄存器IP,20位地址加法器和6個字節的指令隊列組成。

5、在8086系統中,用16位的段地址和16位的偏移地址來表示20位的物理地址,物理地址=段地址*16+偏移址得到

物理地址。

該題CS=2500H,IP=2100H,則物理地址=CS*16+IP=2500H*16+2100H=27100H

6、最大模式是相對最小模式而言,系統中包含兩個或者多個處理品,其中一個主處理器就是8088/8086,其它處

理器是協處理器,它是協助主處理器工作的。將MN/MX*置0即為最大模式。

最小模式又是相對于最大模式,就是在系統中惟獨一個處理器,所有的總線控制信號都有由8088/8086產生,系

統中總線控制邏輯電路少,將MN/MX*置1即為最大模式。

7、減少了指令的長度,提高了執行速度。內存分段為程序浮動加載創造了條件。使程序保持完整的相對性,具備

了浮動性。

8、石HE的作用是高8位數據允許,Ao=O是低8位數據允許,在T1狀態時,BHE和A0組合起來表示連接在數

據總線上的存儲器和I/O端口當前的數據在總線上浮現有格式。

9、CPU響應中斷時,執行兩個連續的中斷響應周期,每一個響應周期都給出中斷響應信號NTA?這是因為第

一個總線周期通知中斷請示設備,微處理器準備響應中斷,應該準備好中斷類型碼,第二個總線周期中,微處理器

接收中斷類型碼,以便得到中斷向量,即中斷服務程序的入口地址。

2.根據下列要求編寫一個匯編語言程序::

(1)代碼段的段名為COD_SG

(2)數據段的段名為DAT_SG

(3)堆棧段的段名為STK_SG

(4)變量HIGH_DAT所包含的數據為95

(5)將變量HIGH_DAT裝入寄存器AH,BH和DL

(6)程序運行的入口地址為START

2、答案:

DAT_SGSEGEMNT

HIGH_DATDB95

DAT_SGENDS

STK_SGSEGMENT

DW64DUP(?)

STK_SGENDS

5

COD_SG

溫馨提示

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

評論

0/150

提交評論