計(jì)算機(jī)原理答案_第1頁(yè)
計(jì)算機(jī)原理答案_第2頁(yè)
計(jì)算機(jī)原理答案_第3頁(yè)
計(jì)算機(jī)原理答案_第4頁(yè)
計(jì)算機(jī)原理答案_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1.8086CPU由哪幾個(gè)部件構(gòu)成?它們的主要功能各是什么?

8086CPU由指令執(zhí)行部件EU和總線接口部件BIU兩個(gè)部份組成。指令執(zhí)行部件主要

功能是執(zhí)行指令??偩€接口部件的主要功能是完成訪問(wèn)存儲(chǔ)器或I/O端口的操作:

形成訪問(wèn)存儲(chǔ)器的物理地址;

訪問(wèn)存儲(chǔ)器取得指令并暫存到指令隊(duì)列中等待執(zhí)行;

訪問(wèn)存儲(chǔ)器或I/O端口以讀取操作數(shù)參與EU運(yùn)算,或存放運(yùn)算結(jié)果。

2.什么是邏輯地址?什么是物理地址?它們各自如何表示?如何轉(zhuǎn)換?

程序中使用的存儲(chǔ)器地址稱為邏輯地址,由16位"段基址"和16位"偏移地址"(段

內(nèi)地址)組成。段基址表示一個(gè)段的起始地址的高16位。偏移地址表示段內(nèi)的一個(gè)單元距

離段開(kāi)始位置的距離。訪問(wèn)存儲(chǔ)器的實(shí)際地址稱為物理地址,用20位二進(jìn)制表示。將兩個(gè)

16位二進(jìn)制表示的邏輯地址錯(cuò)位相加,可以得到20位的物理地址:

物理地址=段基址X16+偏移地址

在32位CPU的保護(hù)模式下,"邏輯地址”的表示產(chǎn)生了一些變化,請(qǐng)參考第8章的相關(guān)

內(nèi)容。

3.什么是"堆棧"?它有什么用處?在使用上有什么特點(diǎn)?

堆棧是內(nèi)存中的一塊存儲(chǔ)區(qū),用來(lái)存放專用數(shù)據(jù)。例如,調(diào)用子程序時(shí)的入口參數(shù)、返

回地址等,這些數(shù)據(jù)都技照“先進(jìn)后出”的規(guī)則進(jìn)行存取。SS存放堆棧段的段基址,SP存

放當(dāng)前堆棧棧頂?shù)钠频刂?。?shù)據(jù)進(jìn)出堆棧要使用專門的堆棧操作指令,SP的值在執(zhí)行堆

棧操作指令時(shí)根據(jù)規(guī)則自動(dòng)地進(jìn)行修改。

4.設(shè)X=36H,Y=78H,進(jìn)行X+Y和X-丫運(yùn)算后FLAGS寄存器各狀態(tài)標(biāo)志位各是

什么?

X=36H=00110110B

X=36H=00110110B

Y=78H=01111000B(-

Y=78H=01111000B(+

仁10111110B

~1010111OB

CF=1,SF=1,OF=0,PF=1,ZF=0,

CF=O,SF=1,OF=1,PF=O,ZF=O,

5.按照傳輸方向和電氣特性劃分,CPU引腳信號(hào)有幾種類型?各適用于什么場(chǎng)合?

CPU引腳傳輸?shù)男盘?hào)按照傳輸方向劃分,有以下幾種類型:

輸出:信號(hào)從CPU向外部傳送;

輸入:信號(hào)從外部送入CPU;

雙向:信號(hào)有時(shí)從外部送入CPU,有時(shí)從CPU向外部傳送。

雙向信號(hào)主要用于數(shù)據(jù)信號(hào)的傳輸;輸出信號(hào)用于傳輸?shù)刂沸盘?hào)和一些控

制信號(hào);輸入信號(hào)主要用于傳輸外部的狀態(tài)信號(hào)(例如READY)和請(qǐng)求(中斷、

DMA)信號(hào)。

按照信號(hào)的電器特性劃分,有以下幾種類型:

一般信號(hào):用來(lái)傳輸數(shù)據(jù)/地址信號(hào)時(shí),高電平表示"1”,低電平表示"0";用來(lái)

表示正邏輯的控制/狀態(tài)信號(hào)時(shí),"1"表示有效,"0"表示信號(hào)無(wú)效;

用來(lái)表示負(fù)邏輯的控制/狀態(tài)信號(hào)時(shí),"0"表示有效,"1"表示信號(hào)

無(wú)效。

三態(tài)信號(hào):除了高電平、低電平兩種狀態(tài)之外,CPU內(nèi)部還可以通過(guò)一個(gè)大的電

阻阻斷內(nèi)外信號(hào)的傳送,CPU內(nèi)部的狀態(tài)與外部相互隔離,也稱為‘懸

浮態(tài)“。CPU放棄總線控制權(quán),允許其他設(shè)備使用總線時(shí),將相關(guān)信

號(hào)置為"懸浮態(tài)"。

8.分析8086CPU兩個(gè)中斷輸入引腳的區(qū)別,以及各自的使用場(chǎng)合。

INTR用于輸入可屏蔽中斷請(qǐng)求信號(hào),電平觸發(fā),高電平有效。中斷允許標(biāo)志IF=1時(shí)

才能響應(yīng)INTR上的中斷請(qǐng)求。

NMI用于輸入不可屏蔽中斷請(qǐng)求信號(hào),上升沿觸發(fā),不受中斷允許標(biāo)志的限制。CPU

一旦測(cè)試到NMI請(qǐng)求有效,當(dāng)前指令執(zhí)行完后自動(dòng)轉(zhuǎn)去執(zhí)行類型2的中斷服務(wù)程序。

NMI引腳用于連接CPU外部的緊急中斷請(qǐng)求,例如內(nèi)存校驗(yàn)錯(cuò),電源掉電報(bào)警等。INTR

引腳用于連接一般外部設(shè)備的中斷請(qǐng)求。

9.什么是時(shí)鐘周期、總線周期、指令周期?它們的時(shí)間長(zhǎng)短取決于哪些因素?

時(shí)鐘周期:CPU連接的系統(tǒng)主時(shí)鐘CLK一個(gè)周期的時(shí)間。CLK信號(hào)頻率越高,時(shí)鐘

周期越短。

總線周期:CPU通過(guò)外部總線對(duì)存儲(chǔ)器或I/O端口進(jìn)行一次讀/寫(xiě)操作的過(guò)程稱為總線

周期。8086CPU總線周期一般由四個(gè)時(shí)鐘周期組成,存儲(chǔ)器/I0設(shè)備(接口)速度不能滿足

CPU要求時(shí),可以增加一個(gè)或多個(gè)時(shí)鐘周期。

指令周期:CPU執(zhí)行一條指令的時(shí)間(包括取指令和執(zhí)行該指令所需的全部時(shí)間)稱

為指令周期。指令周期的時(shí)間主要取決于主時(shí)鐘的頻率和指令的復(fù)雜程度,它也受到存儲(chǔ)器

或I0設(shè)備接口工作速度的影響。

習(xí)題二

1.內(nèi)存儲(chǔ)器主要分為哪兩類?它們的主要區(qū)別是什么?

內(nèi)存儲(chǔ)器分為隨機(jī)存取存儲(chǔ)器RAM(RadomAccessMemory)和只讀存儲(chǔ)器ROM(Read

OnlyMemory)兩類。

RAM中信息可以按地址讀出,也可以按地址寫(xiě)入。RAM具有易失性,掉電后原來(lái)存儲(chǔ)

的信息全部丟失,不能恢復(fù)。

ROM中的信息可以按地址讀出,但是在普通狀態(tài)下不能寫(xiě)入,它的內(nèi)容一般不能被改

變。ROM具有“非易失性",電源關(guān)閉后,其中的信息仍然保持。

2.說(shuō)明SRAM、DRAM、MROM、PROM和EPROM的特點(diǎn)和用途。

SRAM:靜態(tài)RAM,讀寫(xiě)速度快,但是集成度低,容量小,主要用作Cache或小系統(tǒng)

的內(nèi)存儲(chǔ)器。

DRAM:動(dòng)態(tài)RAM,讀寫(xiě)速度慢于靜態(tài)RAM,但是它的集成度高,單片容量大,現(xiàn)代

微型計(jì)算機(jī)的"主存"均由DRAM構(gòu)成。

MROM:掩膜ROM,由芯片制作商在生產(chǎn)、制作時(shí)寫(xiě)入其中數(shù)據(jù),成本低,適合于批

量較大、程序和數(shù)據(jù)已經(jīng)成熟、不需要修改的場(chǎng)合。

PROM:可編程ROM,允許用戶自行寫(xiě)入芯片內(nèi)容。芯片出廠時(shí),所有位均處于全"0"

或全"1"狀態(tài),數(shù)據(jù)寫(xiě)入后不能恢復(fù)。因此,PROM只能寫(xiě)入一次。

EPROM:可擦除可編程只讀存儲(chǔ)器,可根據(jù)用戶的需求,多次寫(xiě)入和擦除,重復(fù)使用。

用于系統(tǒng)開(kāi)發(fā),需要反復(fù)修改的場(chǎng)合。

3.已知一個(gè)SRAM芯片的容量為8Kx8b,該芯片有一個(gè)片選信號(hào)引腳和一個(gè)讀/寫(xiě)控

制引腳,問(wèn)該芯片至少有多少個(gè)引腳?地址線多少條?數(shù)據(jù)線多少條?

根據(jù)存儲(chǔ)芯片地址線數(shù)量計(jì)算公式,k=Iog2(1024*8)=Iog2(213)=13,即總計(jì)有13

根地址線。另有8根數(shù)據(jù)線、2根電源線。所以該芯片至少有25(=13+8+1+1+2)根引腳。

4.巳知一個(gè)DRAM芯片外部引腳信號(hào)中有4根數(shù)據(jù)線,7根地址線,計(jì)算它的容量。

根據(jù)存儲(chǔ)容量計(jì)算公式S=2kxI,可得該芯片的存儲(chǔ)容量為:2'4*4=16Kx4bit(位),

也可表示為64Kb=8KB(字節(jié))。

5.32Mx8b的DRAM芯片,其外部數(shù)據(jù)線和地址線為多少條?

根據(jù)存儲(chǔ)芯片地址線數(shù)量計(jì)算公式,k=Iog2(1024*1024*32)=Iog2(225)=25,即需

要25根地址線。但是,由于DRAM芯片的地址采用分時(shí)輸入的方法,所以實(shí)際需要的地址

線只有理論值的一半,此處為13根。數(shù)據(jù)線8根。

6.DRAM為什么需要定時(shí)刷新?

DRAM靠MOS管極間電容存儲(chǔ)電荷的有無(wú)決定所存信息是。還是1,由于漏電流的存

在,它存儲(chǔ)的信息不能長(zhǎng)時(shí)間保存,需要定時(shí)重新寫(xiě)入,稱為“刷新"。

7.74LS138譯碼器的接線如圖2.28所示,寫(xiě)出丫°、而、匯、安所決定的內(nèi)存地址范

圍。

從圖看出,該存儲(chǔ)系統(tǒng)的片內(nèi)地址線有13根(A12-A0),是一個(gè)由8KB存儲(chǔ)芯片組成

的存儲(chǔ)系統(tǒng),A17地址線不確定。它的地址分布為:

74SI38

00?0,CBA?,????,????,????

其中,CBA作為譯碼輸入,與輸出選擇有關(guān);

"?"表示可以為"0",也可以為"1"。

于是:

%對(duì)應(yīng)的內(nèi)存地址范圍是:

00000H—01FFFH;或20000H—21FFFHO圖2-28譯碼

%對(duì)應(yīng)的內(nèi)存地址范圍是:

04000H—05FFFH;或24000H—25FFFHO

%對(duì)應(yīng)的內(nèi)存地址范圍是:

08000H—09FFFH;或28000H—29FFFHO

%對(duì)應(yīng)的內(nèi)存地址范圍是:

0C000H—0DFFFH;或2C000H—2DFFFHo

8.

9.下列容量的ROM芯片除電源和地線,還有多少個(gè)輸入引腳和輸出引腳?寫(xiě)出信號(hào)名

稱。

(1)64x4(2)512x8(3)128Kx8(4)16Kx8(5)1Mx16

根據(jù)存儲(chǔ)容量計(jì)算公式可得以上各芯片的地址、數(shù)據(jù)引腳分別為:

64x4:地址線k=Iog2(64)=Iog2()=6根,數(shù)據(jù)線=4根;

512X8:地址線k=Iog2(512)=Iog2(2。)=9根,數(shù)據(jù)線=8根;

128kx8:地址線k=Iog2(128*1024)=Iog2(2”)=17根,數(shù)據(jù)線=8根;

16kx8:地址線k=Iog2(16*1024)=Iog2(2“)=14根,數(shù)據(jù)線=8根;

1Mx16:地址線k=Iog2(1024*1024)=Iog2(220)=20根,數(shù)據(jù)線=16根。

此外,所有ROM芯片都需要一根片選信號(hào)引腳;

對(duì)于PROM,EPROM通常還需要"輸出允許"和"編程脈沖”輸入引腳。

EEPROM芯片除了有"片選"、"輸出允許"和"寫(xiě)允許”外,通常還有表示“寫(xiě)入完

成"的狀態(tài)信號(hào)引腳。

10.已知RAM芯片的容量為

(1)16Kx8(2)32Kx8(3)64Kx8(4)2K、8

如果RAM的起始地址為3400H、則各RAM對(duì)應(yīng)的末地址為多少?

存儲(chǔ)器的末地址=首地址+芯片內(nèi)字節(jié)數(shù)(容量)-1

上述各芯片對(duì)應(yīng)RAM的末地址為:

16Kx8:末地址是3400H+4000H-1=73FFH

32Kx8:末地址是3400H+8000H-1=B3FFH

64Kx8:末地址是3400H+10000H-1=133FFH

2Kx8:末地址是3400H+800H-1=3BFFH

11.如果存儲(chǔ)器起始地址為1800H,末地址為1FFFH,求該存儲(chǔ)器的容量。

該存儲(chǔ)器的容量為:

(1FFFH-1800H+1)x8=800Hx8,該存儲(chǔ)器有2048、8個(gè)位,也可以寫(xiě)作2KB。

12.有一個(gè)存儲(chǔ)體,其地址線15條,數(shù)據(jù)線8條,則

1)該存儲(chǔ)體能夠存儲(chǔ)多少個(gè)漢字?

2)如果該存儲(chǔ)體由2Kx4位的芯片組成,需要多少片?

3)采用什么方法擴(kuò)展?分析各位地址線的使用。

該存儲(chǔ)體容量為215X8=32KB,存儲(chǔ)一個(gè)漢字需要二個(gè)字節(jié),因此,它能夠存儲(chǔ)16384

(16K)個(gè)漢字。

需要2K*4位的芯片32片,[(32Kx8)/(2Kx4)=32]。

可采用字位全擴(kuò)展方法,由2片4位的芯片組成1組8位的存儲(chǔ)單元,16組擴(kuò)展成32K

的8位存儲(chǔ)體。芯片直接使用的地址線(片內(nèi)地址)11根(A0-A10),另外需要4根高位地

址,連接到4-16譯碼器輸入端,產(chǎn)生16個(gè)譯碼信號(hào)用作16個(gè)芯片組的片選信號(hào)。剩余的

地址線用來(lái)確定該存儲(chǔ)體的首地址。

13.

14.利用全地址譯碼將6264芯片接到8088系統(tǒng)總線上,地址范圍為30000H~31FFFH,

畫(huà)出邏輯圖。

全地址譯碼可以保證存儲(chǔ)器芯片上的每一個(gè)單元在整個(gè)內(nèi)存空間中具有唯一的、獨(dú)占的

一個(gè)地址。參考教材相關(guān)內(nèi)容,6264芯片有13根地址線,剩余的高位7根地址線通過(guò)譯碼

組合確定該芯片的起始地址(30000HX

8088有純BUS

由30000H地址得出對(duì)應(yīng)的地址線狀態(tài)為:

00110000000000000000

可以看出Ai3~Ai9地址線為00”000,所以譯碼組

合應(yīng)邏輯為:

CSi_A13.Ai4.A15.A.A.Ais.A19

—16**17

=(Ai3.A14.A15.A18,A19)(A16-A17)

=A13+A14+A15+A18+A19+A16-A17

具體邏輯如右圖所示。

15.若用2164芯片構(gòu)成容量為128KB的存儲(chǔ)器,需全地址譯碼連接圖

多少片2164?至少需多少根地址線?其中多少

根用于片內(nèi)尋址?多少根用于片選譯碼?

2164A是容量為64Kx1位的動(dòng)態(tài)隨機(jī)存儲(chǔ)器芯片,核128KB的存儲(chǔ)器需要2164A

芯片16片[128Kx8/(64Kx1)=16]。

由于地址空間為128K,需要的地址線總數(shù)為17根(2=128K)0其中,片內(nèi)地址線16

根(2,6=64K),片選地址線1根(17-16=1,1每8個(gè)2164芯片構(gòu)成一組,進(jìn)行位擴(kuò)展,

得到64KB存儲(chǔ)器。兩個(gè)這樣的"組"進(jìn)行地址擴(kuò)展,構(gòu)成128KB的存儲(chǔ)器。

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

的地址范圍為FC000H-FDFFFH,ROM的地址范圍為FE000H-FFFFFH。試?yán)?/p>

74LS138譯碼,畫(huà)出存儲(chǔ)器與CPU的連接圖,并標(biāo)出總線信號(hào)名稱。

2764和6264均為8KB的存儲(chǔ)芯片,需要13根地址線(Ao-Ai2)用于片內(nèi)尋址。8088

系統(tǒng)的其他地址線(A13~A19)用于產(chǎn)生片選信號(hào)。

FC000H的地址線狀態(tài)為:11111100000000000000

FE000H的地址線狀態(tài)為:11111110000000000000

將Ai3~Al5用作譯碼輸入,其他地址(A16~A19=1111)用作譯碼控制,可以得到如下譯

碼控制電路,連接如下圖所示。

M

a

a

2

M

N

m

a

M

M

M

ILIU

B

b

cbc

17.存儲(chǔ)周期指的是(A\

A.存儲(chǔ)器進(jìn)行連續(xù)讀或?qū)懖僮魉试S的最短時(shí)間間隔B.存儲(chǔ)器的讀出周期

C.存儲(chǔ)器進(jìn)行連續(xù)寫(xiě)操作所允許的最短時(shí)間間隔D.存儲(chǔ)器的寫(xiě)入周期

存儲(chǔ)周期是指連續(xù)兩次訪問(wèn)存儲(chǔ)器之間所需的最小時(shí)間。存取時(shí)間是CPU訪問(wèn)一次存

儲(chǔ)器(寫(xiě)入和讀出)所需的時(shí)間。存儲(chǔ)周期等于存取時(shí)間加上存儲(chǔ)器的恢復(fù)時(shí)間。

所以應(yīng)選擇A.

18.某一EPROM芯片,其容量為32Kx8,除電源和地線外,最小的輸入引腳和輸出引

腳分別為(C\

A.15和8;B.32和8;C.17和8;D.18和10;

容量為32Kx8的EPROM芯片,其數(shù)據(jù)線為8根,地址線為15根,片選線1根,讀

寫(xiě)控制線1根。其中地址線、片選線、讀寫(xiě)控制線均為EPROM的輸入信號(hào),共17根。數(shù)

據(jù)線在正常工作狀態(tài)下用于EPROM輸出,計(jì)8根。

所以應(yīng)選擇G

習(xí)題三

1.如果用24b儲(chǔ)存一個(gè)無(wú)符號(hào)數(shù),這個(gè)數(shù)的范圍是什么?如果儲(chǔ)存的是一個(gè)補(bǔ)碼表示

的有符號(hào)數(shù),那么這個(gè)數(shù)的范圍又是什么?

答:如果用24b儲(chǔ)存一個(gè)無(wú)符號(hào)數(shù),這個(gè)數(shù)的范圍應(yīng)為:0~224.1

如果用24b儲(chǔ)存一個(gè)補(bǔ)碼表示的有符號(hào)數(shù),這個(gè)數(shù)的范圍應(yīng)為:-223~+223-1

2.用符號(hào)"〉"把下面的數(shù)按從大到小的順序“連接”起來(lái)

[X1]?=10110111[X2]?=10110111[X3]反=10110111[X4]?=10110110[X5]無(wú)符號(hào)政

=10110111

解:X1=-01001001B,X2=-0110111B,X3=-01001000B,X4=-01001010B,X5=+1011

0111B

因此:X5>X2>X3>X1>X4

3.用8位補(bǔ)碼完成下列運(yùn)算,用二進(jìn)制“真值”的格式給出運(yùn)算結(jié)果,并指出運(yùn)算后

CF、OF、ZF、SF、PF標(biāo)志位的狀態(tài)。

(1)127+126(2)126-127(3)-100-120(4)-100-(-120)

解:(1)127+126

[127]補(bǔ)=01111111,[126]補(bǔ)=01111110,

[127+126]#=11111101,[127+126]=-00000011(溢出)

COZSP=01010

(2)126-127

[126]^=01111110r[-127]?=10000001,

[126-127]補(bǔ)=11111111,[126-127]=-0000001

COZSP=10011

(3)-100-120

[-100]^=10011100,[-120]4=10001000,

[-100-120]4=00100100,[-100-120]=+00100100(溢出)

COZSP=01001

(4)-100-(-120)

[-100]lb=10011100,[-120]4=10001000,[[-120]補(bǔ)]求補(bǔ)=01111000,

[-100-(-120)]補(bǔ)=00010100,[-100-(-120)]=+00010100

COZSP=00001

4.把二進(jìn)制代碼1001011101011000分別〃看作〃是:

(1)二進(jìn)制無(wú)符號(hào)數(shù)(2)二進(jìn)制補(bǔ)碼(3)壓縮BCD碼(4)非壓縮BCD碼

哪一種情況下它代表的〃值〃最大?

答:看作二進(jìn)制無(wú)符號(hào)數(shù)時(shí),它代表的“值〃最大。

分析:看作二進(jìn)制補(bǔ)碼時(shí),它代表一個(gè)負(fù)數(shù),而其它的情況下,它均為正數(shù)。因此,看作二

進(jìn)制補(bǔ)碼時(shí),它代表的值最小。

把這組代碼用十六進(jìn)制數(shù)字形式寫(xiě)出:9758

對(duì)于無(wú)符號(hào)數(shù),它的值等于十六進(jìn)制的9758H;

對(duì)于壓縮BCD碼,它的值等于十進(jìn)制的9758,顯然小于9758H;

對(duì)于非壓縮BCD碼,它的值等于十進(jìn)制的78,顯然更小于9758H;

因此,看作二進(jìn)制無(wú)符號(hào)數(shù)時(shí),它代表的“值“最大。

5.某數(shù)據(jù)段內(nèi)有如下數(shù)據(jù)定義:

Xdb30,30H,'ABC1,2-3,?,1100101OB

dwOFFH,-2,"CD"

dd20dup(15,3dup(?),0)

Zdb3dup(?)

WdwZ-X

假設(shè)變量X的偏移地址為20H

(1)寫(xiě)出變量X各數(shù)據(jù)在內(nèi)存中的具體位置和相關(guān)內(nèi)存單元的值。

(2)寫(xiě)出變量Y,Z的偏移地址。

(3)寫(xiě)出變量W的值0020H1EHX

答:(1)變量X各數(shù)據(jù)在內(nèi)存中的具體位置和相關(guān)內(nèi)存單元30H

41H

的值如右圖。

42H

變量丫的偏移地址為002EH;43H

變量Z的偏移地址為002EH+4x5x20=01BEHOFFH

OOH

變量W的值等于變量Z和X偏移地址之差

0CAH

01BEH-0020H=019EH

它等于變量X、丫所占用內(nèi)存單元的字節(jié)數(shù)。OFFH

OOH

6.OFEH

7.OFFH

8.現(xiàn)有(DS)=2000H,(BX)=0100H,(SI)=0002H,(201OOH)44H

43H

=12Hz(20101H)=34H,(20102H)=56H,(20103H)=78H,

002EHY

(21200H)=2AHf(21201H)=4CH,(21202H)=0B7H,

(21203H)=65H,說(shuō)明下列指令執(zhí)行后AX寄存器的內(nèi)容。

(1)MOVAX,1200H

(2)MOVAX,BX

(3)MOVAX,[1200H]

(4)MOVAX,[BX]

(5)MOVAX,1100H[BX]

(6)MOVAX,[BX][SI]

(7)MOVAX,1100H[BX][SI]

答:(1)指令MOVAX,1200H執(zhí)行后,(AX)=1200H(立即數(shù)操作數(shù))。

(2)指令MOVAX,BX執(zhí)行后,(AX)=0100H(寄存器操作數(shù))。

(3)指令MOVAX,[1200H]執(zhí)行后,(AX)=4C2AH(直接地址,EA=1200H)

(4)指令MOVAX,[BX]執(zhí)行后,(AX)=3412H(寄存器間接尋址,EA=0100H

(5)指令MOVAX,1100H[BX]執(zhí)行后,(AX)=4C2AH(相對(duì)地址,EA=1200H

(6)指令MOVAX,[BX][SI]執(zhí)行后,(AX)=7856H(基址變址尋址,EA=0102H

(7)指令MOVAX,1100H[BX][SI]執(zhí)行后,(AX)=65B7H

(相對(duì)基址變址尋址,EA=1202H)

9.下面兩條指令的功能有什么區(qū)別?

MOVAX,BX

MOVAX,[BX]

答:指令"MOVAX,BX”把BX寄存器的內(nèi)容裝入到AX中。

指令"MOVAX,[BX]"把內(nèi)存儲(chǔ)器一個(gè)字的內(nèi)容裝入AX寄存器。該字的段基址

在DS中,偏移地址在BX中。

10.

11.

12.

13.編寫(xiě)循環(huán)結(jié)構(gòu)程序,進(jìn)行下列計(jì)算,結(jié)果存入RESULT內(nèi)存單元

(1)1+2+3+4+5+6+?+100

(2)1+3+5+7+9+11+,,+99

(3)2+4+6+8+10+?+100

(4)1+4+7+10+13+,,+100

(5)11+22+33+44+?+99

解:

(1)CODESEGMENT

ASSUMECS:CODE

RESULTDW?

START:

XORAX,AX

MOVCX,100

AGAIN:ADDAX,CX

LOOPAGAIN

MOVRESULT,AX

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

(2)CODESEGMENT

ASSUMECS:CODE

RESULTDW?

START:

XORAX,AX

MOVCX,50

MOVBX,1

AGAIN:ADDAX,BX

ADDBX,2

LOOPAGAIN

MOVRESULT,AX

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

(3)CODESEGMENT

ASSUMECS:CODE

RESULTDW?

START:

XORAX,AX

MOVCX,50

MOVBX,2

AGAIN:ADDAX,BX

ADDBX,2

LOOPAGAIN

MOVRESULT,AX

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

(4)CODESEGMENT

ASSUMECS:CODE

RESULTDW?

START:

XORAX,AX

MOVCX,34

MOVBX,1

AGAIN:ADDAX,BX

ADDBX,3

LOOPAGAIN

MOVRESULT,AX

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

CODESEGMENT

ASSUMECS:CODE

RESULTDW?

START:

XORAX,AX

MOVCX,9

MOVBX,11

AGAIN:ADDAX,BX

ADDBX,11

LOOPAGAIN

MOVRESULT,AX

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

14.

15.

16.

17.編寫(xiě)程序,從鍵盤(pán)上輸入20個(gè)十進(jìn)制數(shù)字,求這些數(shù)字的和,向顯示器輸出。

INCLUDEYLIB.H

DATASEGEMNT

MESS1DBODH,OAH,,Input20decimaldigitsplease:$?

MESS2DBODH,OAH,,Theirsumis:$?

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA

START:

MOVAX,DATA

MOVDS,AX

LEADX,MESS1

MOVAH,09H

INT21H;輸出提示信息

XORBX,BX;BX用作累加器,清零

MOVCX,20;循環(huán)計(jì)數(shù)器置初值

AGAIN:

MOVAH,01H

INT21H;輸入一個(gè)數(shù)字(在AL中)

ANDAL,OFH;轉(zhuǎn)換成二進(jìn)制數(shù)

ADDBL,AL;累加

ADCBH,0

LOOPAGAIN

LEADX,MESS2

MOVAX,BX

CALLWRITEDEC;輸出20個(gè)數(shù)字的和

CALLCRLF

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

18.閱讀以下程序,指出它的功能。

MOVCL,04

SHLDX,CL

MOVBL,AH

SHLAX,CL

SHRBL,CL

ORDL,BL

答:把32位二進(jìn)制代碼(DX,AX)聯(lián)合左移4位。

19.已知(DX)=0B9H,(CL)=3,(CF)=1,確定下列指令單獨(dú)執(zhí)行以后DX寄存器的

值。

(1)SHRDX,1

(2)SARDX,CL

(3)RORDX,CL

(4)ROLDX,CL

(5)SALDH,1

(6)RCLDX,CL

答:

(1)指令“SHRDX,1”執(zhí)行之后,(DX)=005CH

(2)指令"SARDX,CL”執(zhí)行之后,(DX)=0017H

(3)指令“RORDX,CL〃執(zhí)行之后,(DX)=2017H

(4)指令“ROLDX,CL”執(zhí)行之后,(DX)=05C8H

(5)指令"SALDH,1”執(zhí)行之后,(DX)=00B9H

(6)指令"RCLDX,CL”執(zhí)行之后,(DX)=05CCH

20.寫(xiě)程序,從鍵盤(pán)上輸入一個(gè)0-65535之間的十進(jìn)制無(wú)符號(hào)數(shù),然后用二進(jìn)制格式輸

出這個(gè)值。例如,鍵盤(pán)輸入“35〃,顯示器輸出“000000000010001

答:INCLUDEYLIB.H

DATASEGEMNT

MESS1DBODH,OAH,,Inputaunsigneddecimalintegernumberplease:$?

MESS2DBODH,OAH,,Thenumberinbinaryis:$?

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA

START:

MOVAX,DATA

MOVDS,AX

LEADX,MESS1

CALLREADDEC;輸入一個(gè)無(wú)符號(hào)整數(shù)

MOVBX,AX;轉(zhuǎn)存入BX

LEADX,MESS2

MOVAH,09H

INT21H;輸出提示信息

MOVCX,16;循環(huán)計(jì)數(shù)器置初值

AGAIN:SHLBX,1;向左外移一位,進(jìn)入CF

MOVDL,30H

ADCDL,0;形成一位二進(jìn)制數(shù)字的ASCII代碼

MOVAH,2

INT21H;輸出一個(gè)二進(jìn)制數(shù)字

LOOPAGAIN;循環(huán)16次

CALLCRLF

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

21.無(wú)符號(hào)數(shù)變量X用DD定義,編寫(xiě)程序,用十六進(jìn)制格式輸出變量X的值。

答:

DATASEGEMNT

XDD36895471;一個(gè)32B長(zhǎng)整數(shù)

MESSDB0DH,0AH,,TheXinhexdecimalis:$?

HEXTABDB,0123456789ABCDEF?

DATAENDS

CODESEGMENTUSE16

ASSUMECS:CODE,DS:DATA

START:

MOVAX,DATA

MOVDS,AX

LEADX,MESS

MOVAH,09H

INT21H輸出前導(dǎo)信息

MOVSI,wordptrX+2將X高16位存入SI

MOVCX,4循環(huán)計(jì)數(shù)器置初值

LEABX,HEXTAB換碼表首地址裝入BX

AGAIN1:ROLSI,4;把最高4位移到最低4位上

MOVAX,SI低8位轉(zhuǎn)入AL

ANDAX,000FH清除高4位

XLAT;轉(zhuǎn)換成十六進(jìn)制數(shù)字的ASCII代碼

MOVDL,AL

MOVAH,2

INT21H;輸出一個(gè)十六進(jìn)制數(shù)字

LOOPAGAIN1循環(huán)8次

MOVSI,wordptrX低16位存入SI

MOVCX,4循環(huán)計(jì)數(shù)器置初值

AGAIN2:ROLSI,4;把最高4位移到最低4位上

MOVAX,SI低8位轉(zhuǎn)入AL

ANDAX,000FH清除高4位

XLAT;轉(zhuǎn)換成十六進(jìn)制數(shù)字的ASCII代碼

MOVDL,AL

MOVAH,2

INT21H;輸出一個(gè)十六進(jìn)制數(shù)字

LOOPAGAIN2循環(huán)8次

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

22.編寫(xiě)指令序列,把AX中的16b二進(jìn)制分為4組,每組4b,分別置入AL,BL,CL

DL中。

答:MOVDX,AX最低4位直接進(jìn)入DX

MOVCX,4

ROLAX,CL;最高4位移入最低4位

PUSHAX壓入堆棧保存(準(zhǔn)備送入AL)

ROLAX,CL;次高4位移入最低4位

MOVBX,AX送入BL

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論