微機(jī)原理及接口技術(shù)試題庫含答案_第1頁
微機(jī)原理及接口技術(shù)試題庫含答案_第2頁
微機(jī)原理及接口技術(shù)試題庫含答案_第3頁
微機(jī)原理及接口技術(shù)試題庫含答案_第4頁
微機(jī)原理及接口技術(shù)試題庫含答案_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

-.z三、選擇題1、在計(jì)算機(jī)部,一切信息的存取、處理和傳送都是以D形式進(jìn)展的。A〕EBCDIC碼B〕ASCII碼C〕十六進(jìn)制編碼D〕二進(jìn)制編碼2、與十進(jìn)制數(shù)56等值的二進(jìn)制數(shù)是A。A〕111000B〕111001C〕101111D〕110110四、是非判斷題1、在第三代計(jì)算機(jī)期間出現(xiàn)了操作系統(tǒng)?!病獭?、對(duì)于種類不同的計(jì)算機(jī),其機(jī)器指令系統(tǒng)都是一樣的?!病痢?、在計(jì)算機(jī)中,數(shù)據(jù)單位bit的意思是字節(jié)?!病痢?.微處理器,微型計(jì)算機(jī)和微型計(jì)算機(jī)系統(tǒng)三者之間有何區(qū)別.答:微處理器即CPU,它包括運(yùn)算器、控制器、存放器陣列和部總線等局部,用于實(shí)現(xiàn)微型計(jì)算機(jī)的運(yùn)算和控制功能,是微型計(jì)算機(jī)的核心;一臺(tái)微型計(jì)算機(jī)由微處理器、存儲(chǔ)器、I/O接口電路以及總線構(gòu)成;微型計(jì)算機(jī)系統(tǒng)則包括硬件系統(tǒng)和軟件系統(tǒng)兩大局部,其中硬件系統(tǒng)又包括微型計(jì)算機(jī)和外圍設(shè)備;由此可見,微處理器是微型計(jì)算機(jī)的重要組成局部,而微型計(jì)算機(jī)系統(tǒng)又主要由微型計(jì)算機(jī)作為其硬件構(gòu)成。2.CPU在部構(gòu)造上由哪幾局部構(gòu)成.CPU應(yīng)具備哪些主要功能.答:CPU在部構(gòu)造上由運(yùn)算器、控制器、存放器陣列和部總線等各局部構(gòu)成,其主要功能是完成各種算數(shù)及邏輯運(yùn)算,并實(shí)現(xiàn)對(duì)整個(gè)微型計(jì)算機(jī)控制,為此,其部又必須具備傳遞和暫存數(shù)據(jù)的功能。3.累加器和其它通用存放器相比有何不同.答:累加器是通用存放器之一,但累加器和其它通用存放器相比又有其獨(dú)特之處。累加器除了可用做通用存放器存放數(shù)據(jù)外,對(duì)*些操作,一般操作前累加器用于存放一個(gè)操作數(shù),操作后,累加器用于存放結(jié)果。4.微型計(jì)算機(jī)的總線有哪幾類.總線構(gòu)造的特點(diǎn)是什么.答:微型計(jì)算機(jī)的總線包括地址總線、數(shù)據(jù)總線和控制總線三類,總線構(gòu)造的特點(diǎn)是構(gòu)造簡單、可靠性高、易于設(shè)計(jì)生產(chǎn)和維護(hù),更主要的是便于擴(kuò)大。6.計(jì)算機(jī)I/O接口有何用途.試列出8個(gè)I/O接口。答:計(jì)算機(jī)I/O接口是連接計(jì)算機(jī)和外部設(shè)備的紐帶和橋梁,它主要用于協(xié)調(diào)和控制計(jì)算機(jī)與外設(shè)之間的信息流通和交換。例如:串行通訊口〔口〕、并行打印機(jī)口、軟盤驅(qū)動(dòng)器接口、硬盤驅(qū)動(dòng)器接口、光驅(qū)接口、顯示器接口、音響設(shè)備接口、其它通用設(shè)備接口〔USB、SCSI等〕。7.現(xiàn)在,計(jì)算機(jī)主板上一般都包括哪些I/O接口.I/O接口卡如何與主板相連.答:現(xiàn)在,計(jì)算機(jī)主板上一般包括串行通訊口、并行打印口、軟盤驅(qū)動(dòng)器接口、硬盤驅(qū)動(dòng)器接口、光驅(qū)接口、USB接口等。象顯示器適配器、網(wǎng)卡、modem卡等I/O接口卡一般通過總線插槽與主板相連。8.簡述系統(tǒng)總線,AGP總線,PCI總線及ISA總線的作用。答:系統(tǒng)總線是CPU與存儲(chǔ)器及橋接器之間傳遞信息的通道,AGP總線專門用與連接CPU與顯示器適配器,PCI總線一般用于連接一些高速外設(shè)接口作為高速外設(shè)與CPU或存交換信息的通道,而ISA總線一般用于連接一些非高速外設(shè)接口作為非高速外設(shè)與CPU或存交換信息的通道。9.試說明計(jì)算機(jī)用戶,計(jì)算機(jī)軟件,計(jì)算機(jī)硬件三者的相互關(guān)系。答:計(jì)算機(jī)用戶,計(jì)算機(jī)軟件系統(tǒng),計(jì)算機(jī)硬件系統(tǒng)共同構(gòu)成一個(gè)計(jì)算機(jī)應(yīng)用系統(tǒng),三者在該系統(tǒng)中處于三個(gè)不同的層次。計(jì)算機(jī)用戶處于最高層,計(jì)算機(jī)軟件處于中間層,計(jì)算機(jī)硬件系統(tǒng)處于最下層。在這里計(jì)算機(jī)用戶是系統(tǒng)的主宰,他們通過軟件系統(tǒng)與硬件系統(tǒng)發(fā)生關(guān)系,指揮計(jì)算機(jī)硬件完成指定的任務(wù)。即,計(jì)算機(jī)用戶使用程序設(shè)計(jì)語言編制應(yīng)用程序,在系統(tǒng)軟件的干預(yù)下使用硬件系統(tǒng)進(jìn)展工作。11.存儲(chǔ)單元的選擇由什么信號(hào)控制.讀、寫靠什么信號(hào)區(qū)分.答:存儲(chǔ)單元的選擇由地址信號(hào)控制,而對(duì)存儲(chǔ)單元進(jìn)展讀操作還是寫操作則要靠讀、寫信號(hào)區(qū)分。4.假設(shè)用一個(gè)字節(jié)來表示帶符號(hào)數(shù),判斷以下各運(yùn)算在機(jī)進(jìn)展時(shí)是否會(huì)產(chǎn)生溢出,寫出判斷過程。A.5BH+32H;B.-08H-15H;C.-51H+(-3DH);D.2DH+3CH答:A.產(chǎn)生溢出,5BH=01011011B其補(bǔ)碼表示的機(jī)器數(shù)為:0101101132H=00110010B其補(bǔ)碼表示的機(jī)器數(shù)為:00110010相加的結(jié)果為:10001101數(shù)值最高位向符號(hào)位進(jìn)位,但符號(hào)位向前無進(jìn)位,故產(chǎn)生溢出。B.不產(chǎn)生溢出,-08H=-00001000B其補(bǔ)碼表示的機(jī)器數(shù)為:11111000-15H=-00010101B其補(bǔ)碼表示的機(jī)器數(shù)為:11101011相加的結(jié)果為:111100011數(shù)值最高位向符號(hào)位進(jìn)位,符號(hào)位同時(shí)也向前進(jìn)位,故不產(chǎn)生溢出.C.產(chǎn)生溢出,-51H=-01010001B其補(bǔ)碼表示的機(jī)器數(shù)為:10101111-3DH=-00111101B其補(bǔ)碼表示的機(jī)器數(shù)為:11000011相加的結(jié)果為:101110010數(shù)值最高位向符號(hào)位無進(jìn)位,但符號(hào)位向前進(jìn)位,故產(chǎn)生溢出.D.不產(chǎn)生溢出,2DH=00101101B其補(bǔ)碼表示的機(jī)器數(shù)為:001011013CH=00111100B其補(bǔ)碼表示的機(jī)器數(shù)為:00111100相加的結(jié)果為:01101001數(shù)值最高位向符號(hào)位無進(jìn)位,符號(hào)位向前也無進(jìn)位,故不產(chǎn)生溢出。6.詳細(xì)表達(dá)總線緩沖器的作用。答:總線緩沖器的作用主要是控制各路數(shù)據(jù)在總線上的穿插傳送防止相互沖突,當(dāng)幾路數(shù)據(jù)都要向總線上傳送時(shí),就通過各路的緩沖器來解決,當(dāng)一路傳送時(shí),緩沖器使其它各路數(shù)據(jù)與總線斷開。7.鎖存器和存放器有什么不同?答:鎖存器與存放器都是用來暫存數(shù)據(jù)的器件,在本質(zhì)上沒有區(qū)別,不過存放器的輸出端平時(shí)不隨輸入端的變化而變化,只有在時(shí)鐘有效時(shí)才將輸入端的數(shù)據(jù)送輸出端〔打入存放器〕,而鎖存器的輸出端平時(shí)總隨輸入端變化而變化,只有當(dāng)鎖存器信號(hào)到達(dá)時(shí),才將輸出端的狀態(tài)鎖存起來,使其不再隨輸入端的變化而變化。1.8086從功能上分成了EU和BIU兩局部。這樣設(shè)計(jì)的優(yōu)點(diǎn)是什么?答:傳統(tǒng)計(jì)算機(jī)在執(zhí)行程序時(shí),CPU總是相繼地完成取指令和執(zhí)行指令的動(dòng)作,即,指令的提取和執(zhí)行是串行進(jìn)展的。而8086CPU在功能上分成了EU和BIU兩局部,BIU負(fù)責(zé)取指令,EU負(fù)責(zé)指令的執(zhí)行,它們之間既互相獨(dú)立又互相配合,使得8086可以在執(zhí)行指令的同時(shí)進(jìn)展取指令的操作,即實(shí)現(xiàn)了取指令和執(zhí)行指令的并行工作,大大提高了CPU和總線的利用率,從而提高了指令的處理速度。2.8086CPU中地址加法器的重要性表達(dá)在哪里.答:地址加法器是8086CPU的總線接口單元中的一個(gè)器件,在8086存儲(chǔ)器分段組織方式中它是實(shí)現(xiàn)存儲(chǔ)器尋址的一個(gè)關(guān)鍵器件,地址加法器將兩個(gè)16位存放器中的邏輯地址移位相加,得到一個(gè)20位的實(shí)際地址,把存儲(chǔ)器尋址空間從64K擴(kuò)大到1M,極擴(kuò)大了微型計(jì)算機(jī)的程序存儲(chǔ)空間,從而大大提高了程序運(yùn)行效率。3.8086CPU中有哪些存放器.分組說明用途。哪些存放器用來指示存儲(chǔ)器單元的偏移地址.答:8086CPU中有8個(gè)通用存放器A*、B*、C*、D*、SP、BP、SI、DI;兩個(gè)控制存放器IP、FL;四個(gè)段存放器CS、DS、SS、ES。8個(gè)通用存放器都可以用來暫存參加運(yùn)算的數(shù)據(jù)或中間結(jié)果,但又有各自的專門用途。例如,A*專用做累加器,*些指令指定用它存放操作數(shù)和運(yùn)算結(jié)果;C*為計(jì)數(shù)存放器,在*些指令中做計(jì)數(shù)器使用;D*為數(shù)據(jù)存放器;B*為基址存放器,BP為基址指針,SI為源變址存放器,DI為目的變址存放器,這4個(gè)存放器在數(shù)據(jù)尋址中用來存放段偏移地址〔有效地址〕或段偏移地址的一局部;SP為堆棧指示器,用來存放棧頂有效地址。兩個(gè)控制存放器用來存放有關(guān)的狀態(tài)信息和控制信息。例如,標(biāo)志存放器FL用來存放狀態(tài)標(biāo)志和控制標(biāo)志;而指令指針用來存放下一條要取指令的有效地址。四個(gè)段存放器用來存放段地址。例如,CS存放器用來存放代碼段的段地址;DS存放器用來存放數(shù)據(jù)段的段地址;SS存放器用來存放堆棧段的段地址;ES存放器用來存放擴(kuò)展段的段地址。4.8086系統(tǒng)中存儲(chǔ)器的邏輯地址由哪兩局部組成.物理地址由何器件生成.如何生成.每個(gè)段的邏輯地址與存放器之間有何對(duì)應(yīng)關(guān)系.答:8086系統(tǒng)中存儲(chǔ)器的邏輯地址由段地址〔段首址〕和段偏移地址〔有效地址〕兩局部組成;存儲(chǔ)單元的物理地址由地址加法器生成,尋址時(shí),CPU首先將段地址和段偏移地址送入地址加法器,地址加法器將段地址左移4位并與段偏移地址相加,得到一個(gè)20位的物理地址。數(shù)據(jù)段的段地址在DS存放器中,段偏移地址可能在B*、BP、SI或DI存放器中。代碼段的段地址在CS存放器中,段偏移地址在IP存放器中。堆棧段的段地址在SS存放器中,段偏移地址在SP存放器中。擴(kuò)展段的段地址在ES存放器中,段偏移地址可能在B*、BP、SI或DI存放器中。5.設(shè)CPU中各有關(guān)存放器的當(dāng)前狀況為:SS=0a8bH、DS=17ceH、CS=dc54H、B*=394bH、IP=2f39H、SP=1200H,B*給出的是*操作數(shù)的有效地址,請(qǐng)分別寫出該操作數(shù)、下一條要取的指令及當(dāng)前棧頂?shù)倪壿嫷刂泛臀锢淼刂?。答:該操作?shù)的邏輯地址為DS:B*=17CE:394BH,物理地址=17CEH*10H+394BH=1B62BH;下一條要取的指令的邏輯地址為CS:IP=DC54:2F39H,物理地址=DC54H*10H+2F39H=DF479H;當(dāng)前棧頂?shù)倪壿嫷刂?SS:SP=0A8B:1200H,物理地址=0A8BH*10H+1200H=0BAB0H。6.假設(shè)DS=157DH時(shí),*操作數(shù)的物理地址是215FAH,當(dāng)DS=18DEH時(shí),該操作數(shù)的物理地址是多少.答:該操作數(shù)的段偏移地址=該操作數(shù)的物理地址-DS=215FAH-157D0H=BE2AH,故當(dāng)DS=18DEH時(shí),該操作數(shù)的物理地址=DS*10H+BE2AH=18DE0H+BE2AH=24C0AH7.設(shè)A*=2875H、B*=34DFH、SS=1307H、SP=8H,依此執(zhí)行PUSHA*、PUSHB*、POPA*、POPC*后棧頂指針變?yōu)槎嗌?A*=.B*=.C*=.答:當(dāng)前棧頂指針=SS*10H+SP=13070H+8H=13078H,依此執(zhí)行PUSHA*、PUSHB*、POPA*、POPC*后棧頂指針仍為13078H。但A*=34DFH,B*=34DFH,C*=2875H。1.假定〔B*〕=637DH,〔SI〕=2A9BH,位移量D=3237H,試確定在以下各種尋址方式下的有效地址是什么.〔1〕立即尋址〔2〕直接尋址〔3〕使用B*的存放器尋址〔4〕使用B*的間接尋址〔5〕使用B*的存放器相對(duì)尋址〔6〕基址變址尋址〔7〕相對(duì)基址變址尋址答:〔1〕立即數(shù)尋址的有效地址是當(dāng)前IP的容;〔2〕直接尋址,假設(shè)使用位移量D=3237H進(jìn)展,則有效地址為3237H;〔3〕使用B*的存放器尋址時(shí),操作數(shù)在B*存放器中,因此無有效地址;〔4〕使用B*的間接尋址時(shí),有效地址在B*存放器中,即有效地址=637DH;〔5〕使用B*的存放器相對(duì)尋址的有效地址=〔B*〕+D=637DH+3237H=95B4H;〔6〕基址變址尋址的有效地址=〔B*〕+〔SI〕=637DH+2A9BH=8E18H;〔7〕相對(duì)基址變址尋址的有效地址=〔B*〕+〔SI〕+D=C050H;2.寫出把首地址為BLOCK的字?jǐn)?shù)組的第6個(gè)字送到D*存放器的指令。要求使用以下幾種尋址方式:〔1〕存放器間接尋址〔2〕存放器相對(duì)尋址〔3〕基址變址尋址答:〔1〕使用存放器間接尋址,把首地址為BLOCK的字?jǐn)?shù)組的第6個(gè)字送到D*存放器的指令為:MOVB*,BLOCKADDB*,12MOVD*,[B*]〔2〕使用存放器相對(duì)尋址,把首地址為BLOCK的字?jǐn)?shù)組的第6個(gè)字送到D*存放器的指令為:MOVB*,BLOCKMOVD*,[B*+12]〔3〕使用基址變址尋址,把首地址為BLOCK的字?jǐn)?shù)組的第6個(gè)字送到D*存放器的指令為:MOVB*,BLOCKMOVSI,12MOVD*,[B*+SI]3.現(xiàn)有(DS)=2000H,(B*)=0100H,(SI)=0002H,(20210H)=12H,(20211H)=34H,(20212H)=56H,(20213H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,試說明以下各條指令執(zhí)行完后A*存放器的容?!?〕MOVA*,1200H〔2〕MOVA*,B*〔3〕MOVA*,[1200H]〔4〕MOVA*,[B*]〔5〕MOVA*,[B*+1100]〔6〕MOVA*,[B*+SI]〔7〕MOVA*,[B*+SI+1100]答:〔1〕指令MOVA*,1200H執(zhí)行完后A*存放器的容為1200H;〔2〕指令MOVA*,B*執(zhí)行完后A*存放器的容為0100H;〔3〕指令MOVA*,[1200H]是將從物理地址=〔DS〕*10H+1200H=21200H開場的兩個(gè)單元容送A*,執(zhí)行完后A*存放器的容為4C2AH;〔4〕指令MOVA*,[B*]是將從物理地址=〔DS〕*10H+〔B*〕=20210H開場的兩個(gè)單元容送A*,故執(zhí)行完后A*存放器的容為3412H;〔5〕指令MOVA*,[B*+1100]是將從物理地址=〔DS〕*10H+〔B*〕+1100H=21200H開場的兩個(gè)單元容送A*,故執(zhí)行完后A*存放器的容為4C2AH;〔6〕指令MOVA*,[B*+SI]是將從物理地址=〔DS〕*10H+〔B*〕+〔SI〕=20212H開場的兩個(gè)單元容送A*,故執(zhí)行完后A*存放器的容為7856H;〔7〕指令MOVA*,[B*+SI+1100]是將從物理地址=〔DS〕*10H+〔B*〕+〔SI〕+1100H=21202H開場的兩個(gè)單元容送A*,故執(zhí)行完后A*存放器的容為65B7H;4.假設(shè)(DS)=2900H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(B*)=0100H,(BP)=0010H,數(shù)據(jù)段中變量名VAL的偏移地址值為0050H,試指出以下源操作數(shù)字段的尋址方式是什么.其物理地址值是多少.〔1〕MOVA*,0ABH〔2〕MOVA*,B*〔3〕MOVA*,[100H]〔4〕MOVA*,VAL〔5〕MOVA*,[B*]〔6〕MOVA*,ES:[B*]〔7〕MOVA*,[BP]〔8〕MOVA*,[SI]〔9〕MOVA*,[B*+10]〔10〕MOVA*,VAL[B*]〔11〕MOVA*,[B*][SI]〔12〕MOVA*,[BP][SI]答:〔1〕在指令MOVA*,0ABH中,源操作數(shù)字段的尋址方式是立即數(shù)尋址,其物理地址值=〔CS〕*10H+〔IP〕;〔2〕在指令MOVA*,B*中,源操作數(shù)字段的尋址方式是存放器尋址,操作數(shù)在B*中,無物理地址;〔3〕在指令MOVA*,[100H]中,源操作數(shù)字段的尋址方式是直接尋址,其物理地址值=〔DS〕*10H+100=29000H+100H=29100;〔4〕在指令MOVA*,VAL中,源操作數(shù)字段的尋址方式是直接尋址,其物理地址值=〔DS〕*10H+50H=29000H+50H=29050H;〔5〕在指令MOVA*,[B*]中,源操作數(shù)字段的尋址方式是存放器間接尋址,其物理地址值=〔DS〕*10H+〔B*〕=29000H+100H=29100H;〔6〕在指令MOVA*,ES:[B*]中,源操作數(shù)字段的尋址方式是存放器間接尋址,其物理地址值=〔ES〕*10H+〔B*〕=21000H+100H=21100H;〔7〕在指令MOVA*,[BP]中,源操作數(shù)字段的尋址方式是存放器間接尋址,其物理地址值=〔SS〕*10H+〔BP〕=15000H+10H=15010H;〔8〕在指令MOVA*,[SI]中,源操作數(shù)字段的尋址方式是存放器間接尋址,其物理地址值=〔DS〕*10H+〔SI〕=29000H+0A0H=290A0H;〔9〕在指令MOVA*,[B*+10]中,源操作數(shù)字段的尋址方式是存放器相對(duì)尋址,其物理地址值=〔DS〕*10H+〔B*〕+0AH=29000H+100H+0AH=2910AH;〔10〕在指令MOVA*,VAL[B*]中,源操作數(shù)字段的尋址方式是存放器相對(duì)尋址,其物理地址值=〔DS〕*10H+〔B*〕+50H=29000H+100H+50H=29150H;〔11〕在指令MOVA*,[B*][SI]中,源操作數(shù)字段的尋址方式是基址變址尋址,其物理地址值=〔DS〕*10H+〔B*〕+〔SI〕=29000H+100H+0A0H=291A0H;〔12〕在指令MOVA*,[BP][SI]中,源操作數(shù)字段的尋址方式是基址變址尋址,其物理地址值=〔SS〕*10H+〔BP〕+〔SI〕=15000H+10H+0A0H=150B0H5.分別指出以下指令中的源操作數(shù)和目的操作數(shù)的尋址方式?!?〕MOVSI,200〔2〕MOVC*,DATA[SI]〔3〕ADDA*,[B*+DI]〔4〕ANDA*,B*〔5〕MOV[SI],A*〔6〕PUSHF答:〔1〕目的操作數(shù)字段的尋址方式是存放器尋址,源操作數(shù)字段的尋址方式是立即數(shù)尋址;〔2〕目的操作數(shù)的尋址方式是存放器尋址,源操作數(shù)的尋址方式是存放器相對(duì)尋址;〔3〕目的操作數(shù)的尋址方式是存放器尋址,源操作數(shù)的尋址方式是基址變址尋址;〔4〕目的操作數(shù)的尋址方式是存放器尋址,源操作數(shù)的尋址方式也是存放器尋址;〔5〕目的操作數(shù)的尋址方式是存放器間接尋址,源操作數(shù)的尋址方式是存放器尋址;〔6〕目的操作數(shù)的尋址方式是存放器間接尋址,源操作數(shù)的尋址方式是存放器尋址;6.試述指令MOVA*,2021H和MOVA*,DS:[2021H]的區(qū)別。答:指令MOVA*,2021H是將立即數(shù)2021H送A*存放器,而指令MOVA*,DS:[2021H]是將DS段有效地址為2021H的兩個(gè)單元的容送A*。7.寫出以下指令中存操作數(shù)的所在地址?!?〕MOVAL,[B*+5]〔2〕MOV[BP+5],A*〔3〕INCBYTEPTR[SI+3]〔4〕MOVDL,ES:[B*+DI]〔5〕MOVB*,[B*+SI+2]答:〔1〕指令MOVAL,[B*+5]中存操作數(shù)的所在地址=〔DS〕*10H+〔B*〕+5;〔2〕指令MOV[BP+5],A*中存操作數(shù)的所在地址=〔SS〕*10H+〔BP〕+5和〔SS〕*10H+〔BP〕+6;〔3〕指令I(lǐng)NCBYTEPTR[SI+3]中存操作數(shù)的所在地址=〔DS〕+〔SI〕+3;〔4〕指令MOVDL,ES:[B*+DI]中存操作數(shù)的所在地址=〔ES〕*10H+〔B*〕+〔DI〕;〔5〕指令MOVB*,[B*+SI+2]中存操作數(shù)的所在地址=〔DS〕*10H+〔B*〕+〔SI〕+2和〔DS〕*10H+〔B*〕+〔SI〕+3;8.判斷以下指令書寫是否正確,如有錯(cuò)誤,指出錯(cuò)在何處并用正確的程序段〔一條或多條指令〕實(shí)現(xiàn)原錯(cuò)誤指令((8)、(13)除外)期望實(shí)現(xiàn)的操作?!?〕MOVAL,B*〔9〕MOVES,3278H〔2〕MOVAL,SL〔10〕PUSHAL〔3〕INC[B*]〔11〕POP[B*]〔4〕MOV5,AL〔12〕MOV[1A8H],23DH〔5〕MOV[B*],[SI]〔13〕PUSHIP〔6〕MOVBL,F(xiàn)5H〔14〕MOV[A*],23DH〔7〕MOVD*,2000H〔15〕SHLA*,5〔8〕POPCS〔16〕MULA*,B*答:〔1〕MOVAL,B*錯(cuò),源操作數(shù)為字類型,目的操作數(shù)為字節(jié)類型,二者不一致。應(yīng)改為:MOVA*,B*或MOVAL,BL;〔2〕MOVAL,SL錯(cuò),SI存放器不能分為高8位和低8位使用,即沒有SL存放器。應(yīng)改為:MOVA*,SI〔3〕INC[B*]錯(cuò),未指定操作數(shù)的類型。應(yīng)改為:INCBYTEPTR[B*]〔4〕MOV5,AL錯(cuò),目的操作數(shù)使用了立即數(shù),在指令中一般不允許。應(yīng)改為:MOVDS:[5],AL〔5〕MOV[B*],[SI]錯(cuò),源操作數(shù)和目的操作數(shù)均為存單元,不允許。應(yīng)改為:MOVA*,[SI]MOV[B*],A*〔6〕MOVBL,F5H錯(cuò),源操作數(shù)錯(cuò),以A~F開頭的數(shù)字前應(yīng)加0。應(yīng)改為:MOVBL,0F5H〔7〕MOVD*,2000H正確。〔8〕POPCS錯(cuò),不能將棧頂數(shù)據(jù)彈至CS中?!?〕MOVES,3278H錯(cuò),立即數(shù)不能直接送ES存放器。應(yīng)改為:MOVA*,3278HMOVES,A*〔10〕PUSHAL錯(cuò),棧操作不能按字節(jié)進(jìn)展。應(yīng)改為:PUSHA*〔11〕POP[B*]正確。〔12〕MOV[1A8H],23DH錯(cuò),源操作數(shù)是立即數(shù),目的操作數(shù)必須使用存放器指出。應(yīng)改為:MOVB*,1A8HMOV[B*],23DH〔13〕PUSHIP錯(cuò),不能用IP存放器做源操作數(shù)?!?4〕MOV[A*],23DH錯(cuò),不能用A*存放器間接尋址。應(yīng)改為:MOVB*,A*MOV[B*],23DH〔15〕SHLA*,5錯(cuò),不能用大于己于1的立即數(shù)指出移位位數(shù)。應(yīng)改為:MOVCL,5SHLA*,CL〔16〕MULA*,B*錯(cuò),目的操作數(shù)A*是隱含的,不能在指令中寫出。應(yīng)改為:MULB*9.設(shè)堆棧指針SP的初值為2000H,A*=3000H,B*=5000H,試問:〔1〕執(zhí)行指令PUSHA*后(SP)=.〔2〕再執(zhí)行PUSHB*及POPA*后(SP)=.(A*)=.(B*)=.答:〔1〕執(zhí)行指令PUSHA*后(SP)=2000H-2=1FFEH;〔2〕再執(zhí)行PUSHB*及POPA*后(SP)=1FFEH,(A*)=5000H,(B*)=5000H10.要想完成把[2000H]送[1000H]中,用指令:MOV[1000H],[2000H]是否正確.如果不正確,應(yīng)用什么方法.答:把[2000H]送[1000H]中,用指令MOV[1000H],[2000H]不正確,應(yīng)改為:MOVA*,[2000H]MOV[1000H],A*11.假設(shè)想從200中減去AL中的容,用SUB200,AL是否正確.如果不正確,應(yīng)用什么方法.答:想從200中減去AL中的容,用SUB200,AL不正確,應(yīng)改為:MOVBL,200SUBBL,AL12分別寫出實(shí)現(xiàn)如下功能的程序段(5)將數(shù)據(jù)段中以B*為偏移地址的連續(xù)四個(gè)單元的容顛倒過來答:(5)將數(shù)據(jù)段中以B*為偏移地址的連續(xù)四個(gè)單元的容顛倒過來的程序段是:MOVAL,[B*];數(shù)據(jù)段中B*為偏移地址的字單元容送A**CHGAL,[B*+3];數(shù)據(jù)段中B*+3為偏移地址的字單元容與A*的容交換MOV[B*],AL;數(shù)據(jù)段中B*+3為偏移地址的字單元容送B*為偏移地址的字單元MOVAL,[B*+1];數(shù)據(jù)段中B*+1為偏移地址的字單元容送A**CHGAL,[B*+2];數(shù)據(jù)段中B*+2為偏移地址的字單元容與A*的容交換MOV[B*+1],AL;數(shù)據(jù)段中B*+2為偏移地址的字單元容送B*+1為偏移地址的字單元1.假設(shè)OP1,OP2是已經(jīng)用DB定義的變量,W_OP3和W_OP4是已經(jīng)用DW定義的變量,判斷以下指令書寫是否正確.如有錯(cuò)誤,指出錯(cuò)在何處.并寫出正確的指令〔或程序段〕實(shí)現(xiàn)原錯(cuò)誤指令期望實(shí)現(xiàn)的操作((19)、(20)不改)。(1)PUSHOP1(2)POP[W_OP4](3)MOVA*,WORDPTR[SI][DI](4)MOVA*,WORDPTRES:B*(5)MOVBYTEPTR[B*],1000(6)MOVB*,OFFSET[SI+200H](7)MOVOP2,[B*](8)CMPHIGHW_OP3,25(9)CMPOP1,OP2(10)CMPA*,OP2(11)MOVW_OP3[B*+4*3][DI],SP(12)ADDW_OP3,W_OP4(13)MOVA*,W_OP3[D*](14)MOVOP1,LOWDS(15)MOVSP,OP2[B*][SI](16)MOVA*,W_OP3+W_OP4(17)MOVA*,W_OP3-W_OP4+100(18)SUBAL,W_OP3+7(19)MOVA*,B*SHL2(20)MOVB*,W_OP3AND8FD7H答:1.(1)PUSHOP1錯(cuò),OP1為字節(jié)類型,棧操作不能按字節(jié)進(jìn)展,應(yīng)改為:PUSHWORDPTROP1(2)POP[W_OP4]正確。(3)MOVA*,WORDPTR[SI][DI]錯(cuò),源操作數(shù)尋址方式有問題。應(yīng)改為:MOVB*,SIMOVA*,WORDPTR[B*][DI](4)MOVA*,WORDPTRES:B*錯(cuò),假設(shè)源操作數(shù)為存放器尋址是不能加段說明及屬性修改的。顯然,原意應(yīng)為存放器間接尋址,故應(yīng)改為:MOVA*,WORDPTRES:[B*](5)MOVBYTEPTR[B*],1000錯(cuò),源操作數(shù)為字類型,目的操作數(shù)為字節(jié)類型,二者不一致。應(yīng)改為:MOVWORDPTR[B*],1000(6)MOVB*,OFFSET[SI+200H]錯(cuò),OFFSET運(yùn)算應(yīng)在匯編時(shí)完成,但[SI+200H]在執(zhí)行指令時(shí)才可獲得。應(yīng)改為:LEAB*,[SI+200H](7)MOVOP2,[B*]錯(cuò),源操作數(shù)和目的操作數(shù)均為存單元,不允許。應(yīng)改為:MOVAL,[B*]MOVOP2,AL(8)CMPHIGHW_OP3,25錯(cuò),目的操作數(shù)中使用HIGH來別離存儲(chǔ)器操作數(shù),這是不允許的。應(yīng)改為:CMPBYTEPTRW_OP3+1,25(9)CMPOP1,OP2錯(cuò),源操作數(shù)和目的操作數(shù)均為存單元,不允許。應(yīng)改為:MOVAL,OP2CMPAL,OP1(10)CMPA*,OP2錯(cuò),源操作數(shù)為字節(jié)類型,目的操作數(shù)為字類型,二者不一致。應(yīng)改為:CMPA*,WORDPTROP2(11)MOVW_OP3[B*+4*3][DI],SP正確。(12)ADDW_OP3,W_OP4錯(cuò),源操作數(shù)和目的操作數(shù)均為存單元,不允許。應(yīng)改為:MOVA*,W_OP4ADDW_OP3,A*(13)MOVA*,W_OP3[D*]錯(cuò),不能用D*存放器間接尋址。應(yīng)改為:MOVB*,D*MOVA*,W_OP3[B*](14)MOVOP1,LOWDS錯(cuò),源操作數(shù)中使用LOW來別離存放器操作數(shù),這是不允許的。應(yīng)改為:MOVWORDPTROP1,DS(15)MOVSP,OP2[B*][SI]錯(cuò),源操作數(shù)為字節(jié)類型,目的操作數(shù)為字類型,二者不一致。應(yīng)改為:MOVSP,WORDPTROP2[B*][SI](16)MOVA*,W_OP3+W_OP4錯(cuò),兩個(gè)標(biāo)識(shí)符相加無意義。應(yīng)改為:MOVA*,W_OP1ADDA*,W_OP2(17)MOVA*,W_OP3-W_OP4+100正確,源操作數(shù)為兩個(gè)標(biāo)識(shí)符〔地址〕相減再加一數(shù),匯編時(shí)得到一個(gè)數(shù)。(18)SUBAL,W_OP3+7錯(cuò),兩個(gè)操作數(shù)類型不一致。應(yīng)改為:SUBAL,BYTEPTRW_OP3+7(19)MOVA*,B*SHL2錯(cuò),SHL只能對(duì)常量進(jìn)展運(yùn)算,左邊不能使用存放器(20)MOVB*,W_OP3AND8FD7H錯(cuò),AND只能對(duì)常量進(jìn)展運(yùn)算,左邊不能使用變量4.設(shè)已定義數(shù)據(jù)段DATASEGMENT……VAR2DW10H,7889H……VAR5DB20H,0ADRRDWVAR2,VAR5DATAENDS為使ADRR字存儲(chǔ)單元中存放容為“0010H〞,ADRR+2字存儲(chǔ)單元中存放容為“0020H〞,上述省略號(hào)位置應(yīng)分別填寫一條什么語句.說明理由。答:為使ADRR字存儲(chǔ)單元中存放容為“0010H〞,ADRR+2字存儲(chǔ)單元中存放容為“0020H〞,上述省略號(hào)位置應(yīng)分別填寫ORG10H和ORG20H,或者分別填寫語句VAR1DB10HDUP(?)和VAR36DUP(?)5.下面的數(shù)據(jù)段中,有數(shù)據(jù)為‘4100H’的字存儲(chǔ)單元有幾個(gè).它們的偏移量分別是多少.DATASEGMENTDA1DB0ORG41HDA2DB0,‘A’,41H,0,41HADRDWDA1,DA2DATAENDS答:給出的數(shù)據(jù)段中,有數(shù)據(jù)‘4100H’的字存儲(chǔ)單元有3個(gè),它們的偏移量分別是41H、44H、47H。7.試用數(shù)據(jù)定義語句DB或DW改寫下述兩語句中的*一個(gè),使它們在存儲(chǔ)器中有完全一樣的存儲(chǔ)情況。VAR1DB‘a(chǎn)bcdefghij’VAR2DW6162H,6364H,6566H,6768H,696AH答:將第一個(gè)偽指令語句改寫為VAR1DW‘a(chǎn)b’,‘cd’,‘ef’,‘gh’,‘ij’,第二個(gè)偽指令語句不變?;虻谝粋€(gè)偽指令語句不變,而將第二個(gè)偽指令語句改寫為:VAR2DB61H,62H,63H,64H,65H,66H,67H,68H,69H,6AH9.按下面的要求寫出程序的框架(1)數(shù)據(jù)段的位置從0E000H開場,數(shù)據(jù)段中定義一個(gè)100字節(jié)的數(shù)組,其類型屬性既是字又是字節(jié);(2)堆棧段從小段開場,段組名〔類別名〕為STACK;(3)代碼段中指定段存放器,指定主程序從1000H開場,給有關(guān)段存放器賦值;(4)程序完畢。答:所求程序框架為:DataSEGMENTAT0E000HArr_wLABELWORDArr_bDB100DUP(?)DataENDSSta_segSEGMENTPARA‘STACK’DB80DUP(?)TopLABELWORDSta_segENDSCodeSEGMENTASSUMECS:Code,DS:data,SS:sta_segORG1000HStart:MOVA*,dataMOVDS,A*MOVA*,Sta_segMOVSS,A*MOVSP,OFFSETTop……MOVAH,4CHINT21HCodeENDSENDStart10.編寫一個(gè)程序,要求運(yùn)行時(shí)屏幕顯示‘BELL’,同時(shí)響鈴一次(響鈴的ASCII碼為07)。答:所求程序?yàn)椋篊odeSEGMENTASSUMECS:codeStart:MOVDL,42HMOVAH,2INT21HMOVDL,45HMOVAH,2INT21HMOVDL,4CHMOVAH,2INT21HMOVDL,4CHMOVAH,2INT21HMOVDL,7MOVAH,2INT21HMOVAH,4CHINT21HCodeENDSENDStart11.假設(shè)在數(shù)據(jù)段*_SEG、附加段Y_SEG和堆棧段Z_SEG中分別定義了字變量*、Y和Z,試編制一完整的程序計(jì)算*+Y+Z,并將結(jié)果送*。答:所求程序?yàn)椋?_SEGSEGMENT*DW12eH*_SEGENDSY_SEGSEGMENTYDW4d2HY_SEGENDSZ_SEGSEGMENTSTACK‘STACK’ZDW2CAHZ_SEGENDSCodeSEGMENTASSUMECS:Code,DS:*_SEG,ES:Y_SEG,SS:Z_SEGStart:MOVA*,*_SEGMOVDS,A*MOVA*,Y_SEGMOVES,A*MOVA*,ES:YADD*,A*MOVBP,0MOVA*,[BP+Z]ADD*,A*MOVAH,4CHINT21HCodeENDSENDStart12.寫一個(gè)完整的程序放在代碼段C_SEG中,要求把數(shù)據(jù)段D_SEG中的DADD1和附加段E_SEG中的DADD2相加,并把結(jié)果存放在D_SEG段中的SUM中。其中DADD1、DADD2和SUM均為雙字類型,DADD1賦值為98765,DADD2賦值為-15893。答:所求程序?yàn)椋篋_SEGSEGMENTDADD1DD98765SUMDD?D_SEGENDSE_SEGSEGMENTDADD2DD-15893E_SEGENDSC_SEGSEGMENTASSUMECS:C_SEG,DS:D_SEG,ES:E_SEGStart:MOVA*,D_SEGMOVDS,A*MOVA*,E_SEGMOVES,A*MOVA*,WORDPTRDADD1MOVB*,WORDPTRDADD1+2ADDA*,WORDPTRES:DADD2ADCB*,WORDPTRES:DADD2+2MOVWORDPTRSUM,A*MOVWORDPTRSUM+2,B*MOVAH,4CHINT21HC_SEGENDSENDStart=======================================================一、填空題1、執(zhí)行部件EU的組織有:4個(gè)通用存放器,4個(gè)專用存放器和1個(gè)標(biāo)志存放器和算術(shù)邏輯部件。2、8086CPU從偶地址存1個(gè)字時(shí)需占用1個(gè)總線周期,而從奇地址存1個(gè)字操作需占用2個(gè)總線周期。3、IBM-PC機(jī)中的存是按段存放信息的,一個(gè)段最大存貯空間為64K字節(jié)。4、8086微處理機(jī)在最小模式下,用M/來控制輸出地址是存還是I/O。5、一臺(tái)計(jì)算機(jī)能執(zhí)行多少種指令,是在設(shè)計(jì)時(shí)確定的。二、單項(xiàng)選擇題1、微型計(jì)算機(jī)的性能主要由B來決定。A、價(jià)錢B、CPUC、控制器D、其它2、對(duì)微處理器而言,它的每條指令都有一定的時(shí)序,其時(shí)序關(guān)系是CA、一個(gè)時(shí)鐘周期包括幾個(gè)機(jī)器周期,一個(gè)機(jī)器周期包括幾個(gè)指令周期。B、一個(gè)機(jī)器周期包括幾個(gè)指令周期,一個(gè)指令周期包括幾個(gè)時(shí)鐘周期。C、一個(gè)指令周期包括幾個(gè)機(jī)器周期,一個(gè)機(jī)器周期包括幾個(gè)時(shí)鐘周期。D、一個(gè)指令周期包括幾個(gè)時(shí)鐘周期,一個(gè)時(shí)鐘周期包括幾個(gè)機(jī)器周期。3、屬于數(shù)據(jù)存放器組的存放器是CA、A*,B*,C*,DSB、SP,D*,BP,IPC、A*,B*,C*,D*D、AL,DI,SI,AH4、微型計(jì)算機(jī)的ALU部件是包含在D之中。A、存貯器B、I/O接口C、I/O設(shè)備D、CPU5、在8086和8088匯編語言中,一個(gè)字能表示的有符號(hào)數(shù)的圍是BA、-32768≤n≤32768B、-32768≤n≤32767C、-65535≤n≤65535D、-65536≤N≤655356、80386微型計(jì)算機(jī)是32位機(jī),根據(jù)是它的D。A、地址線是32位B、數(shù)據(jù)線為32位C、存放器是32位的D、地址線和數(shù)據(jù)線都是32位7、*數(shù)存于存數(shù)據(jù)段中,該數(shù)據(jù)段的段地址為2000H,而數(shù)據(jù)所在單元的偏移地址為0120H,該數(shù)的在存的物理地址為〔B〕A.02120HB.20210HC.21200HD.03200H8、在存貯器讀周期時(shí),根據(jù)程序計(jì)數(shù)器PC提供的有效地址,使用從存中取出〔D〕A.操作數(shù)B.操作數(shù)地址C.轉(zhuǎn)移地址D.操作碼9、8086/8088系統(tǒng)中,對(duì)存貯器進(jìn)展寫操作時(shí),CPU輸出控制信號(hào)有效的是〔A〕A.W/=1,=0B.=1C.M/=0,=0D.=010、在8086/8088微機(jī)系統(tǒng)中,將AL容送到I/O接口中,使用的指令是〔D〕A.INAL,端口地址B.MOVAL,端口地址C.OUTAL,端口地址D.OUT端口地址,AL三、簡答題微處理器部構(gòu)造由哪些部件組成.論述8086CPU的最小方式和最大方式的區(qū)別。論述指令周期、機(jī)器周期和時(shí)鐘周期間的關(guān)系。8086CPU從功能上分為幾局部?各局部由什么組成?各局部的功能是什么?8086系統(tǒng)中的物理地址是如何得到的?假設(shè)CS=2500H,IP=2l00H,其物理地址是多少?什么是最大模式?什么是最小模式?用什么方法將8086/8088置為最大模式和最小模式?存儲(chǔ)器分段組織有何優(yōu)越性?試述BHE與A0組合如何選擇數(shù)據(jù)字?CPU響應(yīng)中斷時(shí),為什么要執(zhí)行兩個(gè)連續(xù)的中斷響應(yīng)周期?答案:一、填空題4個(gè)通用存放器、4個(gè)專用存放器、1個(gè)標(biāo)志存放器和算術(shù)邏輯部件1個(gè)總線、2個(gè)總線64KM/設(shè)計(jì)單項(xiàng)選擇題1、B2、C3、C4、D5、B6、D7、B8、D9、A10、D三、簡答題答案:微處理器由兩局部組成,總線接口單元和執(zhí)行單元2、8086CPU的最小方式和最大方式的區(qū)別是:最小方式,MN/M*接+5V(M*為低電平),用于構(gòu)成小型單處理機(jī)系統(tǒng),支持系統(tǒng)工作的器件:(1)時(shí)鐘發(fā)生器,8284A,(2)總線鎖存器,74LS373,(3)總線收發(fā)器,74LS245,控制信號(hào)由CPU提供。最大方式,MN/M*接地(M*為低電平),用于構(gòu)成多處理機(jī)和協(xié)處理機(jī)系統(tǒng),支持系統(tǒng)工作的器件:(1)時(shí)鐘發(fā)生器,8284A,(2)總線鎖存器,74LS373,(3)總線收發(fā)器,74LS245,(4)總線控制芯片,8288,控制信號(hào)由8288提供。3、答:〔1〕.執(zhí)行一條指令所需要的時(shí)間稱為指令周期;〔2〕.一個(gè)CPU同外部設(shè)備和存儲(chǔ)器之間進(jìn)展信息交換過程所需要的時(shí)間稱為總線周期;〔3〕.時(shí)鐘脈沖的重復(fù)周期稱為時(shí)鐘周期;〔4〕.一個(gè)指令周期由假設(shè)干個(gè)總線周期組成,一個(gè)總線周期又由假設(shè)干個(gè)時(shí)鐘周期組成;〔5〕.8086CPU的總線周期至少由4個(gè)時(shí)鐘周期組成;〔6〕.總線周期完成一次數(shù)據(jù)傳輸包括:傳送地址,傳送數(shù)據(jù);〔7〕等待周期----在等待周期期間,總線上的狀態(tài)一直保持不變;〔8〕空閑周期----總線上無數(shù)據(jù)傳輸操作4、8086從功能上可分為執(zhí)行單元和總線接口單元。執(zhí)行單元的功能是負(fù)責(zé)指令的執(zhí)行,將指令譯碼并利用部存放器和ALU對(duì)數(shù)據(jù)進(jìn)展處理。它由4個(gè)通用存放器〔A*、B*、C*、D*〕,4個(gè)專用存放器〔BP、SP、SI和DI〕,標(biāo)志存放器和算術(shù)邏輯部件組成??偩€接口單元的功能是存儲(chǔ)器、I/O端口傳送數(shù)據(jù)。它由4個(gè)段存放器〔CS、DS、ES、SS〕,指令指針存放器IP,20位地址加法器和6個(gè)字節(jié)的指令隊(duì)列組成。5、在8086系統(tǒng)中,用16位的段地址和16位的偏移地址來表示20位的物理地址,物理地址=段地址*16+偏移址得到物理地址。該題CS=2500H,IP=2l00H,則物理地址=CS*16+IP=2500H*16+2100H=27100H6、最大模式是相對(duì)最小模式而言,系統(tǒng)中包含兩個(gè)或多個(gè)處理品,其中一個(gè)主處理器就是8088/8086,其它處理器是協(xié)處理器,它是協(xié)助主處理器工作的。將MN/M**置0即為最大模式。最小模式又是相對(duì)于最大模式,就是在系統(tǒng)中只有一個(gè)處理器,所有的總線控制信號(hào)都有由8088/8086產(chǎn)生,系統(tǒng)中總線控制邏輯電路少,將MN/M**置1即為最大模式。7、減少了指令的長度,提高了執(zhí)行速度。存分段為程序浮動(dòng)加載創(chuàng)造了條件。使程序保持完整的相對(duì)性,具備了浮動(dòng)性。8、的作用是高8位數(shù)據(jù)允許,A0=0是低8位數(shù)據(jù)允許,在T1狀態(tài)時(shí),和A0組合起來表示連接在數(shù)據(jù)總線上的存儲(chǔ)器和I/O端口當(dāng)前的數(shù)據(jù)在總線上出現(xiàn)有格式。9、CPU響應(yīng)中斷時(shí),執(zhí)行兩個(gè)連續(xù)的中斷響應(yīng)周期,每個(gè)響應(yīng)周期都給出中斷響應(yīng)信號(hào)。這是因?yàn)榈谝粋€(gè)總線周期通知中斷請(qǐng)示設(shè)備,微處理器準(zhǔn)備響應(yīng)中斷,應(yīng)該準(zhǔn)備好中斷類型碼,第二個(gè)總線周期中,微處理器接收中斷類型碼,以便得到中斷向量,即中斷效勞程序的入口地址。2.根據(jù)以下要求編寫一個(gè)匯編語言程序::〔1〕代碼段的段名為COD_SG〔2〕數(shù)據(jù)段的段名為DAT_SG〔3〕堆棧段的段名為STK_SG〔4〕變量HIGH_DAT所包含的數(shù)據(jù)為95〔5〕將變量HIGH_DAT裝入存放器AH,BH和DL〔6〕程序運(yùn)行的入口地址為START2、答案:DAT_SG SEGEMNT HIGH_DAT DB 95DAT_SG ENDS;STK_SG SEGMENT DW 64DUP(?)STK_SG ENDS;COD_SG SEGMENTMAIN PROC FARASSUME CS:COD_SG,DS:DAT_SG,SS:STK_SGSTART: MOV A*,DAT-SG MOV DS,A* MOV AH,HIGH_DAT MOV BH,AHMOV DL,AHMOV AH,4CHINT 21HMAIN ENDPCOD_SGENDS END START3、定義一個(gè)數(shù)據(jù)段的字符變量和數(shù)據(jù)變量。TRING為字符串變量:‘Personalputer’VALD為十進(jìn)制數(shù)字節(jié)變量12,99VALH為十六進(jìn)制數(shù)字變量32H,0FAHVALZ為10個(gè)零的字節(jié)變量VALW為20個(gè)字單元3、答案:DATASEGMENTTRINGDB‘Personalputer’VALDDB12,99VALHDB32H,0FAHVALZDB10DUP〔‘0’VALWDW20DUP〔.〕5、以下標(biāo)號(hào)為什么是非法的? (1)GET.DATA (2)1_NUM (3)TEST-DATA (4)RET (5)NEWITEM答:非法標(biāo)號(hào):(1)因?yàn)椤?’只允許是標(biāo)號(hào)的第一個(gè)字符(2)第一個(gè)字符不能為數(shù)字(3)不允許出現(xiàn)‘-’(4)不能是保存字,如助記符(5)不能有空格6、下面的數(shù)據(jù)項(xiàng)設(shè)置了多少個(gè)字節(jié)? (1)ASC_DATA DB ‘1234’答案:(1)設(shè)置了4個(gè)字節(jié)(2)設(shè)置了2個(gè)字節(jié)7、 DATA SEGMENT TABLE_ADDR DW 1234H DATA ENDS ... MOV B*,TABLE_ADDR LEA B*,TABLE_ADDR 請(qǐng)寫出上述兩條指令執(zhí)行后,B*存放器中的容。答案:MOV B*,TABLE_ADDR ;執(zhí)行后(B*)=1234HLEA B*,TABLE_ADDR ;執(zhí)行后(B*)=OFFSETTABLE_ADDR8、寫出分配給以下中斷類型號(hào)在中斷向量表中的物理地址。(1)INT12H (2)INT8答案:(1)00048h(2)00020h9、AR1和VAR2為字變量,LAB為標(biāo)號(hào),試指出以下指令的錯(cuò)誤之處?!?〕ADDVAR1,VAR2〔2〕SUBAL,VAR1〔3〕JMPLAB[SI]〔4〕JNZVAR19、答案:源和目的不能同為存變量兩個(gè)類型不匹配LAB為標(biāo)號(hào)不為符號(hào)常量JNZ可跳轉(zhuǎn)到標(biāo)號(hào),不能跳轉(zhuǎn)到變量。二、填空題1、假設(shè)〔DS〕=2000H,〔B*〕=1256H,〔SI〕=528FH;位移量TABLE=20A1H,〔232F7H〕=3280H,〔264E5H〕=2450H,則執(zhí)行指令JMPB*后,〔IP〕=;執(zhí)行指令JMPTABLE[B*]后,〔IP〕=;執(zhí)行指令JMP[B*][SI]后,〔IP〕=。2、在1000H單元中有一條二字節(jié)指令JMPSHORTLAB,如果其中偏移量分別為30H、6CH、0B8H,則轉(zhuǎn)向地址LAB的值分別為;;;3、數(shù)據(jù)段中有以下定義:ARRAY1EQU16HARRAY2DW16H請(qǐng)指出下面兩條指令的尋址方式:MOVA*,ARRAY1;尋址方式。MOVA*,ARRAY2;尋址方式。4、下面兩個(gè)語句的區(qū)別在于、。*1EQU1000H*2=1000H5、指令“ANDA*,STR1ANDSTR2”6、指令LOOPZ/LOOPE是結(jié)果或發(fā)生轉(zhuǎn)移的指令。而指令LOOPNZ/LOOPNE則是結(jié)果或發(fā)生轉(zhuǎn)移的指令。7、調(diào)用指令CALL可分為、、和等四種調(diào)用。8、在匯編語言中,一個(gè)過程有NEAR和FAR兩種屬性。NEAR屬性說明主程序和子程序,F(xiàn)AR屬性表示主程序和子程序。9、串處理指令規(guī)定源存放器使用,源串在段中;目的存放器使用,目的串必須在段中。10、是過程定義完畢偽指令,與配套使用。是段定義完畢偽指令,與配套使用。答案:填空題1、1256H、3280H、2450H2、1030H,106CH,10B8H3、立即數(shù)尋址方式、直接尋址方式4、=可以二次賦值,EQU不能直接下次賦值,如果要二次賦值,必須使用PURGE解除后才行。5、前一個(gè)AND是一個(gè)命令,后一個(gè)AND是一個(gè)運(yùn)算符。6、相等、零,不相等,不為零7、段直接,段間接,段間直接,段間間接8、在同一個(gè)段,不在同一個(gè)段。9、SI,DS,DI,ES10、ENDP,必須與過程名,ENDS,必須與段名三、選擇題1、執(zhí)行以下程序,選擇正確的結(jié)果:MOVSP,2000HMOVA*,0F0HMOVSI,1234HMOVD*,5678HPUSHSIPOPDISHLD*,1TESTA*,D*PUSHD*HLT〔1〕SP=;A〕2000HB〕1FFFHC〕2001HD〕1FFEH〔2〕DH容所在存儲(chǔ)器的偏移地址為;A〕1FFFHB〕1FFEHC〕1FFDHD〕1FFCH〔3〕DL容所在存儲(chǔ)器的偏移地址為;A〕1FFFHB〕1FFEHC〕2000HD〕1FFCH〔4〕〔A*〕=;A〕0HB〕78HC〕0F0HD〕56H〔5〕〔DI〕=。A〕1234HB〕5678HC〕2000HD〕00F0H〔6〕〔D*〕=;A〕5678HB〕0ACF0HC〕2B3CHD〕0ABF0H〔7〕標(biāo)志位ZF=。A)0B)1C)不定D〕無值2、下面是多字節(jié)加法程序,第一個(gè)數(shù)和是8A0BH,第二個(gè)數(shù)是D705H。DATA SEGMENTFIRST DB〔1〕,〔2〕,0HSECONDDB〔3〕,〔4〕DATA ENDSCODE SEGMENT ASSUMECS:CODE,DS:DATASTART:MOVA*,DATA MOVDS,A* MOVC*,〔5〕 MOVSI,0〔6〕NE*T:MOVAL,SECOND[SI] ADCFIRST[SI],AL INCSI LOOPNE*T MOVAL,0 ADCAL,〔7〕 MOVFIRST[SI],AL MOVAH,4CH INT21HCODE ENDS ENDSTART請(qǐng)選擇正確的答案填入空格中:〔1〕A〕8AHB〕0BH C〕D7HD〕05H〔2〕A〕8AHB〕0BHC〕D7HD〕05H〔3〕A〕8AHB〕0BHC〕D7HD〕05H〔4〕A〕8AHB〕0BHC〕D7HD〕05H〔5〕A〕3B〕2C〕1D〕4〔6〕A〕CLCB〕CLDC〕STCD〕CLI〔7〕A〕1B〕-1C〕0D〕0FFH答案:選擇題1、〔1〕、D〔2〕、A〔3〕、B〔4〕、C〔5〕、A〔6〕、B〔7〕、A2、〔1〕、B〔2〕、A〔3〕、D〔4〕、C〔5〕、B〔6〕、A〔7〕、C四、完成以下練習(xí)設(shè)〔DS〕=0300H,〔CS〕=0200H,〔IP〕=0100H,〔B*〕=1000H,DISPLACE=2000H,〔4000H〕=5000H,〔6000H〕=8000H確定無條件轉(zhuǎn)換指令的段轉(zhuǎn)移地址JMPB*JMP[B*]JMPDISPLACE[B*]答:1000H,5000H,8000H設(shè)A*和B*存放器中是有符號(hào)數(shù),C*和D*存放器中是無符號(hào)數(shù),寫出以下條件轉(zhuǎn)移指令。C*值高于或等于D*值,則轉(zhuǎn)移HIEQUA*值大于B*值,則轉(zhuǎn)移GREATC*值為0,則轉(zhuǎn)移ZEROA*值小于或等于B*值,則轉(zhuǎn)移SMAEQUC*值低于或等于D*值,則轉(zhuǎn)移LOWEQUA*為負(fù)值,則轉(zhuǎn)移NEGATA*為偶數(shù),則轉(zhuǎn)移IMAGE2、答案:CMPC*,D*JNBHIEQU::HIEQU:CMPA*,B*JGGREAT::GREAT:CMPC*,0JZZERO::ZERO:CMPA*,B*JLESMAEQU::SMAEQU:CMPC*,D*ELOWEQU::LOWEQU:CMPA*,0JSNEGAT::NEGAT:TESTA*,A*JPIMAGE::IMAGE:寫出以下串操作指令所替代的指令序列。REPMOVSBREPLODSBREPSTOSBREPSCASB3、答案:〔1〕MOVDS,SEGSOURCEMOVES,SEGTDESTMOVSI,OFFSETSOURCEMOVDI,OFFESTDESTMOVC*,NAGAIN:MOVAL,[SI]MOVES:[DI],ALINCSIINCDILOOPAGAIN〔2〕MOVDS,SEGSOURCEMOVSI,OFFSETSOURCEMOVC*,NAGAIN:MOVAL,[SI]INCSILOOPAGAIN〔3〕MOVES,SEGTDESTMOVDI,OFFESTDESTMOVC*,NAGAIN:MOVES:[DI],ALINCDILOOPAGAIN〔4〕MOVES,SEGTDESTMOVDI,OFFESTDESTMOVC*,NAGAIN:CMPAL,ES:[DI]INCDILOOPAGAIN五、是非判斷題程序在數(shù)據(jù)段中的定義如下:DATA SEGMENTNAMES DB‘ABCD’NAMET DW20DATA ENDS請(qǐng)判斷以下指令是否正確.正確的填‘A’,錯(cuò)誤的填‘B’。MOVB*,OFFSETNAMES〔〕(2)MOVAL,[B*+2]〔〕(3)MOVA*,NAMES〔〕(4)MOVA*,WORDPTRNAMES+1〔〕(5)MOVAL,NAMET〔〕(6)MOVAL,BYTEPTRNAMET〔〕(7)MOVA*,DATA〔〕(8)MOVDS,A*〔〕(9)MOVA*,SEGNAMES〔〕(10)MOVB*,DATA〔〕答案:五、是非判斷題〔1〕A〔2〕B〔3〕B〔4〕A〔5〕B〔6〕A〔7〕A〔8〕A〔9〕A〔10〕A六、請(qǐng)閱讀以下程序,分析其功能或結(jié)果MOVAH,00INT16HMOVAH,0AHMOVC*,00MOVBH,00INT10HMOVAH,00MOVAL,66MOVD*,00INT17HMOVAH,00MOVAL,0DHINT17HMOVAH,07MOVAL,00MOVBL,70HMOVCH,02MOVCL,05MOVDH,22MOVDL,38INT10H4、MESS DB‘PRESSANYKEY’,0DH,0AH,‘$’ MOVAH,09 MOVD*,SEGMESS MOVDS,D* MOVD*,OFFSETMESS INT21H5、MOVAH,2MOVDL,1INT21H答案:六、請(qǐng)閱讀以下程序,分析其功能或結(jié)果1、讀取鍵盤輸入,并顯示在顯示器上。2、在打印機(jī)一輸出字符‘B’,并回車。3、屏幕初始化,左上角行號(hào)為2,左上角列號(hào)為5,右下角行號(hào)為22,右下角列號(hào)為38,使用整個(gè)空白窗口。4、在屏幕上輸出PRESSANYKEY并換行回車。5、在屏幕上輸出1七、編寫程序試編寫一個(gè)匯編語言程序,要求對(duì)鍵盤輸入的小寫字母用大寫字母顯示出來。編寫程序,比擬兩個(gè)字符串STRING1和STRING2所含字符是否完全一樣,假設(shè)一樣則顯示“MATCH〞,假設(shè)不同則顯示“NOMATCH〞。3.試編寫程序,要求從鍵盤輸入3個(gè)16進(jìn)制數(shù),并根據(jù)對(duì)3個(gè)數(shù)的比擬顯示如下信息: 〔1〕如果3個(gè)數(shù)都不相等則顯示0; 〔2〕如果3個(gè)數(shù)中有2個(gè)數(shù)相等則顯示2; 〔3〕如果3個(gè)數(shù)都相等則顯示3。4.整數(shù)變量A和B,試編寫完成下述操作的程序:〔1〕假設(shè)兩個(gè)數(shù)中有一個(gè)是奇數(shù),則將該奇數(shù)存入A中,偶數(shù)存入B中;〔2〕假設(shè)兩個(gè)數(shù)均為奇數(shù),則兩數(shù)分別加1,并存回原變量;〔3〕假設(shè)兩個(gè)數(shù)均為偶數(shù),則兩變量不變。5.把0~10010之間的30個(gè)數(shù),存入首地址為GRAD的字?jǐn)?shù)組中,GRAD+i表示**為i+1的學(xué)生成績。另一個(gè)數(shù)組RANK是30個(gè)學(xué)生的名次表,其中RANK+I的容是**為i+1的學(xué)生的名次。試編寫程序,根據(jù)GRAD中的學(xué)生成績,將排列的名次填入RANK數(shù)組中〔提示:一個(gè)學(xué)生的名次等于成績高于這個(gè)學(xué)生的人數(shù)加1〕。6.試編寫程序,它輪流測試兩個(gè)設(shè)備的狀態(tài)存放器,只要一個(gè)狀態(tài)存放器的第0位為1,則與其相應(yīng)的設(shè)備就輸入一個(gè)字符;如果其中任一狀態(tài)存放器的第3位為1,則整個(gè)輸入過程完畢。兩個(gè)狀態(tài)存放器的端口地址分別是0024和0036,與其相應(yīng)的數(shù)據(jù)輸入存放器的端口則為0026和0038,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論