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

下載本文檔

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

文檔簡(jiǎn)介

1、第1章習(xí)題1.1 將下列二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)和十六進(jìn)制。(1)1101(2)=13=D(H)(2)11010(2)=26=1A(H)(3)110100(2)=52=34(H)(4)10101001(2)=169=A9(H)要點(diǎn):從低位起,按每4位將對(duì)應(yīng)二進(jìn)制轉(zhuǎn)換成十六進(jìn)制。而不是通過十進(jìn)制轉(zhuǎn)換。1.2 見上。1.3簡(jiǎn)述3個(gè)門電路的基本元素在電路中對(duì)電平高低的作用。答:與、或、非。1.4 布爾代數(shù)有哪兩個(gè)特點(diǎn)?答:(1)值只有兩個(gè);(2)只有與、或、反3種運(yùn)算。1.5 布爾代數(shù)的“或運(yùn)算”結(jié)果可用哪兩句話來(lái)歸納?其“與運(yùn)算”又可歸納成哪兩句話“答:(1)“或運(yùn)算”運(yùn)算結(jié)果為有一真必為真,兩者皆

2、假才為假。(2)“與運(yùn)算”有一假即為假,兩者皆真才為真。1.6 什么叫原碼、反碼及補(bǔ)碼?答:原碼就是一個(gè)數(shù)的機(jī)器數(shù)。反碼:將原碼每位取反,即為反碼。更準(zhǔn)確的是:正數(shù)的反碼就等于它的原碼; 負(fù)數(shù)的反碼就是它的原碼除符號(hào)位外,各位取反。補(bǔ)碼:反碼加1就是補(bǔ)碼。更準(zhǔn)確的是:正數(shù)的補(bǔ)碼就等于它的原碼; 負(fù)數(shù)的補(bǔ)碼就是它的反碼加1。 例:X1=100 1001 X2=100 1001則 : X1原 = 0100 1001 X1反 = 0100 1001X1補(bǔ)= 0100 1001 X2原 = 1100 1001 X2反 = 1011 0110 X2補(bǔ) = X2反+1= 1011 01111.7 為什么需

3、要半加器和全加器,它們之間的主要區(qū)別是什么?答:(1)因?yàn)榧臃ǖ牡谝晃粵]有進(jìn)位,所以用半加器即可;而第二位起可能有進(jìn)位,故需要考慮全加器;(2)兩者的區(qū)別是半加器為雙入雙出,全加器為三入雙出。1.8 用補(bǔ)碼法寫出下列減法的步驟:(1)1111(2)-1010(2)=?(2)=?(10)兩個(gè)數(shù)相減其實(shí)就是第一個(gè)數(shù)與第二個(gè)數(shù)的補(bǔ)碼相加。第一個(gè)數(shù)1111為正數(shù),其原碼為1111第二個(gè)數(shù)為1010),其機(jī)器碼(原碼)為:1010,反碼為0101,補(bǔ)碼為:0110兩者相加: 1111 + 0110 10101將最高位的進(jìn)位1刪去,得結(jié)果為10101,即為5(10)這是按書上的簡(jiǎn)單做法。按最正規(guī)的方法做如

4、下:若考慮兩個(gè)數(shù)屬于帶符號(hào)數(shù),第一個(gè)是正數(shù),補(bǔ)碼與原碼都為01111;第二個(gè)數(shù)是負(fù)數(shù),原碼為11010,反碼為10101,補(bǔ)碼為10101+1=10110第一個(gè)數(shù)與第二個(gè)數(shù)的補(bǔ)碼相加,即為: 01111 + 10110 100101將最高位的進(jìn)位刪去,得結(jié)果為00101,即為5(10)建議用第二種方法為佳。答:(2)1100(2)-0011(2)=?(2)=?(2)答:按上述所講的正規(guī)方法做。第一個(gè)數(shù)的補(bǔ)碼=原碼=01100;第二個(gè)數(shù)的原碼(即機(jī)器碼)為10011,其反碼為11100,其補(bǔ)碼為11101;兩個(gè)數(shù)的補(bǔ)碼相加,即為: 01100 + 11101 = 101001將最高位的進(jìn)位1刪去

5、,得結(jié)果為01001,即為9(10)1.9 做出101011(2)+011110(2)的門電路圖并求其相加的結(jié)果。答:相加結(jié)果為: 101011 + 011110 = 1001001得結(jié)果為1001001(2)。(注:相加時(shí)不去掉最高位的進(jìn)位)門電路圖略去。1.10 做出第1.9題中兩數(shù)相減的門電路圖并求其相減的結(jié)果。答:若為101011-011110則第一個(gè)數(shù)為正數(shù),其補(bǔ)碼=原碼=0101011;第二個(gè)數(shù)為負(fù)數(shù),其原碼為1011110,反碼為1100001,補(bǔ)碼=反碼+1=1100001+1=1100010兩個(gè)數(shù)的補(bǔ)碼相加為: 0101011 + 1100010 = 1 0001101去掉最

6、高位的進(jìn)位1,得結(jié)果為0001101,即為13(10)。例2: +0反 = 00000000 -0反 = 11111111即:數(shù)0的反碼也不是唯一的。第2章習(xí)題2.2 觸發(fā)器、寄存器及存儲(chǔ)器之間有什么關(guān)系?請(qǐng)畫出這幾種器件的符號(hào)。答:觸發(fā)器是存放一位二進(jìn)制數(shù)字信號(hào)的基本單元。觸發(fā)器是計(jì)算機(jī)的記憶裝置的基本單元,也可以說是記憶細(xì)胞。觸發(fā)器可以組成寄存器,寄存器又可以組成存儲(chǔ)器。寄存器和存儲(chǔ)器統(tǒng)稱為計(jì)算機(jī)的記憶裝置。(2)其符號(hào)分別表示如下:2.4 累加器有何用處?畫出其符號(hào)。答:累加器作為ALU運(yùn)算過程的代數(shù)和的臨時(shí)存儲(chǔ)處。2.5 三態(tài)輸出電路有何意義?其符號(hào)如何畫?答:三態(tài)輸出電路使得一條信號(hào)

7、傳輸線既能與一個(gè)觸發(fā)器接通,也可以與其斷開而與另外一個(gè)觸發(fā)器接通,從而使得一條信號(hào)線可以傳輸多個(gè)觸發(fā)器的信息。2.6 何謂L門及E門?它們?cè)诳偩€結(jié)構(gòu)中有何用處?答:(1)L門:高電平時(shí)使數(shù)據(jù)裝入、低電平時(shí)數(shù)據(jù)自鎖其中的電路 ;E門:E門即三態(tài)門,當(dāng)選通端E門為高電平時(shí),可將信息從A端送到B端。(2)L門專管對(duì)寄存器的裝入數(shù)據(jù)的控制,而E門志管由寄存器輸出數(shù)據(jù)的控制。2.7 控制字是什么意義?試舉個(gè)例子說明。答:(1)控制字CON將各個(gè)寄存器的L門和E門的按次序排成一列,并且為了避免住處在公共總線中亂竄,規(guī)定在某一時(shí)鐘節(jié)拍,只有一個(gè)寄存器的L門為高電平,一個(gè)寄存器的E門為高電平,從而保證了E門為

8、高電平的寄存器的數(shù)據(jù)流入到L門為高電平的寄存器中去。(2)略去,詳見教材P31的表2-32.8 ROM和RAM各有何特點(diǎn)與用處?答:ROM是只讀存儲(chǔ)器,是用以存放固定程序的存儲(chǔ)器,一旦程序放進(jìn)去之后,就不能再改變。也不能再寫入新的字節(jié),而只能讀出其中所存儲(chǔ)的內(nèi)容;RAM是隨機(jī)存儲(chǔ)器(又稱讀/寫存儲(chǔ)器),它與ROM的區(qū)別在于它不但能讀出存放在其中各個(gè)存儲(chǔ)單元的數(shù)據(jù),而且能夠隨時(shí)寫進(jìn)新的數(shù)據(jù),或者改變?cè)袛?shù)據(jù)。2.9 為什么要建立“地址”這個(gè)概念?答:因?yàn)橐粋€(gè)存儲(chǔ)器可以包含數(shù)以千計(jì)的存儲(chǔ)單元,可以存儲(chǔ)很多數(shù)據(jù),為了便于存入和取出,需要對(duì)每個(gè)存儲(chǔ)單元確定一個(gè)固定地址。2.11 譯碼器有何用處?答:譯

9、碼器用來(lái)確定存儲(chǔ)單元的地址。地址譯碼器常用于計(jì)算機(jī)中對(duì)存儲(chǔ)單元地址的譯碼,即將一個(gè)地址代碼轉(zhuǎn)換成一個(gè)有效信號(hào),從而選中對(duì)應(yīng)的單元。2.12 存儲(chǔ)地址寄存器(MAR)和存儲(chǔ)數(shù)據(jù)寄存器(MDR)各有何用處?答:MAR將所要尋找的存儲(chǔ)單元的地址暫存下來(lái),以備下一條指令之用。MDR是將要寫入RAM中去的數(shù)據(jù)暫存起來(lái),以等待控制器發(fā)出指令再將數(shù)據(jù)寫入RAM中去。P33 2,4,5,6,7,8,9,11,12第3章習(xí)題3.1 略去3.2 程序計(jì)數(shù)器PC的內(nèi)容是什么意義?答:程序計(jì)數(shù)器PC存儲(chǔ)的內(nèi)容是指令的地址碼。每次運(yùn)行指令前,先復(fù)位到0,每取出執(zhí)行一條指令,PC加1.3.3指令寄存器IR從PROM接收到

10、指令字(8位)后的運(yùn)行過程如何?起什么作用?答:(1)指令寄存器IR從PROM接收到指令字后,就立即將其高4位送到控制部件。(2)控制部件經(jīng)過分析后就發(fā)出控制指令,將IR的低4位數(shù)送到存儲(chǔ)地址寄存器MAR,MAR將此低4位數(shù)作為地址并用于訪問PROM。故第1次訪問PROM的是其指令區(qū),第2次訪問的是其數(shù)據(jù)區(qū)。3.4 略3.5 環(huán)形計(jì)數(shù)器有何用處?什么叫環(huán)形字?答:(1)環(huán)形計(jì)數(shù)器用來(lái)發(fā)出順序控制信號(hào)(即用來(lái)發(fā)出環(huán)形字),從而產(chǎn)生機(jī)器節(jié)拍。(2)環(huán)形字是其6位輸出端依次輪流為高電平,并且是在最位一位(左邊第1位)置1后又回到右邊第1位,從而形成環(huán)形置位。3.6 什么叫例行程序?什么叫機(jī)器周期、取

11、指周期和執(zhí)行周期?本章簡(jiǎn)化式計(jì)算機(jī)的機(jī)器周期包括幾個(gè)時(shí)鐘周期(機(jī)器節(jié)拍)?機(jī)器周期是否一定是固定不變的?答:(1)例行程序:由廠家編好的執(zhí)行每個(gè)程序(在本章中即為每條指令)所需要的機(jī)器節(jié)拍(3個(gè),見P49)(2)機(jī)器周期:執(zhí)行一條指令的時(shí)間。(3)取指周期:取一條指令所需的3個(gè)機(jī)器節(jié)拍。(4)執(zhí)行周期:執(zhí)行一條指令所需的機(jī)器節(jié)拍(一般也為3個(gè)機(jī)器節(jié)拍)(5)本章簡(jiǎn)化式計(jì)算機(jī)的機(jī)器周期包括6個(gè)機(jī)器節(jié)拍。補(bǔ)充:機(jī)器節(jié)拍:即一個(gè)時(shí)鐘周期(時(shí)鐘一個(gè)高電平+一 個(gè)低電平)(6)不一定。只不過固定了在6個(gè)節(jié)拍完成一個(gè)機(jī)器周期的計(jì)算機(jī)被稱為固定周期的計(jì)算機(jī)。3.7 控制部件包括哪些主要環(huán)節(jié)?各有何用處?答:

12、(1)控制部件包括環(huán)形計(jì)數(shù)器、指令譯碼器、控制矩陣和其他控制電路。(2)環(huán)形計(jì)數(shù)器用來(lái)產(chǎn)生環(huán)形字,從而產(chǎn)生機(jī)器節(jié)拍; 指令譯碼器:將高四位組成的編碼信息譯成某一控制線為高電位。控制矩陣:用來(lái)產(chǎn)生控制字CON,即產(chǎn)生所有控制信號(hào)。其他控制電路包含時(shí)鐘脈沖發(fā)生器、運(yùn)行/停車觸發(fā)器、“啟動(dòng)”和“清除”按鈕。其作用見P54.3.8 子程序計(jì)數(shù)器有何用處?答:也是用來(lái)作為一個(gè)程序計(jì)數(shù)器的。3.9-3.11 略去3.12 指令寄存器IR是如何將其指令字段和地址字段分送出去的?這兩個(gè)字段的位數(shù)是否保持不變?答:(1)指令寄存器IR將8位指令字的高4位作為指令字段送到控制部件,而將低4位做為地址字段通過總線送

13、到存儲(chǔ)地址寄存器MAR中去。(2) 對(duì),保持不變。這由制造廠家確定。第4章習(xí)題4.1 8086CPU與8088CPU有哪些相同之處?又有哪些區(qū)別?答:兩者的內(nèi)部結(jié)構(gòu)基本相同,內(nèi)部都采用16位字進(jìn)行操作及存儲(chǔ)器尋址,兩者的軟件完全兼容,程序的執(zhí)行也完全相同,兩種處理器都封裝在相同的40腳雙列直插組件(DIP)中。但它們的外部性能有區(qū)別。8086是16位數(shù)據(jù)總線,而8088是8位數(shù)據(jù)總線,在處理一個(gè)16位數(shù)據(jù)字時(shí),8088需要兩步操作而8086只需要一步。4.2 8086 CPU從功能上分為幾部分?各部分由什么組成?各部分的功能是什么?答:8086CPU從功能上分為總線接口部分BIU和執(zhí)行部件EU

14、兩部分。其中總線接口部分的功能是負(fù)責(zé)與存儲(chǔ)器、I/O端口傳送數(shù)據(jù),即BIU管理在存儲(chǔ)器中存取程序和數(shù)據(jù)的實(shí)際處理過程。執(zhí)行部件EU的功能負(fù)責(zé)指令的執(zhí)行。將指令譯碼并利用內(nèi)部的寄存器和ALU對(duì)數(shù)據(jù)進(jìn)行所需的處理。BIU由4個(gè)段寄存器(CS、ES、DS、SS)、16位指令指針寄存器IP、20位的地址加法器和6字節(jié)的指令隊(duì)列組成。EU由4個(gè)通過寄存器(AX、BX、CX、DX)、4個(gè)專用寄存器(SI、DI、SP、BP)、標(biāo)志寄存器FR、算術(shù)邏輯部件ALU組成。4.3 8086 CPU有哪些寄存器組成?各有什么用途?標(biāo)志寄存器的各標(biāo)志位在什么情況下置位?答:8086 CPU由4個(gè)通用寄存器(AX、BX、

15、CX、DX)、4個(gè)專用寄存器(SI、DI、SP、BP)、標(biāo)志寄存器FR組成,共9個(gè)寄存器。4個(gè)通用寄存器既可作為16位寄存器用,也可作為8位寄存器使用。其中AX寄存器也常稱為累加器。其它寄存器的用途見教材。標(biāo)志寄存器有6個(gè)狀態(tài)標(biāo)志(SF、ZF、PF、CF、AF、OF)和3個(gè)控制標(biāo)志位(DF、IF、TF)。其具體置位見P75的表4-1.4.4 8086系統(tǒng)中的物理地址是如何得到的?假如CS=2000H,IP=2100H其物理地址應(yīng)是多少?答:8086系統(tǒng)中的物理地址是通過BIU中的20位地址加法器得到的。物理地址計(jì)算公式為CS段地址*16(即二進(jìn)制左移4位,或者十六進(jìn)制左移1位)+IP偏移地址。

16、按計(jì)算公式,本題中的物理地址為20000H+2100H=22100H。4.5 什么叫總線周期?8086CPU的一個(gè)總線周期包括多少時(shí)鐘周期,什么情況下要插入TW等待周期?插入多少個(gè)TW取決于什么因素?答:總線周期是CPU或其他總線控制設(shè)備訪問一次存儲(chǔ)器或I/O端口所需的時(shí)間。在總線周期中需要利用總路線。補(bǔ)充:指令周期:指令周期是機(jī)器執(zhí)行一條指令所需的時(shí)間。8086CPU的一個(gè)標(biāo)準(zhǔn)總線周期包括4個(gè)時(shí)鐘周期。當(dāng)4個(gè)時(shí)鐘周期不能完成所規(guī)定的操作時(shí),可以插入一個(gè)或多個(gè)等待時(shí)鐘周期TW。插入多少個(gè)TW取決于所訪問的存儲(chǔ)器或者I/O設(shè)備是否準(zhǔn)備就緒,此信號(hào)由引腳READY發(fā)出。4.6 什么是最大模式?什么

17、是最小模式?用什么方法將8086/8088置為最大模式和最小模式?答:所謂最小模式,就是在系統(tǒng)中只有8086/8088一個(gè)微處理器。最大模式中,飲包含兩個(gè)或多個(gè)微處理器,其中主處理器是8086/8088,其他處理器是協(xié)處理器(如數(shù)值運(yùn)算協(xié)處理器8087,輸入/輸出協(xié)處理器8089)。用硬件方法來(lái)決定8086/8088的工作模式,具體是通過引腳控制信號(hào)引腳來(lái)決定,其接+5伏,則為最小模式,接地為最大模式。4.7 什么是地址鎖存器?8086/8088系統(tǒng)中為什么要用地址鎖存器?鎖存的是什么信息?答:(1)地址鎖存器就是一個(gè)寄存器,它根據(jù)控制信號(hào)的狀態(tài),將總線上的地址代碼暫存起來(lái),即用于“鎖定”一個(gè)

18、(系列)數(shù)字狀態(tài)的電路。簡(jiǎn)答:地址鎖存器是用來(lái)鎖存/保存地址的一個(gè)寄存器(即一個(gè)普通的時(shí)序電路),是觸發(fā)器的原始形式。目的是某次傳送數(shù)據(jù)并不能一次完成所以鎖存地址以免CPU重復(fù)的傳送一個(gè)地址。原理:CPU送地址到鎖存器8282/8283之后,內(nèi)存在地址鎖存器中找地址,而不是向CPU要地址。(2)因?yàn)?060/8088系統(tǒng)采用的是地址/數(shù)據(jù)分時(shí)復(fù)用總線,即用同一總線傳輸數(shù)據(jù)又傳輸?shù)刂?,?dāng)微處理器與存儲(chǔ)器或IO交換信號(hào)時(shí),首先由CPU發(fā)出存儲(chǔ)器地址,同時(shí)發(fā)出允許鎖存ALE給鎖存器,當(dāng)鎖存器接到該信號(hào)后將地址/數(shù)據(jù)總線上的地址鎖存在總線上,隨后才能傳輸數(shù)據(jù)。個(gè)人理解:因?yàn)樵诳偩€周期的前半部分,CPU

19、總是送出地址信號(hào)和BHE(總線高允許)信號(hào),為了通知地址已經(jīng)準(zhǔn)備好了,可以被所鎖存,CPU會(huì)送出高電平允許鎖存信號(hào)ALE。此時(shí)地址信號(hào)和BHE信號(hào)被鎖存。由于有了鎖存器對(duì)地址信號(hào)和BHE信號(hào)的鎖存,CPU在總線周期的后半部分,地址和數(shù)據(jù)都在總線上,確保了CPU對(duì)鎖存器和I/O接口的讀/寫操作。(3)鎖存的是復(fù)用總線上的地址信息。4.8 8086/8088系統(tǒng)中的8286是什么器件?起什么作用?答:(1)8286是總線驅(qū)動(dòng)器(又稱總線收發(fā)器,雙向數(shù)據(jù)緩沖器)。(2)在一個(gè)系統(tǒng)所含的外設(shè)接口較多時(shí),它用來(lái)增加數(shù)據(jù)總線的驅(qū)動(dòng)能力。4.9 8086/8088系統(tǒng)中用時(shí)鐘發(fā)生器8284A產(chǎn)生哪些信號(hào)?答

20、:8284A產(chǎn)生恒定的時(shí)鐘信號(hào)、準(zhǔn)備信號(hào)(READY)及復(fù)位信號(hào)(RESET)。4.10 8086最基本的操作是什么?答:是總線操作4.11 8086/8088系統(tǒng)中引入了哪些中斷?是如何引入的?答:8086共有256種類型的中斷。從產(chǎn)生中斷的方法,可以將其分為硬件中斷和軟件中斷兩大類,硬件中斷中的非屏蔽中斷是通過CPU的NMI引腳進(jìn)入的,可屏蔽中斷是通過CPU的INTR引腳進(jìn)入的,并且只有當(dāng)中斷允許標(biāo)志IF為1時(shí),非屏蔽中斷才能進(jìn)入。軟件中斷是CPU根據(jù)軟件中的某條指令或者軟件對(duì)標(biāo)志寄存器中某個(gè)標(biāo)志的設(shè)置而產(chǎn)生的。4.12 什么是可屏蔽中斷?什么是非屏蔽中斷?可屏蔽中斷是指受中斷標(biāo)志IF屏蔽

21、的中斷,由INTR引腳進(jìn)入。非屏蔽中斷是不受中斷標(biāo)志IF屏蔽的中斷,由NMI引腳進(jìn)入。4.13 什么是中斷向量?中斷向量表指的是什么?中斷向量表放在什么地方?答:(1)中斷向量是中斷處理子程序的入口地址,每個(gè)中斷類型對(duì)應(yīng)一個(gè)中斷向量。(2)中斷向量表是指在8086/8088微機(jī)系統(tǒng)的內(nèi)存中,專門留出的0段的000003FH區(qū)域,用于存放所有的256個(gè)中斷向量。(3)中斷向量表放在0段的000003FH區(qū)域。4.14 假如中斷類型為8,它的中斷服務(wù)入口地址是多少?答:中斷類型8*4=32,即十六進(jìn)制20H,所以其中斷服務(wù)入口地址為20H.第5章習(xí)題5.1 分別指出下列指令中的源操作數(shù)和目的操作數(shù)

22、的尋址方式:(1)MOV SI, 200 ;源操作數(shù)為立即數(shù)尋址(2)MOV CX, DATASI ;源操作數(shù)為(3)ADD AX, BXDI ;源操作數(shù)為基址加變址的寄存器間接尋址(4)AND AX, BX 源操作數(shù)為寄存器尋址(5)MOV SI, AX ;源操作數(shù)為寄存器尋址(6)PUSHF ; 為寄存器尋址對(duì)于目的操作數(shù),前4小題均為寄存器尋址,(5)題為寄存器間接尋址。5.2 試述指令MOV AX, 2010H 和MOV AX, DS:2010H的區(qū)別中。答:前者為將十六進(jìn)制數(shù)2010H送到寄存器AX中去; 后者為將數(shù)據(jù)段DS中偏移地址為2010H、2011H兩單元中的內(nèi)容送到AX中去

23、。5.3 寫出以下指令中內(nèi)存操作數(shù)的所在地址。(1)MOV AL, BX+5答:源操作數(shù)的地址為BX+5,默認(rèn)段寄存器為數(shù)據(jù)段寄存器DS,又因BX為基址寄存器,所以尋址方式為數(shù)據(jù)段相對(duì)基址尋址;(2)MOV BP+5, AX答:目的操作數(shù)的地址為BP+5,默認(rèn)段寄存器為堆棧段寄存器SS,又因BP為基址寄存器,所以尋址方式為堆棧段相對(duì)基址尋址;(3)INC BYTE PTR SI+3答:此句意思為將SI+3所指的存儲(chǔ)單元的內(nèi)容加1;PTR的意義是定義其后的內(nèi)容變量的新類型為字節(jié)屬性,具體用法見第7章P159. 內(nèi)存操作數(shù)的地址為SI+3,屬于相對(duì)變址尋址;(4)MOV DL, ES: BX+DI

24、答:源操作數(shù)為附加段基址加變址的尋址方式;(5)MOV BX, BX+SI+2答:源操作數(shù)的內(nèi)存地址為BX+SI+2,屬于數(shù)據(jù)段相對(duì)基址加變址尋址。5.4 判斷下列指令書寫是否正確:(1)MOV AL, BX 答:不對(duì),一個(gè)8位,一個(gè)16位;(2)MOV AL,CL答:正確(3)INC BX答:正確(4)MOV 5, AL答:不對(duì),目的操作數(shù)不能是立即數(shù)。(5) MOV BX, SI答:不對(duì),兩個(gè)存儲(chǔ)單元之間不能直接傳送數(shù)據(jù);(6)MOV BL, F5H答:正確(7)MOV DX, 2000H答:正確(8)POP CS答:不對(duì),段寄存器CS和立即數(shù)都不能作目的操作數(shù)(9) PUSH CS答:正

25、確。注:本部分可以用DEBUG中的-a指令進(jìn)行調(diào)試以確認(rèn)指令是否正確5.5 設(shè)堆棧指針SP的初值為2000H,AX=3000H,BX=5000H,試問:(1)執(zhí)行指令PUSH AX 后 SP=?答:執(zhí)行PUSH指令時(shí),棧頂指針SP自動(dòng)減2,所以SP=2000H-2= 1FFE H;(2)再執(zhí)行PUSH BX 及POP AX后SP=? AX=? BX=?答:執(zhí)行PUSH BX 后SP=1FFE H- 2;再執(zhí)行POP AX后SP=(1FEE H-2)+2=1FFE H;此時(shí)AX中的內(nèi)容為原BX中的內(nèi)容,故AX=5000H;而BX中的內(nèi)容沒有改動(dòng),即還是5000H.5.6 要想完成把2000H送

26、1000H中,用指令:MOV 1000H, 2000H是否正確 ?如果不正確,應(yīng)用什么方法?答:不正確,因?yàn)閮蓚€(gè)存儲(chǔ)單元之間不能直接傳送數(shù)據(jù)??梢愿臑椋篗OV AX, 2000HMOV 1000H, AX5.7 假如想從100中減去AL中的內(nèi)容,用SUB 100,AL是否正確?如果不正確,應(yīng)用什么方法?答:不正確,因?yàn)榱⒓磾?shù)不能做為目的操作數(shù)??梢愿臑椋篗OV BL, 5AH ; 100的16進(jìn)制數(shù)表達(dá)式為5AHSUB BL, AL5.8 用兩種方法寫出從88H端口讀入信息的指令。再用兩種方法寫出從42H口輸出100H的指令。答:法一:IN AL, 88H; 法二:MOV DL, 88H IN

27、 AL, DL(2) 法一:MOV AX, 0100H OUT 42H, AX; 將AX中的內(nèi)容輸出到42H、43H兩端口中,其中00H送42H端口中,01H送到43H端口中法二:MOV AX,0100H MOV DX, 42H OUT DX, AX5.9 假如AL=20H,BL=10H,當(dāng)執(zhí)行CMP AL,BL后,問:(1)若AL、BL中內(nèi)容是兩個(gè)無(wú)符號(hào)數(shù),比較結(jié)果如何?影響哪幾個(gè)標(biāo)志位? 第一個(gè)數(shù)AL為: 0002 0000第二個(gè)數(shù)BL為: 0001 0000 0001 0000答:對(duì)無(wú)符號(hào)數(shù),執(zhí)行CMP后影響 CF、ZF位。故執(zhí)行后標(biāo)志為分別為 ZF=0;CF=0;(2)若AL、BL中內(nèi)

28、容是兩個(gè)有符號(hào)數(shù),結(jié)果又如何?影響哪幾個(gè)標(biāo)志位?答:對(duì)有符號(hào)數(shù),執(zhí)行CMP指令后影響ZF和OF標(biāo)志位,不影響CF位。執(zhí)行后標(biāo)志位分別為ZF=0;OF=0第6章習(xí)題6.1讀下面程序段,請(qǐng)問:在什么情況下,本段程序的執(zhí)行結(jié)果是AH0? BEGIN: IN AL,5FH TEST AL,80H JZ BRCHl MOV AH,0 JMP STOP BRCHl: MOV AH,0FFH STOP: HLT解答:AL中的最高位為1時(shí)。6.2讀程序: START: IN AL,20H MOV BL,AL IN AL,30H MOV CL,AL MOV AX,0 ADLOP: ADD AL,BL ADC A

29、H,0 DEC CL JNZ ADLOP HLT 請(qǐng)問: (1)本程序?qū)崿F(xiàn)什么功能? (2)結(jié)果在哪里?解答:完成20H*30H,結(jié)果在AX中。6.3 請(qǐng)編一程序段完成AX*10的任務(wù)(要求不準(zhǔn)用乘法指令做)答:MOV BX,AX MOV CL 2 SHL AX, CL ;此句實(shí)現(xiàn)了AX=AX*4 ADD AX,BX ;此句使得AX=5AX SHL AX ,1 ;此句實(shí)現(xiàn)了5AX*2=10AX法二:MOV BX,AXMOV CL, 4SHL AX,CLSHL BX,1ADD AX,BX6.4編程序使: (1)AX寄存器低4位清零。 (2)BX寄存器低4位置“1”。 (3)CX寄存器低4位變反。

30、 (4)用TEST指令測(cè)試DL寄存器位3、位6是否同時(shí)為0,若是,將0送DL;否則l送DH。解答 :(1) AND AX ,0FFF0H (2) OR BX ,000FH (3) XOR CX ,000FH 或者NOT CX(但這樣CX的高4位也會(huì)變反) (4)TEST DL ,48H JZ LOOP MOV DH,1 HLT LOOP :MOV DL ,0HLT6.5編一程序段,完成符號(hào)函數(shù)(-128x127): 1 (x0)y= 0 (x=0) -1 (x0)假設(shè)x的值存放在DATAl中,y的值存放在DATA2中。 解答: START :MOV AL ,DATA1 AND AL,AL JG

31、E BIGR MOV AL,81H ;即將-1給AL MOV DATA2,AL HLT BIGR: JE EQUL ;結(jié)果為0,轉(zhuǎn)EQUL MOV AL,1 MOV DATA2,AL HLT EQUL: MOV AL,OMOV DATA2,AL HLT6.6設(shè)AX寄存器中有一個(gè)16位二進(jìn)制數(shù),編一程序,統(tǒng)計(jì)AX中“l(fā)”的個(gè)數(shù),統(tǒng)計(jì)結(jié)果送CX中。解答: START : MOV CX ,0 ;CX清零也可用XOR CX,CX實(shí)現(xiàn) LOOP1: CLC ;CF清零SUB AX,0 ;此句也可用CMP AX,O替代 JZ STP SAL AX,1 ;此句也可用SHL AX,1替代 JNC NOD IN

32、C CX NOD: JMP LOOP1 STP: HLT 67編一子程序利用XLAT指令把十六進(jìn)制數(shù)轉(zhuǎn)換成ASCII碼。假設(shè)ASCII碼存放在以 DAT1為首地址的數(shù)據(jù)區(qū)中,對(duì)應(yīng)的16進(jìn)制數(shù)放在以DAT2為首地址的數(shù)據(jù)區(qū)中,轉(zhuǎn)換結(jié)果送以DAT3為首地址的數(shù)據(jù)區(qū)中。解答: SUBPROC PROCSUBPROC :PUSH BX PUSH SIPUSH DIPUSH CXPUSH ALPUSH DS START:MOV BX,DATA1 ;將首地址DAT1送到BX中,作為表的首地址 MOV SI ,DAT2 MOV DI DAT3 MOV CX ,16 NEST:LODSB ;讀字節(jié)串,從地址為

33、SI的RAM讀16進(jìn)制數(shù)到AX/AL XLAT ;用換碼指令XLAT將AX/AL中的16進(jìn)制數(shù)轉(zhuǎn)換成;對(duì)應(yīng)的ASCII碼 STOSB ;寫字節(jié)串,從AX/AL寫到RAM,即將轉(zhuǎn)換成的ASCII碼送;到目標(biāo)地址DI處 LOOP NEST ;CX!=0,就轉(zhuǎn)向NEST,SI與DI都會(huì)自動(dòng)增1 POP DS POP AL POP CX POP DI POP SI POP BX RETSUBPROC ENDP本題重點(diǎn):(1)所有的串操作指令,如LODSB, STOSB等都用寄存器SI對(duì)源操作數(shù)進(jìn)行間接尋址;都用寄存器DI為目的操作數(shù)進(jìn)行間接尋址。(2)在每次循環(huán)后,地址指針SI和DI都會(huì)受到修改;(3

34、)XLAT指令的用法,見教材P118,用BX給定首地址,用AL/AX給定偏移地址,再用XLAT指令轉(zhuǎn)換。第7章習(xí)題7.2 假設(shè)學(xué)生某門課程的成績(jī)放在數(shù)據(jù)區(qū)中,請(qǐng)編一程序,統(tǒng)計(jì)該成績(jī)中小于60分的人數(shù),6090分的人數(shù),大于90分的人數(shù),并顯示在屏幕上。答:分析:假設(shè)學(xué)生成績(jī)放在以DATA1為首地址的數(shù)據(jù)區(qū)中。DATASEG SEGMENTDATA1 DB 100 DUP (?)STRING1 DB The student number of grade is bigger than 90STRING2 DB The student number of grade is between 60 a

35、nd 90STRING3 DB The student number of grade is less than 90 DATASEG ENDSSS1 SEGEMENT STACK DW 30 DUP(?)SS1 ENDSCODE SEGMENTASSUME CS: CODE, DS:DATASEG, SS:SS1START: MOV AX, DATASEG MOV DS, AXMOV SI, OFFSET DATA1MOV CL, 100(D); 將學(xué)生人數(shù)100賦給CLXOR BX, BXXOR AX, AXXOR DX, DXA1: MOV AX, SICMP AX, 90(D)JA L

36、1CMP AX, 60(D)JAE L2INC CH ;用CH保存小于60的人數(shù)JUMP A2L1: INC BH ;用BH保存大于90的人數(shù)JUMP A2L1: INC BL ;用BL保存60到90的人數(shù)JUMP A2A2: INC SILOOP A1;-在屏幕上輸出各類人數(shù)MOV DX, OFFSET STRING1MOV AH, 9INT 21HMOV DL, CH MOV AH, 2INT 21H; -輸出60-90的學(xué)生人數(shù)MOV DX, OFFSET STRING2MOV AH, 9MOV DL, BLMOV AH, 2INT 21H;-輸出小于60的學(xué)生人數(shù)MOV DX, OFF

37、SET STRING3MOV AH, 9MOV DL, BHMOV AH, 2INT 21H;-程序完成,返回操作系統(tǒng),結(jié)束MOV AH, 4CHINT 21HCODE ENDSEND START第八章習(xí)題8.1 編一初始化程序,使8255A的PC5端輸出一個(gè)負(fù)跳變。如果要求PC5端輸出一個(gè)負(fù)脈沖,則初始化程序又是什么情況?答:(1)設(shè)置PC5為負(fù)跳變(從1到0),即設(shè)置PC5引腳為0值,其控制字應(yīng)設(shè)置為:0000 1010(即0AH)。故其初始化程序?yàn)椋篗OV DX, 8255控制端口地址 MOV AL,0AH OUT DX, AL(2)負(fù)脈沖為(從0到-1),故其控制字為:0000 1011(即0BH)故其初始化程序?yàn)椋篗OV DX, 8255控制端口地址 MOV AL,0BH OUT DX, AL8.2 設(shè)8251A的控制和狀態(tài)端口地址為52H,數(shù)據(jù)輸入/輸出口地址為50H(輸出端口未用),輸入50個(gè)字符,將字符放在BUFFERR所指的內(nèi)存緩沖區(qū)中。請(qǐng)寫出這段程序。答:分析:(1)工作方式選擇本題沒有講清用同步或異步,故可自選,在此選擇異步傳送,波特率為16,偶校驗(yàn),停止位為2位;8個(gè)數(shù)據(jù)位。從而確定工作方式選擇字為:1111 1110,即為0FEH;(2)操作命令控制字選擇

溫馨提示

  • 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)論