版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
微型計算機(jī)原理與應(yīng)用習(xí)題集目錄TOC\o"1-5"\h\z\o"CurrentDocument"第1章概述 1\o"CurrentDocument"第2章計算機(jī)中的數(shù)制與編碼 2\o"CurrentDocument"第3章微處理器及其結(jié)構(gòu) 4\o"CurrentDocument"第4章8086/8088CPU指令系統(tǒng) 9\o"CurrentDocument"第5章匯編語言程序設(shè)計 16\o"CurrentDocument"第6章存儲器系統(tǒng) 27\o"CurrentDocument"第7章中斷技術(shù) 30\o"CurrentDocument"第8章輸入/輸出接口技術(shù) 36\o"CurrentDocument"第9章串行通信技術(shù)及其接口芯片 41模擬試題(一) 錯誤!未定義書簽。參考答案 錯誤!未定義書簽。模擬試題(二) 錯誤!未定義書簽。參考答案 錯誤!未定義書簽。模擬試題(三) 錯誤!未定義書簽。參考答案 錯誤!未定義書簽。河南理工大學(xué)2006-2007學(xué)年第1學(xué)期 錯誤!未定義書簽。參考答案 錯誤!未定義書簽。近年來某高校碩士研究生入學(xué)試題 錯誤!未定義書簽。參考答案 錯誤!未定義書簽。近年某高校研究生入學(xué)考試試題 錯誤!未定義書簽。參考答案 錯誤!未定義書簽。近年某高校攻讀碩士學(xué)位研究生試題 錯誤!未定義書簽。參考答案 錯誤!未定義書簽。第1章概述一、填空題.電子計算機(jī)主要由上型巡、控制器、存儲器、輸入設(shè)備和輸出設(shè)備等五部分組成。.運(yùn)算器和控制器集成在一塊芯片上,被稱作CPU。.總線按其功能可分?jǐn)?shù)據(jù)總線、地址總線和控制總線三種不同類型的總線。.計算機(jī)系統(tǒng)與外部設(shè)備之間相互連接的總線稱為系統(tǒng)總線(或通信總線);用于連接微型機(jī)系統(tǒng)內(nèi)各插件板的總線稱為系統(tǒng)內(nèi)總線(板級總線):CPU內(nèi)部連接各寄存器及運(yùn)算部件之間的總線稱為內(nèi)部總線。.迄今為止電子計算機(jī)所共同遵循的工作原理是程序存儲和程序控制的工作原理。這種原理又稱為馮?諾依曼型原理。二、簡答題.簡述微處理器、微計算機(jī)及微計算機(jī)系統(tǒng)三個術(shù)語的內(nèi)涵。答:微處理器是微計算機(jī)系統(tǒng)的核心硬件部件,它本身具有運(yùn)算能力和控制功能,對系統(tǒng)的性能起決定性的影響。微處理器一般也稱為CPU:微計算機(jī)是由微處理器、存儲器、I/O接口電路及系統(tǒng)總線組成的裸機(jī)系統(tǒng)。微計算機(jī)系統(tǒng)是在微計算機(jī)的基礎(chǔ)上配上相應(yīng)的外部設(shè)備和各種軟件,形成一個完整的、獨(dú)立的信息處理系統(tǒng)。三者之間是有很大不同的,微處理器是微型計算機(jī)的組成部分,而微型計算機(jī)又是微型計算機(jī)系統(tǒng)的組成部分。.什么叫總線?為什么各種微型計算機(jī)系統(tǒng)中普遍采用總線結(jié)構(gòu)?答:總線是模塊與模塊之間傳送信息的一組公用信號線。總線標(biāo)準(zhǔn)的建立使得各種符合標(biāo)準(zhǔn)的模塊可以很方便地掛在總線上,使系統(tǒng)擴(kuò)展和升級變得高效、簡單、易行。因此微型計算機(jī)系統(tǒng)中普遍采用總線結(jié)構(gòu)。.微型計算機(jī)系統(tǒng)總線從功能上分為哪三類?它們各自的功能是什么?答:微型計算機(jī)系統(tǒng)總線從功能上分為地址總線、數(shù)據(jù)總線和控制總線三類。地址總線用于指出數(shù)據(jù)的來源或去向,單向:數(shù)據(jù)總線提供了模塊間數(shù)據(jù)傳輸?shù)穆窂剑p向;控制總線用來傳送各種控制信號或狀態(tài)信息以便更好協(xié)調(diào)各功能部件的工作。第2章計算機(jī)中的數(shù)制與編碼一、填空題.寫出下列原碼機(jī)器數(shù)的真值;若分別作為反碼和補(bǔ)碼時,其表示的真值又分別是多少?⑴(01101110)二進(jìn)制原的=(+1101110)二進(jìn)制真值=(+110)卜進(jìn)制真值(01101110)進(jìn)制反碼=(+1101110):進(jìn)制其值=(+110)I進(jìn)制真值(01101110)進(jìn)制補(bǔ)碼=(+1101110):進(jìn)制我值=(+110)卜進(jìn)制真值⑵(10110101)進(jìn)制原碼=(-0110101).進(jìn)制衣值=(-53)卜進(jìn)制式值(10110101)進(jìn)制反碼=(11001010)進(jìn)制在值=(-74)十選制真值(10110101)進(jìn)制補(bǔ)。產(chǎn)(—1001011)進(jìn)制出值=(-75)上進(jìn)制出值.寫出下列二進(jìn)制數(shù)的原碼、反碼和補(bǔ)碼(設(shè)字長為8位)。)(+1010110)X值=(01010110)??=(01010110)反用=(01010110加)(-1010110)18*1^=(11010110)到1=(10101001)反網(wǎng)=(10101010),網(wǎng)[X]*=78H,貝|J[-X]樸=(88)Ho下面各二進(jìn)制數(shù)分別代表原碼、反碼和補(bǔ)碼時,其等效的十進(jìn)制數(shù)值為多少?(11111111):進(jìn)制版西=(—127)樣制真值(11111111)進(jìn)制反碼=(-0)t?進(jìn)制衣值(11111111) :進(jìn)制*n=(-1)J3》1女位(10000000):進(jìn)制kip產(chǎn)(+0)laMrttn(10000000)進(jìn)制反p產(chǎn)(—127)?aitijftffi(10000000):進(jìn)制,例=(-128)laMftffl知Xl=+0010100,Yl=+0100001,X2=-0010100,Y2=-0100001,試計算下列各式(設(shè)字長為8位)。(1)[Xi+YiN=[Xi]?+[¥|]?=00010100+00100001=00110101[X|-Y2]tt=[X|]?+[-Y2]?.=00010100+00100001=00110101[X2-Y2]tt=PC2]?+[-Y2]?=11101100+00100001=00001101[X2+Y2]tt=[X2]?+[Y2]#=11101100+11011111=11001011.將下列十六進(jìn)制數(shù)分別轉(zhuǎn)換成二進(jìn)制、八進(jìn)制、十進(jìn)制和BCD數(shù)。(5D.BA)|6=(0101,1101.1011,1010)2=(135.564)8=(93.7265625)=(1001,0011.0111,0010,0110,0101,0110,0010,0101)BCD(1001.0101,1)2=(9.34375)i0=(11.26)8=(9.58)16=(1001.0011,0100,0011,0111,0101)BCD.寫出下列字符的ASCH碼。⑴9=(39H)ascii碼(2)'C'=(43H)asciiw(3)=(24H)ascii碼(4)‘空格'=(20H)ascu用(5)b=(62H)ascii碼(6),回車,=(ODH)asciiH⑺‘換行'=(0AH)ascii(8)'報警符'=(07H)ASCII四二、選擇題.下列無符號數(shù)中最小的數(shù)是(A)。A.(01A5)hB.(1,1011,0101)bC.(2590)DD.(3764)O.下列有符號數(shù)中最大的數(shù)是(D)。A.1002HB.1001001100101100BC.25700D.9614D.在機(jī)器數(shù)(A)中,零的表示形式是唯一的。A.補(bǔ)碼B.原碼C.補(bǔ)碼和反碼 D.原碼和反碼.8位二進(jìn)制數(shù)補(bǔ)碼的數(shù)值表示范圍為(A)。A.-128~+127 B.-127~+127C.-129?+128D.-128?~F128
.若下列字符碼(ASCII)中有奇偶校驗位,但沒有數(shù)據(jù)錯誤,采用偶校驗的字符碼是(D)。C.11000001D.11001001B.帶符號數(shù)C.11000001D.11001001B.帶符號數(shù)一71的補(bǔ)碼D.帶符號數(shù)一57的原碼.B9H可以看成(ABD)。A.無符號數(shù)185C.卜進(jìn)制數(shù)99的組合BCD碼第3章微處理器及其結(jié)構(gòu)一、填空題8086/8088CPU執(zhí)行指令中所需操作數(shù)地址由.EU計算出16位偏移量部分送BIU,由@1最后形成一個工位的內(nèi)存單元物理地址。8086/8088CPU在總線周期的Ti時刻,用A19/S6?AWS3輸出20位地址信息的最高工位,而在其他時鐘周期,則輸出信息。8086/8088CPU復(fù)位后,從0FFFF0H單元開始讀取指令字節(jié),一般這個單元在ROM區(qū)中,在其中設(shè)置一條跳轉(zhuǎn)指令,使CPU對系統(tǒng)進(jìn)行初始化。8086系統(tǒng)的存儲體系結(jié)構(gòu)中,1MB存儲體分_2_個庫,每個庫的容量都是512K字節(jié),其中和數(shù)據(jù)總線D”?Da相連的庫全部由奇地址單元組成,稱為高位字節(jié)庫,并用?巫作為此庫的選通信號。8086/8088系統(tǒng)中,可以有64K個段起始地址,任意相鄰的兩個段起始地址相距16個存儲單元。用段基值及偏移量來指明內(nèi)存單元地址的方式稱為邏輯地址。通常8086/8088CPU中當(dāng)EU執(zhí)行一條占用很多時鐘周期的指令時,或者在多處理器系統(tǒng)中在交換總線控制時會出現(xiàn)eiL狀態(tài)。8086CPU使用」或根地址線訪問I/O端口,最多可訪問64K個字節(jié)端口,使用20根地址線訪問存儲單元,最多可訪問1M個字節(jié)單元。CPU取一條指令并執(zhí)行該指令的時間稱為指令周期,它通常包含若干個上線_周期,而后者又包含有若干個時鐘周期。二、單項選擇題.某微機(jī)最大可尋址的內(nèi)存空間為16MB,其CPU的地址總線至少應(yīng)有(E)條。A.26B.28C.20D.22E.248086/8088CPU的RESET引腳至少應(yīng)維持(A)個時鐘周期的正脈沖寬度才能有效復(fù)位。A.4B.5C.2D.33.當(dāng)RESET信號進(jìn)入高電平狀態(tài)時,將使8086/8088CPU的(D)寄存器初始化為OFFFFH。A.SSB.DSC.ESD.CS8086/8088CPU與慢速存儲器或I/O接口之間進(jìn)行數(shù)據(jù)傳輸,為了使傳送速度匹配,有時需要在(C)狀態(tài)之間插入若干等待周期TW。A.T1和T2B.T2和T3C.T3和T4D.隨機(jī)8086/8088CPU中標(biāo)志寄存器的主要作用是(D)。A.檢查當(dāng)前指令的錯誤 B.糾正當(dāng)前指令執(zhí)行的結(jié)果與錯誤C.決定是否停機(jī) D.產(chǎn)生影響或控制某些后續(xù)指令所需的標(biāo)志8086最小模式下的存儲器讀周期中地址鎖存發(fā)生在總線周期的(A)時刻。A.T1B.T2C.T3D.T4指令指針I(yè)P的作用是(A)。A.保存將要執(zhí)行的下一條指令的地址B.保存CPU要訪問的內(nèi)存單元地址C.保存運(yùn)算器運(yùn)算結(jié)果內(nèi)容 D.保存正在執(zhí)行的一條指令8086CPU有兩種工作模式,最小模式的特點是(A)。A.CPU提供全部控制信號B.由編程進(jìn)行模式設(shè)定C.不需要8282收發(fā)器 D.需要總線控制器8288三、簡答題8086/8088CPU分為哪兩個部分?如何協(xié)調(diào)工作?答:EU是執(zhí)行部件,主要的功能是執(zhí)行指令和形成有效地址。BIU是總線接口部件,與片外存儲器及I/O接口電路傳輸數(shù)據(jù),主要功能是形成實際地址、預(yù)取指令和存取操作數(shù)。EU經(jīng)過BIU進(jìn)行片外操作數(shù)的訪問,BIU為EU提供將要執(zhí)行的指令。EU與BIU可分別獨(dú)立工作,當(dāng)EU不需BIU提供服務(wù)時,BIU可進(jìn)行填充指令隊列的操作。8086/8088CPU的地址總線有多少位?其尋址范圍是多少?答:8086/8088CPU的地址總線共20位,最大可尋址1MB空間。8086/8088CPU使用的存儲器為什么要分段?怎么分段?答:8086/8088為16位CPU,其內(nèi)部的ALU、相關(guān)的地址寄存器(如SP、IP以及BX、BP、SLDI)等都是16位的,因而對存儲器地址的處理也只能是16位操作,即8086/8088的直接尋址能力在64KB范圍內(nèi)。而實際上8086/8088有20條地址線,它的最大尋址空間為1MB。這就產(chǎn)生了一個矛盾,即如何用16位的地址寄存器去表示一個20位的存儲器物理地址?實際使用的解決辦法是:將1MB大小的存儲空間分為若干“段”,每段不超過64KB。這樣,一個20位的物理地址就可以用“16位段基址:16位偏移量”的形式(稱為邏輯地址)來表示了,其中段地址存放在8086/8088的段寄存器中。8086/8088CPU中有幾個通用寄存器?有幾個變址寄存器?有幾個指針寄存器?通常哪幾個寄存器亦可作為地址寄存器使用?答:8086/8088CPU中共有:8個16位的通用寄存器AX、BX、CX、DX、BP、SP、SkDI:2個變址寄存器SI、DI;2個指針寄存器BP、SP;其中BX、BP、SLDI亦可作地址寄存器。Intel8086與8088有何區(qū)別?答:8086與8088的區(qū)別主要表現(xiàn)在以下幾個方面:第一、8086的指令隊列可以容納6個字節(jié),每個總線周期在存儲器中取出2個字節(jié)指令代碼填入隊列。而8088只能容納4個字節(jié),且每個總線周期只能取出1個字節(jié)指令代碼。第二、8086外部數(shù)據(jù)總線寬度為16位,8088外部數(shù)據(jù)總線寬度只有8位。注意:8086和8088外部數(shù)據(jù)總線的寬度不同將導(dǎo)致擴(kuò)展主存儲器及輸入/輸出接口時系統(tǒng)地址線和數(shù)據(jù)線連接方式的不同。第三、其他不同的引腳定義:(1)ADis?ADo,在8086中為地址/數(shù)據(jù)復(fù)用,而在8088中ADis?ADk改為A15?As只作地址線用:(2)34、28號引腳定義不同。8086/8088CPU工作在最小模式時:當(dāng)CPU訪問存儲器時,要利用哪些信號?當(dāng)CPU訪問外設(shè)接口時,要利用哪些信號?答:8086/8088CPU工作在最小模式時,若訪問存儲器,需用到以下信號:M/7d、ALE、DT/R.DEN、READY、BHE.WR,RD.ADo?AD15、A19/S6?A16/S3。若訪問外設(shè),需用到以下信號:M/而、ALE、DT/R.DEN、READY、禰、而、ADo?AD15。試指出下列運(yùn)算后的各個狀態(tài)標(biāo)志,并說明進(jìn)位標(biāo)志和溢出標(biāo)志的區(qū)別:(1)1278H+3469H答:CF=OAF=1ZF=OSF=OOF=0PF=154E3H-27A0H答:CF=OAF=OZF=OSF=OOF=0PF=O3881H+3597H答:CF=OAF=OZF=OSF=OOF=0PF=1O1E3H-O1E3H答:CF=OAF=OZF=1SF=OOF=0PF=1其中,進(jìn)位標(biāo)志CF用于判別無符號數(shù)運(yùn)算是否超出數(shù)的表示范圍,而溢出標(biāo)志OF用于判別帶符號數(shù)運(yùn)算是否超出數(shù)的表示范圍。奇偶標(biāo)志PF只能判斷結(jié)果低8位中力”的個數(shù)為奇數(shù)還是偶數(shù)。.什么是邏輯地址?什么是物理地址?它們之間有什么聯(lián)系?各用在何處?答:邏輯地址由兩個16位的部分即段基址和偏移量組成,一般在程序中出現(xiàn)的地址都表示為邏輯地址形式;物理地址是一個20位的地址,它是唯一-能代表存儲空間每個字節(jié)單元的地址,一般只出現(xiàn)在地址總線上。由于8086/8088CPU中的寄存器只有16位長,所以程序不能直接存放20位的物理地址,而必須借助邏輯地址,即用兩個16位的寄存器來表示物理地址。他們之間的關(guān)系是:物理地址=段基址*16+偏移量;另外,一個物理地址可對應(yīng)多個邏輯地址。.設(shè)現(xiàn)行數(shù)據(jù)段位于存儲器0B0000H?0BFFFFH單元,DS段寄存器內(nèi)容為多少?答:DS段寄存器內(nèi)容為0B000H。.在8086中,邏輯地址、偏移地址、物理地址分別指的是什么?答:邏輯地址是在程序中對存儲器地址的一種表示方法,由段基址和段內(nèi)偏移地址兩部分組成,都是16位的二進(jìn)制代碼,如1234H:0088Ho偏移地址是指段內(nèi)某個存儲單元相對該段首地址的差值。物理地址是8086芯片引線送出的20位地址碼,物理地址=段基址*16+偏移地址,用來指出一個特定的存儲單元。.給定一個存放數(shù)據(jù)的內(nèi)存單元的偏移地址是20C0H,(DS)-0C0E0H,求出該內(nèi)存單元的物理地址。答:物理地址:0C2EC0H?.8086/8088為什么采用地址/數(shù)據(jù)引線復(fù)用技術(shù)?答:考慮到芯片成本和體積,8086/8088采用40條引線的封裝結(jié)構(gòu)。40條引線引出8086/8088的所有信號是不夠用的,采用地址/數(shù)據(jù)線復(fù)用引線方法可以解決這一矛盾,從邏輯角度,地址與數(shù)據(jù)信號不會同時出現(xiàn),二者可以分時復(fù)用同一組引線。.怎樣確定8086的最大或最小工作模式?
答:引線MN/加的邏輯狀態(tài)決定8086的工作模式,MN/加引線接高電平,8086被設(shè)定為最小模式,MN/應(yīng)引線接低電平,8086被設(shè)定為最大模式。.8086基本總線周期是如何組成的?答:基本總線周期由4個時鐘(CLK)周期組成,按時間順序定義為Tl、T2、T3、T4。.在基于80口微計算機(jī)系統(tǒng)中,存儲器是如何組織的?存儲器是如何與處理器總線連接的?麗信號起什么作用?答:8086為16位微處理器,可訪問1M字節(jié)的存儲器空間;1M字節(jié)的存儲器分為兩個512K字節(jié)的存儲體,分別命名為偶存儲體和奇存儲體;偶體的數(shù)據(jù)線連接D7~D0,“體選”信號接地址線A0;奇體的數(shù)據(jù)線連接D15?D8,“體選”信號接麗信號:A0信號有效時允許訪問偶體中的低字節(jié)存儲單元,麗信號有效時允許訪問奇體中的高字節(jié)存儲單元,實現(xiàn)8086的低字節(jié)訪問、高字節(jié)訪問及字訪問。.有一個由20個字組成的數(shù)據(jù)區(qū),其起始地址為610AH1CE7H。試寫出該數(shù)據(jù)區(qū)首末單元的實際地址PAo首單元地址:610A0H+1CE7H=62D87H末單元地址:62D87H+27H=62DAEH.有兩個16位的字31DAH、5E7FH,它們在8086系統(tǒng)存儲器中的地址為00130H和OO135H,試畫出它們的存儲器示意圖。內(nèi)容地址
00130H
00131H
00I32H
00133H
00134H
00I35H
00136H內(nèi)容.試說明8086CPU的控制引腳ALE的作用。答:8086的低位地址線與數(shù)據(jù)線復(fù)用,為保證地址線維持足夠的時間,需使用ALE信號將低位地址線通過鎖存器保存,以形成系統(tǒng)地址總線。第4章8086/8088CPU指令系統(tǒng)一、判斷題TOC\o"1-5"\h\z.MOVAX,[BP]的源操作數(shù)物理地址為16x(DS)+(BP)? (x).OUTDX,AL指令的輸出是16位操作數(shù)。 (x).不能用立即數(shù)給段寄存器賦值。 (由.所有傳送指令都不影響PSW寄存器的標(biāo)志位。 (x).堆棧指令的操作數(shù)均為字。.段內(nèi)轉(zhuǎn)移指令執(zhí)行結(jié)果要改變IP,CS的值。 (x)二、單項選擇題.寄存器間接尋址方式中,操作數(shù)在(C)中。A.通用寄存器B.I/O端口C.存儲單元 D.段寄存器.(A)尋址方式的跨段前綴不可省略。A.DS:[BP]B.DS:[SI]C.DS:[Di]D.SS:[BP].假設(shè)(SS)=2000H,(SP)=0012H,(AX)=1234H,執(zhí)行PUSHAX后,(SP)=(C)oA.0014HB.0011HC.001OH D.000FH.用BP作基址變址尋址時,操作數(shù)所在的段是當(dāng)前(C)。A.數(shù)據(jù)段B.代碼段C.堆棧段D.附加段.已知(IP)=1000H,CF=0,則執(zhí)行指令JNCShortlabel后,下列各數(shù)中哪一個是可能的IP值?(B)(A)OFFFFH(B)OFFEH(C)10FEH(D)1100H.執(zhí)行下列指令后,(AX)=(A)。MOVAX,1234HMOVCL,4ROLAX,CLDECAXMOVCX,4MULexHLTA.8D00HB.9260HC.8CA0HD.0123H.設(shè)(AL)=-68,(BL)=86,執(zhí)行SUBAL,BL指令后,正確的結(jié)果是(C).A.CF=1B.SF=1C.OF=1D.ZF=1.已知(SI)=0004H,(DS)=8000H,(80004H)=02H,(80005H)=C3H。指令LEAAX,[SI]執(zhí)行后(AX)=(C)?A.0002HB.0005HC.0004HD.C302H.條件轉(zhuǎn)移指令JNE的條件是(C)oA.CF=OB.CF=1C.ZF=OD.ZF=1.在8086中,(BX)=0282H,且題中指令已在指令隊列中,則執(zhí)行INCBYTEPTR(BX)指令需要的總線周期為(C)。A.0B.1 C.2D.3三、多項選擇題.下列指令中源操作數(shù)使用寄存器尋址方式的有(BF)。A.MOVBX,BUF[Si] B.ADD[SI+50],BXC.SUBAX,2D.CMPAX,DISP[DI] E.MULVAR[BX] F.PUSHCX.將累加器AX的內(nèi)容清零的正確指令是(BCD)。A.CMPAX,AXB.SUBAX,AXC.ANDAX,0D.XORAX,AX3.正確將字變量WORDVARR偏移地址送寄存器AX的指令是(CD)。A.MOVAX,WORDVARRB.LESAX,WORDVARRC.LEAAX,WORDVARRD.MOVAX,OFFSETWORDVARR4.調(diào)用CALL指令可有(ABDE)。A.段內(nèi)直接B.段內(nèi)間接C.短距離(SHORT)D.段間直接E.段間間接8086指令的操作數(shù)可能有(ABCD)。A.0B.1C.2D.3四、填空題.與指令MOVBX,OFFSETBUF功能相同的指令是LEABX,BUF。.假設(shè)(BX)=0449H,(BP)=0200H,(SI)=0046H,(SS)=2F00H,(2F246H)=7230H則執(zhí)行XCHGBX,[BP+Sl]指令后,(BX)=7230H-.執(zhí)行下列指令序列后,完成的功能是將(DX,AX)的值除以16。MOVCX,4NEXT:SHRDX,1RCRAX,1LOOPNEXT.已知(AL)=01011101B,執(zhí)行指令NEGALB,再執(zhí)行CBW后,(AX)=OFFA3H 、.在數(shù)據(jù)傳送類指令中,只有SAHF和POPF兩條指令會影響標(biāo)志位的侑,其中指令POPF是唯一可以改變TF標(biāo)志的指令。.設(shè)有100個字節(jié)數(shù)據(jù)(補(bǔ)碼),存放在數(shù)據(jù)段中EA=2000H的存儲單元中。以下程序應(yīng)該從該數(shù)據(jù)區(qū)中找出最小的一個數(shù)據(jù),并存入EA=2100H單元中,請將下面程序補(bǔ)充完整。MIN:MOVBX,2000HMOVAL,[BX]MOVCX,99LOOP1:INCBXCMPAL,[BX]JLELOOP2MOVAL,[BX]LOOP2:DECCXJNZLOOP1MOV[2100H],AL7.MOVAX,ES:[BX][SI]中,源操作數(shù)的物理地址計算式是(ES)>16+(BX)+(SI)。五、綜合題I.請指出以下各指令的源、目的操作數(shù)所使用的尋址方式。MOVSI,21OOHSBBD1SP[BX],7AND[DI],AXORAX,[609EH]MOV[BX+DI+30H],CXPUSHES:[BP]CALLDISP[DI]答:(1)源操作數(shù):立即數(shù)尋址;目的操作數(shù):寄存器尋址(2)源操作數(shù):立即數(shù)尋址;目的操作數(shù):(帶位移量的)基址尋址(3)源操作數(shù):寄存器尋址;目的操作數(shù):變址尋址(4)源操作數(shù):直接尋址; 目的操作數(shù):寄存器尋址(5)源操作數(shù):寄存器尋址:目的操作數(shù):(帶位移量的)基址變址尋址(6)源操作數(shù):帶段超越的基址尋址;目的操作數(shù):隱含尋址(7)只有一個操作數(shù),為(帶位移量的)變址尋址2.請指出下列各條指令的錯誤,并改正。(1)MOV[100],23H(2)ADDAX,[BX+BP+6](3)PUSHDL(4)INAX,[3FH](5)OUT3FFH,AL(6)LESSS,[SI]
(7)POP[AX](8)IMUL4CH(9)SHLBX,(10)INT300(11)XCHGDX,OFFFH(12)MOVAH,BX(13)MOV[BX],ES:AX(14)MOVAX,OFFSET[SI](15)MOVCS,AX(16)MOVDS,ES(17)MOVDS,1000H答:(1)不允許直接向段寄存器送立即數(shù),可改為:MOVAX,1000HMOVDS,AX(2)該指令在語法上是對的,即可以把一個立即數(shù)送入一個存儲單元;但是如果考慮實際編譯,則第一操作數(shù)前應(yīng)加上BYTEPTR或WORDPTR說明,否則匯編程序會因不能確定操作數(shù)長度而指示出錯。可改為:MOVBYTEPTR[100],23H(3)不能同時使用兩個基址寄存器BX、BP進(jìn)行間接尋址,可改為:ADDAX,[BX+DI+6](4)堆棧操作應(yīng)以字為單位進(jìn)行,而DL是一個字節(jié)??筛臑椋篜USHDX(5)在輸入/輸出指令中,8位端口地址應(yīng)直接寫在操作數(shù)處??筛臑椋篒NAX,3FH(6)端口地址3FFH已超出8位二進(jìn)制表示范圍,16位端口地址應(yīng)存于DX??筛臑椋篗OVDX,3FFHOUTDX,ALLES指令的目操作數(shù)應(yīng)該是通用寄存器,不能是段寄存器??筛臑椋篖ESAX,[SI]AX不能用于間接尋址,間接尋址只能用BX、BP、SLD1四個寄存器之一??筛臑椋篜OP[BX](9)立即數(shù)不能做乘法指令的操作數(shù),可改為:MOVBL,4CHIMULBL(10)當(dāng)邏輯移位的次數(shù)大于1時,應(yīng)該用CL指示次數(shù)。可改為:MOVCL,MOVCL,5SHLBX,CL(11)操作數(shù)300>255,已超出有效的中斷類型碼范圍。XCHG指令不允許立即數(shù)做它的操作數(shù)??筛臑椋篗OV CX,OFFFHXCHG DX,CX(13)源、目的字長不一致(14)在8086尋址方式中,AX不能作為基址寄存器使用,而且源、目的不能同時為存貯器尋址方式OFFSET只用于簡單變量,應(yīng)去掉CS不能作為目的寄存器(17)段寄存器之間不能直接傳送數(shù)據(jù).設(shè)若標(biāo)志寄存器原值為0A11H,(SP)=0060H,(AL)=4。下列幾條指令執(zhí)行后,標(biāo)志寄存器、AX、SP的值分別是多少?PUSHFLAHFXCHGAH,ALPUSHAXSAHFPOPF答:指令執(zhí)行后標(biāo)志寄存器的值為0411H,AX=0411H,SP=005EHo.假如在程序的括號中分別填入指令:(l)LOOPL20LOOPNEL20LOOPEL20試說明在三種情況下,當(dāng)程序執(zhí)行完后,AX、BX、CX、DX四個寄存器的內(nèi)容分別是什么?BEGIN:MOVMOVAX,01BX,02MOVDX,03MOVCX,04L20:INCAXADDBX,AXSHRDX,1()TOC\o"1-5"\h\z答案: (1)(AX) =5 (BX) =16 (CX)=0 (DX) =0(AX) =3 (BX) =7 (CX)=2 (DX) =0(AX) =2 (BX) =4 (CX)=3 (DX) =1.變量N1和N2均為2字節(jié)的非壓縮BCD數(shù)碼,請寫出計算N1與N2之差的指令序列。答案:MOVAX,0MOVAL,N1SUBAL,N2AASMOVDL,ALMOVAL,N1+1SBBAL,N2+1AASMOVDH,AL.在已學(xué)的指令中,可實現(xiàn)累加器清0的單條指令有哪些?比較它們的功能。答:(1)MOVAX,0;僅將累加器清0,不會影響任何標(biāo)志位SUBAX,AX;累加器清0的同時影響所有狀態(tài)標(biāo)志,具體地有:ZF、PF置1,CF、AF、SF、OF均清0ANDAX,0 ;將累加器清0,ZF、PF置1,CF、OF、SF清0XORAX,AX ;將累加器清0,ZF、PF置1,CF,OF、SF清0.已知(DS)=2000H,有關(guān)的內(nèi)存單元值為:(21000H)=00H,(21001H)=12H,(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,(23401H)=30H,(23600H)=60H,(23601H)=30H,符號COUNT的偏移地址為1200H?執(zhí)行下列指令后,寄存器AX、BX、SI的值分別是多少?MOVBX,OFFSETCOUNTMOVSI,[BX]MOVAX,COUNT[SI][BX]答:執(zhí)行結(jié)果為(BX)=1200H,(SI)=1000H,(AX)=3040H。.設(shè)若內(nèi)存單元DATA在數(shù)據(jù)段中偏移量為24C0H處,24C0H?24c3H單元中依次存放著55H、66H、77H、88H。下列幾條指令執(zhí)行后,寄存器AX、BX、CL、SLDS的值分別是多少?MOVAX,DATALEASI,DATAMOVCL,[SI]LDSBX,DATA答:執(zhí)行結(jié)果為(AX)=6655H,(BX)=6655H,(CL)=55H,(SI)=24C0H,(DS)=8877Ho.若(AX)=26D3H,(CX)=7908H,CF=1,執(zhí)行下列指令后,寄存器AX、CX的值分別是多少?CF=?OF=?TOC\o"1-5"\h\zSAL CH, 1RCR AX, CLROL AL, 1答:執(zhí)行結(jié)果為(AX)=0A64CH,(CX)=0F208H,CF=OF=0。.已知有程序段如下:MOVAL,35HMOVDL,ALANDDL,OFHANDAL,OFOHMOVCL,4SHRAL,CLMOVBL,10MULBLADDAL,DL執(zhí)行之后,AL的值等于多少?該程序段完成了什么功能?答:程序段執(zhí)行后(AL)=23Ho該程序段實現(xiàn)了將AL中的1個組合BCD碼轉(zhuǎn)換為十六進(jìn)制數(shù)并存回AL中的功能。.下面的程序執(zhí)行后,DX、AX的值分別是多少?;以X為首址的字單元中的數(shù)據(jù)依次為1234H、5678H;以Y為首址的字單元中的數(shù)據(jù)依次為8765H、4321HLEASI,XLEADI,YMOVDX,[SI4-2]MOVAX,XADDAX,XADCDX,[SI+2]CMPDX,[DI+2]JLL2CMPAX,YJLLIJMPEXITLI:MOVAX,1JMPEXITL2:MOVAX,2EXIT: 答:執(zhí)行結(jié)果為(AX)=2,(DX)=0ACF0Ho.設(shè)VAR字單元的值為x,Fl字單元的值為y,試編程按以下要求給y賦值:.2 x>30y=y0 30>x>l1—2 x<l答:一種可能的程序段實現(xiàn)如下:MOVAX,VAR;AX<-xCMPAX,30JGPLUS2;x>30,則轉(zhuǎn)PLUS2CMPAX,1JLMIN2;x<l,則轉(zhuǎn)M1N2MOVFl,0 ; 30>x>l,y=0JMPGOPLUS2:MOVFl,2 ;y=2JMPGOMIN2:MOVFl,-2;y=-2或OOFEHGO:…… ;后續(xù)處理簡析:本例中并未說明VAR字節(jié)單元是帶符號數(shù)還是無符號數(shù),讀者在使用判斷轉(zhuǎn)移指令時可任意選用。若當(dāng)作帶符號數(shù),應(yīng)使用JG、JL、JGE、JLE等指令,如參考程序;若當(dāng)作無符號數(shù),則應(yīng)使用JA、JB、JAE、JBE等指令。第5章匯編語言程序設(shè)計一、填空題.段定義偽指令語句用SEGMENT語句我樂開始,以ENDS語句仍指結(jié)束。.ARRAYDW10DUP(5DUP(4DUP(20H,40H,60H))語句執(zhí)行后共占1200字節(jié)存儲單元。.匯編語句中,一個過程有NEAR和FAR兩種屬性。NEAR屬性表示主程序和子程序在同一個代碼段中,F(xiàn)AR屬性表示主程序和子程序不在同一個代碼段中。.DOS系統(tǒng)功能號應(yīng)放在AH寄存器中。.子程序又稱過程,它可以由PROC語句定義,由ENDP語句結(jié)束,屬性可以是NEAR或FAR。.假設(shè)VAR為數(shù)據(jù)段中已定義的變量,則指令MOVBX,OFFSETVAR中源操作數(shù)的尋址方式是立即數(shù)尋址 。二、選擇題EXE文件產(chǎn)生在(D)之后。A.匯編B.編輯C.用軟件轉(zhuǎn)換D.連接.變量定義的偽指令助記符有(ABCEF).A.DBB.DWC.DDD.DFE.DQF.DT.主程序與子程序之間傳遞參數(shù)可通過(ABC)進(jìn)行。A.堆棧B.存儲器單元C.通用寄存器D.指令隊列 E.其他.計算機(jī)系統(tǒng)軟件中的匯編程序是一種(C)。A.匯編語言程序B.編輯程序C.翻譯程序D.將高級語言轉(zhuǎn)換成匯編程序的程序.若主程序段中數(shù)據(jù)段名為DATA,對數(shù)據(jù)段的初始化操作應(yīng)為(B)。A.MOVAX,DATAB.MOVAX,DATAMOVES,AX MOVDS,AXC.PUSHDS D.MOVDS,DATA6.8086宏匯編源程序中,若BUFF是字變量名,則執(zhí)行指令MOVBX,BUFF后,BX中的值為BUFF單元的(A)oA.字?jǐn)?shù)據(jù)值B.變量類型值C.段基址D.段內(nèi)偏移量三、綜合題列標(biāo)號為什么是非法的?(l)GET.DATA1_NUMTEST-DATARETNEWITEM答案:(1)因為T只允許是標(biāo)號的第一個字符(2)第一個字符不能為數(shù)字(3)不允許出現(xiàn)一(4)不能是保留字,如助記符(5)不能有空格.已知數(shù)據(jù)和符號定義TOC\o"1-5"\h\zAl DB ?A2 DB 8KI EQU 100判斷下列指令的正誤,并說明錯誤指令的原因。(1)MOVKI,AXMOVA2,AHCMPAl,A2MOVBX,KIMOV[BX],DXK1EQU200答:(1)錯誤。KI是符號,在此處相當(dāng)于立即數(shù)100,故不能做目的操作數(shù)。(2)正確。(3)錯誤。Al、A2都是字節(jié)變量,相當(dāng)于兩個存儲器單元,故不能同時出現(xiàn)在一條指令中直接進(jìn)行比較。(4)正確。(5)錯誤。用EQU定義的符號不能重新賦值,除非已用PURGE解除了原值。.若數(shù)據(jù)段中有定義NUM1EQU23HNUM2DW 0則指令MOVNUM2,NUM1的源、目操作數(shù)的尋址方式以及指令執(zhí)行后NUM2+1單元的內(nèi)容分別是什么?答:指令MOVNUM2,NUM1的源操作數(shù)使用立即數(shù)尋址,目的操作數(shù)使用直接尋址。指令執(zhí)行后NUM2+1單元的內(nèi)容是0。4.已知某數(shù)據(jù)段從物理地址03000H處開始,定義如卜.:DSEGSEGMENTORG2000HAlDD2DUP(7,1,?)A2DB10DUP(0,4,3DUP(2),5)CNTEQU20HA3DW100DUP(?)DSEGENDS請分別用分析運(yùn)算符SEG、OFFSET.LENGTH.SIZE,TYPE求出Al、A2、A3的段基址、偏移量、類型及它們的LENGTH、SIZE。
地址VARI02H0006H答:(SEGAl)=0300H,(OFFSETAl)12H0007H=2000H,(TYPEAl)=4,0008H(LENGTHAl)=2,(SIZEAl)0009HVAR29AHOOOAH=2x3x4=24;56H0O0BH(SEGA2)=0300H,(OFFSETA2)?£0O0CH=2018H,(TYPEA2)=1,B'OOODH(LENGTHA2)=10,(SIZEA2)—=10x6x1=60;(SEGA3)=0300H,(OFFSETA3)=2054H,(TYPEA3)=2,(LENGTHA3)=100,(SIZEA3)=100x2=200(LENGTHA3)=100,(SIZEA3)=100x2=200.下面兩個數(shù)據(jù)段中偏移地址為10H和11H的兩個存儲單元中的數(shù)據(jù)一樣嗎?DTSEGSEGMENTORG10HDTSEGSEGMENTORG10HDATA1DB72HDB04HDTSEGENDSDTSEGSEGMENTORG10HDATA1DW7204HDTSEGENDS為什么?答案:不一樣。分別是72H,04H和04H,72H。存儲字時低8位存在低字節(jié),高8位存在高字節(jié)。.已知符號定義語句如下:TOC\o"1-5"\h\zALPHA EQU 100BETA EQU 25GAMMA EQU 2分別求下列各表達(dá)式的值。ALPHA*4GTBETAALPHAMODGAMMA+BETA(BETA/3)LE5ALPHAANDBETAGAMMAXOR(BETAEQ25)答:(1)ALPHA*4GTBETA=100*4GT25=OFFFFHALPHAMODGAMMA+BETA=100MOD2+25=25(BETA/3)LE5=(25/3)LE5=0ALPHAANDBETA=100AND25=64H&19H=0GAMMAXOR(BETAEQ25)=2十(25EQ25)=OFFFDH.已知數(shù)據(jù)段定義如下:DSEGSEGMENTORG6VARIDB2,18ORG$+2VAR2DW569AHCONTEQUS-VAR2DB'AB'DSEGENDS用示意圖說明該數(shù)據(jù)段的分配情況。答:有關(guān)存儲單元的內(nèi)容如下圖所示。.判斷以下說法是否正確,如有錯,請說明原因并改正。(1)偽指令在匯編過程中不會產(chǎn)生二進(jìn)制代碼。(2)宏和過程的相同之處是都可用于簡化源程序書寫、精簡目標(biāo)代碼。(3)在計算機(jī)中,高級語言通常需要轉(zhuǎn)換為匯編語言后才能執(zhí)行。(4)匯編語言程序上機(jī)一般包括編輯、匯編、鏈接和調(diào)試幾個步驟。答:(1)正確。 (2)錯誤。宏不能精簡目標(biāo)代碼。(3)錯誤。高級語言程序經(jīng)編譯或解釋后直接轉(zhuǎn)換為目標(biāo)代碼。(4)正確。.執(zhí)行下列指令后,AX寄存器中的內(nèi)容是什么?TABLEDW10,20,30,40,50ENTRYDW3MOVBX,OFFSETTABLEADDBX,ENTRYMOVAX,[BX]答:(AX)=lE00.指出下列程序中的錯誤:STAKSGSEGMENTDB100DUP(?)STASGENDS
DTSEGSEGMENTDATA1DB?DTSEGENDCDSEGSEGMENTMAINPROCFARSTART:MOVDS,DATSEGMOVAL,34HADDAL,4FHMOVDATA,ALSTARTENDPCDSEGENDSEND答案:改正后:STAKSGSEGMENTDB100DUP(?)STAKSGENDSDTSEGSEGMENTDATADB?DTSEGENDSCDSEGSEGMENTMAINPROCFARASSUMECS:CDSEQDS:DTSEGSS:STAKSGSTART:MOVAX、DTSEGMOVDS,AXMOVAL,34HADDAL,4FHMOVDATA1,ALMOVAH,4cHINT21HMAIN ENDPCDSEGENDSENDSTART.請寫出上述兩條指令執(zhí)行后,BX寄存器中的內(nèi)容。DATASEGMENTTABLE_ADDRDW1234HDATAENDS?IMOVBX,TABLE_ADDRLEABX,TABLE_ADDR答案:MOVBX,TABLE_ADDR ;執(zhí)行后(BX)=1234H
LEABX,TABLEADDR ;執(zhí)行后(BX)=OFFSETTABLE_ADDR.讀下面程序,在其中的空處添上適當(dāng)內(nèi)容。該程序完成了什么功能?程序運(yùn)行后,變量RS的值是多少?DATABUFSEGMENTDB-13,24,5,-62DB77,20,-7,145,0CNTRSDATASTACKDB$-BUFDB0ENDSSEGMENTPARASTACKDB256DUP(?)STACKCODEENDSSEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTARTPROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DATAMOV DS, AXLEA BX, BUFMOV CH, 0MOVCL, LP:MOV AL,[BX]TEST AL,80HJE CONTINC RSCONT:INC BXLOOPLPRETSTARTCODEENDPENDSEND START答:程序空處可填CNT,字節(jié)變量RS的最后結(jié)果是04H。該程序?qū)崿F(xiàn)的功能是:統(tǒng)計數(shù)據(jù)段中以BUF為首址的帶符號字節(jié)數(shù)據(jù)表中負(fù)數(shù)的個數(shù),CNT為表中所有數(shù)據(jù)的個數(shù),即表的長度。需要注意的是:十進(jìn)制數(shù)據(jù)“145”在以二進(jìn)制帶符號字節(jié)數(shù)據(jù)形式存放時相當(dāng)于“-111”。.試編寫一個匯編語言程序段,要求對鍵盤輸入的小寫字母用大寫字母顯示出來。答案:abc:mov ah,lint 21hcmp al,'a'jb stopcmp al,'z'ja stopsub al,20hmov dl,almov ah,2int 21hjmp abcstop: ret.編寫程序,比較兩個字符串STRING1和STRING2所含字符是否完全相同,若相同則顯示“MATCH”,若不同則顯示“NOMATCH”。答案:datareasegmentstring!db'asfioa'string2db'xcviyoaFmessldb'MATCH','$'mess2db'NOMATCH',、'datareaendsprognamsegmentmainprocfarassumecs:prognam,ds:datareastart:pushdssubax,axpushax ;返回DOSmovax,datareamovds,axmoves,ax ;賦初值begin:movex,string2-string1movbx,messl-string2cmpbx,cx ;比較兩字符串的長度jnzdispnolea dx,addr;若長度相同23leasi,string1leadi,string2;地址指針賦初值repecmpsb;比較jnedispnomovah,9;相同,顯示MATCHleadx,messlint21hretdispno:movah,9?不同,顯示NOMATCHleadx,mess2int21hretmainendpprognamendsendstart.編寫一個完整的源程序,將數(shù)據(jù)35、-27、-13、6、-47、52、9、-3中的正數(shù)放入以BUFFER為首址的數(shù)據(jù)緩沖區(qū)中。答:一種可能的程序如下實現(xiàn):DATASEGMENTBLOCKDB 35,-27,一13,6,-47,52,9,-3COUNTEQU $-BLOCKBUFFERDB COUNTDUP(?)DATASTACKENDSSEGMENTPARASTACK'STACK'STACKCODEDW 40DUP(?)ENDSSEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKBEGIN:MOVAX,DATAMOV DS,AXMOV ES,AX需用STOS串操作指令MOVCX,COUNTLEA SLBLOCK源數(shù)據(jù)區(qū)指針LEA DI,BUFFER正數(shù)存放區(qū)指針AGAIN:CLDLODSBTESTAL,80H自動增量取源數(shù)據(jù),并修改SI取符號位,不影響ALGO:JS GOSTOSBLOOPAGAIN符號位=1,是負(fù)數(shù),不存存正數(shù)并修改DIMOVAH,4CH退出循環(huán),返回DOSCODEINT 21HENDSEND BEGIN
.從內(nèi)存單元BUF開始的緩沖區(qū)中有7個8位無符號數(shù),依次為13H、0D8H、92H、2AH、66H、OEOH、3FH。編程找出它們的中間值并放入RES單元,且將結(jié)果以“(RES)=?”的格式顯示在辨幕上。答:一種可能的程序如卜實現(xiàn):DATASEGMENTBUFDB13H,0D8H,92H,2AH,66H,OEOH,3FHRESDB?;中間數(shù)的存放單元STRDB€(RES)=,STRIDB9 9y;結(jié)果字符串DATAENDSSSEGSEGMENTPARASTACK'SSEG'DB100DUP(?)SSEGENDSCODESEGMENTASSUMECS:CODE,SS:SSEG,DS:DATA,ES:DATAMAINPROCFAR;主程序PUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVES,AX:有STOS指令,需用ESMOVCX,6;外循環(huán)次數(shù),比6次AGN:MOVSI,OFFSETBUFMOVDI,SIINCDI;SkDI指向相鄰2數(shù)MOVDX,6:內(nèi)循環(huán)次數(shù),比6次AGNI:MOVAL,[SI]CMPAL,[DI];兩個無符號數(shù)相比較JBUNCH;小于則轉(zhuǎn),不互換EXCH:XCHGAL,[DI]:前1單元較大,則互換MOV[SI],AL;大數(shù)放在后面UNCH:INCSI;修改指針,指向下一個數(shù)INCDIDECDXJNZAGNI:未處理完,繼續(xù)內(nèi)循環(huán)LOOPAGN;外循環(huán)DONE:MOVAL,[SI-3]:排序完成,取中間數(shù)MOVRES,ALANDAL,0F0H:分離高半字節(jié)MOVCL,4SHRAL,CLCALLBATR:調(diào)子程序,將AL值轉(zhuǎn)換為ASCH碼LEADI,STRI;DI指向結(jié)果單元CLDSTOSB:存放轉(zhuǎn)換結(jié)果MOVAL,RESANDAL,OFH;分離并轉(zhuǎn)換低半字節(jié)CALLBATRSTOSBLEADX,STR;顯示整個字符串MOVINTRETMAINENDP;子程序BATR,AH,09H21H:主程序MAIN結(jié)束實現(xiàn)16進(jìn)制數(shù)到ASCII碼的轉(zhuǎn)換BATRNUM:BATRCODE簡析:PROCNEARCMP AL,10 :入口參數(shù)為ALJB NUM ;是數(shù)字,則轉(zhuǎn)NUMADD AL,,A,-10-,0,;字母ADD AL,'O'RETENDP ;子程序結(jié)束ENDSEND MAIN本例的基本思路是:先把7個無符號數(shù)按大小排序,排序完成之后取位于中間的一個數(shù)即為中間值。然后將該16進(jìn)制數(shù)轉(zhuǎn)換為兩個對應(yīng)的ASCH碼,再與要求的格式字符一起輸出送顯即可。數(shù)據(jù)排序可以是從大到小、或從小到大排列,本參考程序完成從小到大排序,由一個雙重循環(huán)結(jié)構(gòu)實現(xiàn)。內(nèi)循環(huán)完成一個數(shù)與其它數(shù)之間的一一比較,并使每次比較所得的小數(shù)置于低地址單元。外循環(huán)實現(xiàn)所有數(shù)之間的兩兩相較。共7個數(shù)據(jù),故內(nèi)、外循環(huán)中的比較次數(shù)均為6次。編程時需注意:無符號數(shù)比較大小應(yīng)使用JA、JB、JAE、JBE指令,本例完成從小到大的排列,故用JB控制轉(zhuǎn)移到UNCH;若要從大到小排列,則用JA代替JB即可。對兩個循環(huán)體進(jìn)行初始化時,需仔細(xì)考慮指針和循環(huán)控制寄存器的初值。在數(shù)據(jù)段的定義中,分別定義STR、STR1兩個變量名字,是為了便于在STR1處存放轉(zhuǎn)換結(jié)果;顯示時使DX直接指向STR,以STR1末尾的“$”為結(jié)束符。中間值找出之后,應(yīng)把高、低半字節(jié)相分離,并分別轉(zhuǎn)換為各所對應(yīng)的ASCH碼。.設(shè)某測試系統(tǒng)中,1號端口為測試口,所得數(shù)據(jù)是0?9之間的十進(jìn)制整數(shù);2號端口為顯示口,對應(yīng)于數(shù)字0?9的LED七段共陰顯示碼依次為:3FH、06H、5BH、4FH、66H,6DH、3DH、07H、7FH、6FH=編寫一段查表送顯的程序,要求:先從測試口讀入一個數(shù)據(jù),再查表將相應(yīng)的顯示碼從顯示口送出,如此反復(fù)進(jìn)行直至讀入數(shù)據(jù)“OFFH”為止。答:一種可能的程序如下實現(xiàn):DATASEGMENTTABDB 3FH,06H,5BH,4FH,66HDB 6DH,3DH,07H,7FH,6FH ;0-9的七段碼DATAENDSSTACKSEGMENTPARASTACKSTACK'DW50DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,SS:STACK,DS:DATASTART:MOVAX,DATAMOVDS,AXLEBX,TAB ;BX指向表首址NEXT:INAL,1 :從測試口輸入CMPAL,OFFHJESTOP ;是OFFH,結(jié)束XLATTAB ;不是OFFH,查表轉(zhuǎn)換OUT2,AL ;向顯示口輸出七段碼JMPNEXT ;繼續(xù)測試STOP:MOVAH,4CHINT2IHCODEENDSENDSTART第6章存儲器系統(tǒng)一、選擇題.下列(B)不是半導(dǎo)體存儲器芯片的性能指標(biāo)。A.存儲容量B.存儲結(jié)構(gòu)C.集成度D.最大存儲時間.高速緩存由(B)構(gòu)成。A.SRAMB.DRAMC.EPROMD.硬磁盤.由2Kxibit的芯片組成容量為4Kx8bit的存儲器需要(D)個存儲芯片。A.2B.8C.32D.164.安排2764芯片內(nèi)第一個單元的地址是1000H,則該芯片的最末單元的地址是(D)?A.1FFFHB.17FFHC.27FFHD.2FFFH.一片容量為8KB的存儲芯片,若用其組成1MB內(nèi)存,需(C)片。A.120B,124C.128D.132.外存儲器包括(ABEF)oA.軟磁盤B.磁帶C.SRAMD.BIOSE.硬磁盤F.光盤.在多級存儲體系結(jié)構(gòu)中,Cache-主存結(jié)構(gòu)主要用于解決(D)的問題。A.主存容量不足 B.主存與輔存速度不匹配C.輔存與CPU速度不匹配 D.主存與CPU速度不匹配.動態(tài)RAM的特點之一是(BD)。A.能永久保存存入的信息 B.需要刷新電路C.不需要刷新電路 D.存取速度高于靜態(tài)RAM二、填空題.在分層次的存儲系統(tǒng)中,存取速度最快、靠CPU最近且打交道最多的是口^存儲器,它是由類型的芯片構(gòu)成,而主存儲器則是由邱類型的芯片
構(gòu)成。.將存儲器與系統(tǒng)相連的譯碼片選方式有強(qiáng)選法、部分地址譯碼法和全地址譯碼法。.若存儲空間的首地址為1000H,存儲容量為1Kx8、2Kx8、4Kx8H和8K的存儲器所對應(yīng)的末地址分別為13FFH、17FFH、1FFFH和2FFFH。.微機(jī)系統(tǒng)中存儲器通常被視為Cache、主存、輔存三級結(jié)構(gòu)。三、綜合題.某微機(jī)系統(tǒng)中內(nèi)存的首地址為3000H,末地址為63FFH,求其內(nèi)存容量。答:存儲區(qū)總的單元數(shù)為:63FFH-3000H+1=3400H,故總?cè)萘?3KB。計算方法:若直接用十六進(jìn)制表示,則總?cè)萘?(3*163+4*162)/1024;若將地址表示成二進(jìn)制,則總?cè)萘?2,3B+2,2B+2,oB;.下圖為SRAM6116芯片與8088系統(tǒng)總線的連接圖。(1)寫出6116芯片的存儲容量;(2)分析每片6116所占的內(nèi)存地址范圍。答:6116芯片的存儲容量是2k*8bit(2)第一片6116的內(nèi)存地址范圍是F1000H~F17FFH第二片6n6的內(nèi)存地址3.利用6264芯片,在8088wk WERD ~OEAn 3.利用6264芯片,在8088wk WERD ~OEAn An6答:.如圖所示,IBM—PC/XT計算機(jī)擴(kuò)展槽上與存儲器連接的總線信號為20根地址線A19?A0,8根數(shù)據(jù)線D7?D0以及存儲器讀寫信號靛靛和麗麗。使用這些信號擴(kuò)展1片27256(32Kx8EPROM)和1片62256(32Kx8RAM)。要求EPROM的起始地址為C8000H,RAM緊隨其后,使用74LS138(3—8譯碼器),采用全地址譯碼方式。741sl38O-O-O-O-O-A19A18AI7A16A15D-AD-D-AD-D-P-llBlH43210A1AIA1A1A1A9A8A7后A5A4A3A2A1A0O-O-O-O-O-A19A18AI7A16A15D-AD-D-AD-D-P-llBlH43210A1AIA1A1A1A9A8A7后A5A4A3A2A1A0D7幅D3D2M理H13I2AI3A12AllAr-xlRlRi76643210DaDDDDDDIICOIz607Sici已mi27256/A4A3DIA2?),'I—AOOf.TOT(1)試在圖中畫出計算機(jī)的存儲器連接圖(門電路自選)。74LS138Lp—rD—=尸Lp—rD—=尸wvlr皿徵Y5tY6t_HRlaRInD7D6D5MK1D2D1D06rRlaRInD7D6D5MK1D2D1D06rl57IC72一OF4321021—ull1987654-3210AAAAAAAAAAAAAAAAH理AI3A12AllA10M 1(0 1,1A8 I"7 D6A7 版A6 N心62256嗎Al D2A3 DIA2 MAIA1-AI:A1/\1A1A9A8A7A6A5MA3A2A1AOD72D3呢就第四題圖(2)寫出各片存儲器的地址范圍。答:地址范圍27512:C8000?CFFFFH,62512:D0000H-D7FFFH.設(shè)某系統(tǒng)中的數(shù)據(jù)總線寬度為8bit,地址總線寬度為16bit。若采用4KX4的RAM芯片組成16KB的存儲系統(tǒng)。問:(1)共需多少月-4KX4的RAM芯片?這些芯片應(yīng)分成多少組?每組多少片?答:共需8片RAM芯片,分成4組,每組2片。(2)該存儲系統(tǒng)至少需要多少根地址總線?其中多少根低位地址線用于片內(nèi)自選(譯碼)?答:至少需要14根地址總線,其中12根低位地址線用于片內(nèi)自選。(3)設(shè)該存儲系統(tǒng)從0000H開始占用一段連續(xù)地址空間,試給出每組芯片占用的地址范圍。答:OOOO-OFFFH1000-1FFFH2000-2FFFH3000-3FFFH第7章中斷技術(shù)一、判斷題.內(nèi)部中斷的優(yōu)先權(quán)總是高于外部中斷。(x).兩片8259A級連后可管理16級中斷。(x).8259A所管理的中斷源中,優(yōu)先級低的中斷源不可能中斷優(yōu)先級高的中斷服務(wù)子程序。(x).若8259A的中斷屏蔽字為00H,則8259A所管理的8級中斷全被屏蔽。(x).只要8259A所管理的中斷源沒有被屏蔽,則任何中斷源的中斷請求都能得到CPU的響應(yīng)和服務(wù)。(V).在8259A特殊完全嵌套方式中,同級的中斷可實現(xiàn)嵌套。(4)二、單項選擇題.8086CPU工作在總線請求方式時,會讓出(D).A.地址總線 B.數(shù)據(jù)總線C.地址和數(shù)據(jù)總線D.地址、數(shù)據(jù)和控制總線.CPU響應(yīng)INTR引腳上來的中斷請求的條件之一是(B)□A.IF=0B.IF=1C.TF=0D.TF=1.斷點中斷的中斷類型碼是(C).A.1B.2C.3 D.4.執(zhí)行指令I(lǐng)RET后彈出堆棧的寄存器先后順序為(B)?A.CS、IP,FlagsB.IP、CS、FlagsC.Flags,CS、IPD.Flags,IP、CS.若8259A工作在優(yōu)先級自動循環(huán)方式,則IRQ4的中斷請求被響應(yīng)并且服務(wù)完畢后,優(yōu)先權(quán)最高的中斷源是(BA.IRQ3B.IRQ5C.IRQOD.IRQ4PC/XT機(jī)中若對從片8259A寫入的ICW2是70H,則該8259A芯片的IRQ6的中斷類型碼是(B)?A.75HB.76HC.70HD.1D8HPC/XT機(jī)中若對從片8259A寫入的ICW2是70H,則該8259A芯片的IRQ5的中斷矢量存儲的地址是(D)?A.75HB.280HC.300HD.1D4H8.當(dāng)向8259A寫入的操作命令字OCW2為01100100時,將結(jié)束(E)的中斷服務(wù)。A.IRQOB.1RQ1 C.1RQ2 D.IRQ3E.IRQ4F.IRQ5 G.IRQ6 H.IRQ79.3片8259A級聯(lián)起來,可管理(C)級中斷。A.24 B.23C.22D.20E.16F.15三、多項選擇題.在PC機(jī)工作過程中,8259A所管理的中斷源優(yōu)先級將發(fā)生變化的工作方式有(CD)。A.全嵌套工作方式 B.特殊全嵌套方式C.優(yōu)先級自動循環(huán)方式 D.優(yōu)先級特殊循環(huán)方式.寫入8259A的ICW1為13H,則該8259A芯片的工作方式是(ADE)。A.上升沿觸發(fā)中斷請求B.僅高電平請求中斷 C.多片主從方式D.單片方式E.初始化寫入ICW4F.初始化不寫入ICW4.寫入8259A的ICW4為09H,則該8259A芯片的工作方式是(ABD)。A.全嵌套B.采用8086CPUC.多片主從方式D.緩沖方式 E.自動結(jié)束中斷F.優(yōu)先級自動循環(huán).寫入PC/XT機(jī)8259A芯片的操作命令字OCW1是36H,則被屏蔽的中斷源是(BCEF)?A.IROB.IR1C.IR2D.IR3E.IR4F.IR5GIR6H.IR75.8086CPU響應(yīng)硬中斷NMI和INTR時,相同的條件是(BD)。A.允許中斷 B.當(dāng)前指令執(zhí)行結(jié)束C.CPU工作在最大模式下 D.不處于DMA操作期間四、填空題.中斷矢量就是中斷服務(wù)子程序的入口地址,在內(nèi)存中占有4個存儲單元,其中低地址存儲單元存放的是IP內(nèi)容,高地址存儲單元存放的是CS內(nèi)容。.中斷返回指令是IRET,該指令將堆棧中保存的斷點彈出后依次裝入」E寄存器和CS寄存器中,將堆棧中保存的標(biāo)志裝入中。CPU響應(yīng)8259A中斷,在引腳更旦上輸出2個負(fù)脈沖,在第2個負(fù)脈沖期間讀入中斷類型碼。8086CPU共可管理256個中斷,中斷矢量表放在從00000H地址單元到003FFH地址單元,總共有1K個字節(jié)。CPU響應(yīng)中斷后將Flags寄存器入棧保存,然后自動將IF標(biāo)志和TF標(biāo)志復(fù)位。若要實現(xiàn)中斷嵌套,必須在中斷服務(wù)子程序中執(zhí)行一條開中斷指令。以下代碼完成8086系統(tǒng)中斷向量設(shè)置的功能,其設(shè)置的中斷類型為皿L,中斷服務(wù)程序入口的物理地址為579B4H。DATASEGMENTORG2CHVARIDW?VAR2DW?DATAENDSCODESEGMENTASSUMECS:CODE,ES:DATAXORAX,AXMOVES,AXMOVAX,1234HMOVES:VARI,AXMOVAX,5678HMOVES:VAR2,AXCODEENDS五、綜合題.試說明一般中斷系統(tǒng)的組成和功能。答:處理器內(nèi)部應(yīng)有中斷請求信號的檢測電路,輸出中斷響應(yīng)信號,保存斷點的邏輯,轉(zhuǎn)向中斷處理程序的邏輯,中斷返回邏輯。系統(tǒng)中要有一中斷控制器,管理多個中斷源,提供處理機(jī)所需的中斷處理信息。系統(tǒng)中請求中斷處理的I/O接口電路要有提供中斷請求信號及接收中斷響應(yīng)信號的邏輯。.簡述中斷的響應(yīng)過程。答:8086在中斷響應(yīng)時,自動將標(biāo)志寄存器FR和斷點(CS和IP)的值入棧保存,但不將別的其它寄存器的值入棧保存,故如果中斷服務(wù)程序中用到其它寄存器時,應(yīng)單獨(dú)使用指令將其它寄存器的值入棧保存,等中斷返回前再將其恢復(fù)。這一步驟稱為保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場。保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場應(yīng)后進(jìn)先出。8086只對可屏蔽中斷的響應(yīng)輸出2個總線周期的INTA,并在第2個INTA期間到DB的低8位讀入中斷類型碼,而對其它類型的中斷,由于中斷類型碼是固定的,不用到DB讀取,故沒有2個INTA總線周期。中斷響應(yīng)與調(diào)子程序過程完全不同。.簡述8086系統(tǒng)的中斷分類及優(yōu)先級。答:內(nèi)部(除法除以0、單步、斷點、溢出、指令中斷)和外部(非屏蔽、可屏蔽)兩大類。每個中斷源有一個自己特定的類型碼,8086靠類型碼來識別不同中斷源,轉(zhuǎn)去執(zhí)行不同中斷服務(wù)程序??梢允箻?biāo)志寄存器的IF位和TF位為0來關(guān)閉可屏蔽中斷和單步中斷,但除法除以0中斷、溢出中斷、斷點中斷、指令中斷及非屏蔽中斷是無法關(guān)閉的。可屏蔽中斷有專用的指令STI(開可屏蔽中斷)和CLI(關(guān)可屏蔽中斷),但單步中斷的開或關(guān)沒有專用指令。因8086的中斷類型碼為8位的,中斷類型碼的個數(shù)為0—FFH,最多可有256個數(shù),故8086的內(nèi)部中斷和外部中斷加起來最多可有256個。除了可屏蔽中斷的中斷類型碼是由8259A提供的外,其它每種中斷的中斷類型碼都是固定的。8086各中斷源的優(yōu)先級從高到低依次是:除法除以0溢出中斷、斷點中斷、指令中斷非屏蔽中斷可屏蔽中斷單步中斷注意,優(yōu)先級的高低與中斷類型碼的大小沒有關(guān)系。因INTN指令中斷的優(yōu)先級高于可屏蔽中斷的優(yōu)先級,故8086在執(zhí)行指令中斷期間不能響應(yīng)可屏蔽中斷的中斷請求。.什么是中斷類型碼、中斷向量、中斷向量表?在基于8086/8088的微機(jī)系統(tǒng)中,中斷類型碼和中斷向量之間有什么關(guān)系?答:處理機(jī)可處理的每種中斷的編號為中斷類型碼。中斷向量是指中斷處理程序的入口地址,由處理機(jī)自動尋址。中斷向量表是存放所有類型中斷處理程序入口地址的一個默認(rèn)的內(nèi)存區(qū)域。在8086系統(tǒng)中,中斷類型碼乘4得到向量表的入口,從此處讀出4字節(jié)內(nèi)容即為中斷向量。.寫出分配給下列中斷類型號在中斷向量表中的物理地址。INT12H答:00048HINT8答:00020H.8259A中斷控制器的功能是什么?答:8259A中斷控制器可以接受8個中斷請求輸入并將它們寄存。時8個請求輸入進(jìn)行優(yōu)先級判斷,裁決出最高優(yōu)先級進(jìn)行處理,它可以支持多種優(yōu)先級處理方式。8259A可以對中斷請求輸入進(jìn)行屏蔽,阻止對其進(jìn)行處理。8259A支持多種中斷結(jié)束方式。8259A與微處理器連接方便,可提供中斷請求信號及發(fā)送中斷類型碼。8259A可以進(jìn)行級連以便形成多于8級輸入的中斷控制系統(tǒng)。.畫出8259A的初始化流程圖。答: , ,送ICWI| ?,送ICW2TV級聯(lián)方式?)送I:CW3|―匚「需要icwTT)I送ICW4| -4-I準(zhǔn)備羲中斷1.試按照如下要求對8259A設(shè)定初始化命令字:8086系統(tǒng)中只有一片8259A,中斷請求信號使用電平觸發(fā)方式,全嵌套中斷優(yōu)先級,數(shù)據(jù)總線無緩沖,采用中斷自動結(jié)束方式。中斷類型碼為20H?27H,8259A的端口地址為0B0H和0B1H。并寫出8259A的初始化程序段。答:ICW1=1BH(送B0H端口),ICW2=20H(送B1H端口),ICW4=03H(送B1H端口)MOVAL,1BHOUT0B0H,ALMOVAL,20HOUT0B1H,ALMOVAL,03HOUT0B1H,AL.8259A的中斷屏蔽寄存器IMR與8086中斷允許標(biāo)志IF有什么區(qū)別?答:IF是8086微處理器內(nèi)部標(biāo)志寄存器的一位,若IF=0,8086就不響應(yīng)外部可屏蔽中斷請求INTR引線上的請求信號。8259A有8個中斷請求輸入線,IMR中的某位為1,就把對應(yīng)這位的中斷請求IR禁止掉,無法被8259A處理,也無法向8086處理器產(chǎn)生INTR請求。.若8086系統(tǒng)采用單片8259A中斷控制器控制中斷,中斷類型碼給定為20H,中斷源的請求線與8259A的IR4相連,試問:對應(yīng)該中斷源的中斷向量表入口地址是什么?若中斷服務(wù)程序入口地址為4FE0H:0024H,則對應(yīng)該中斷源的中斷向量表內(nèi)容是什么,如何定位?答:中斷向量表入口地址為:0段的0090H地址。對應(yīng)4FE24H中斷服務(wù)程序入口,在向量表中定位情況:(0090H)=24H、(0091H)=00H、(0092H)=E0H、(0093H)=4FH..現(xiàn)假設(shè)某外設(shè)的中斷請求信號山IR2端引入,要求編程實現(xiàn)CPU每次響應(yīng)該中斷時屏幕顯示字符串“WELCOME!已知主機(jī)啟動時8259A中斷類型號的高5位已初始化為00001,故IR2的類型號為OAH(00001010B);8259A的中斷結(jié)束方式初始化為非自動結(jié)束,即要在服務(wù)程序中發(fā)EOI命令;8259A的端口地址為20H和21H。解:程序如下:DATASEGMENTMESSDB'WELCOME! OAH,0DH,''DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,SEGINT2MOVDS,AXMOVDX,OFFSETINT2MOVAX,250AHINT21H;置中斷矢量表INAL,21H;讀中斷屏蔽寄存器ANDAL,0FBH;開放IR2中斷OUT21H,AL
STILL:JMPLI;等待中斷INT2:MOVAX,DATA;中斷服務(wù)程序MOVDS,AXMOVDX,OFFSETMESSMOVAH,09INT21H;顯示每次中斷的提示信息MOVAL,20H;OCW2,一般EOI命令OUT20H,AL:發(fā)出EOI結(jié)束中斷INAL,21HORAL,04H;屏蔽1R2中斷OUT21H,ALSTIMOVAH,4CHINT21HIRETCODEENDSENDSTART第8章輸入/輸出接口技術(shù)一、選擇題8086CPU在執(zhí)行INAL,DX指令時,DX寄存器的內(nèi)容輸出到(A)上。A.地址總線B.數(shù)據(jù)總線C.存儲器D.寄存器在CPU與外設(shè)進(jìn)行數(shù)據(jù)傳送時,下列(C)方式可提高系統(tǒng)的工作效率。A.無條件傳送 B,查詢傳送C.中斷傳送D.前三項均可外部設(shè)備的端口包括(ABC).A.數(shù)據(jù)端口B.狀態(tài)端口C.控制端口 D.寫保護(hù)口CPU在數(shù)據(jù)線上傳輸?shù)男畔⒖赡苁牵ˋBC)。A.數(shù)據(jù)B.狀態(tài)C.命令D.模擬量PC/XT機(jī)對I/O端口的尋址方式有(AF)?A.端口直接尋址B.寄存器尋址 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑學(xué)咨詢行業(yè)市場調(diào)研分析報告
- 充電樁智能管理行業(yè)營銷策略方案
- 公司治理法律服務(wù)行業(yè)經(jīng)營分析報告
- 印刷機(jī)用盤紙產(chǎn)業(yè)鏈招商引資的調(diào)研報告
- 女式披肩產(chǎn)品供應(yīng)鏈分析
- 安排舉辦和組織專家討論會行業(yè)相關(guān)項目經(jīng)營管理報告
- 室內(nèi)用空氣芳香劑產(chǎn)業(yè)鏈招商引資的調(diào)研報告
- 木片切削機(jī)產(chǎn)品供應(yīng)鏈分析
- 寬頂無沿圓帽產(chǎn)業(yè)鏈招商引資的調(diào)研報告
- 工業(yè)用封口機(jī)產(chǎn)品供應(yīng)鏈分析
- 2024年區(qū)衛(wèi)生健康系統(tǒng)公開招聘大學(xué)生村醫(yī)考試題及答案
- 廉潔紀(jì)律十道題
- 高三英語 時政類語篇型填空專項訓(xùn)練
- 八年級生物上冊 5.14.3《神奇的微生物》說課稿 (新版)蘇教版
- 2024年度信息化教學(xué)校本研修實施方案
- 2024年中移建設(shè)限公司安徽分公司社會招聘12人高頻難、易錯點500題模擬試題附帶答案詳解
- 2024秋期國家開放大學(xué)《政治學(xué)原理》一平臺在線形考(形考任務(wù)二)試題及答案
- 變配電運(yùn)維知識考試題(含參考答案)
- 2024年浙江省寧波市初二上學(xué)期期中歷史試題及解答參考
- 時代樂章第一課城市名片 課件 2024-2025學(xué)年人教版(2024)初中美術(shù)七年級上冊
- 期中測試題-2024-2025學(xué)年道德與法治六年級上冊統(tǒng)編版
評論
0/150
提交評論