工業(yè)用微型計算機串講資料一_第1頁
工業(yè)用微型計算機串講資料一_第2頁
工業(yè)用微型計算機串講資料一_第3頁
工業(yè)用微型計算機串講資料一_第4頁
工業(yè)用微型計算機串講資料一_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一章 微型計算機基礎(chǔ) 本章主要介紹了微型計算機的發(fā)展、系統(tǒng)組成和微處理器,同時也分析了計算機中涉及的常見編碼形式和數(shù)制的相關(guān)內(nèi)容。通過本章的學(xué)習(xí),了解典型的微處理器特點,以及各自的差異,會熟練應(yīng)用數(shù)制和編碼的有關(guān)知識,解決實際問題。同時也要了解微型計算機的發(fā)展,從而在整體上把握計算機的由來和微型計算機在整個計算機中的地位。 一、重點提示 本章的重點是掌握計算機中無符號數(shù)和有符號數(shù)的表示方法;各種進制的轉(zhuǎn)換關(guān)系; CPU中的功能結(jié)構(gòu)和各個寄存器的用途;存儲器的結(jié)構(gòu);最后能理解計算機的工作原理。 二、難點提示 1計算機中的數(shù)制和編碼 2無符號數(shù)和有符號數(shù)的表示方法 3各種進制的轉(zhuǎn)換關(guān)系 4CPU

2、的結(jié)構(gòu)和寄存器 5存儲器的結(jié)構(gòu) 1微型計算機的發(fā)展 2計算機中的數(shù)制和編碼系統(tǒng) (1)無符號數(shù)的表示和運算 (2)帶符號數(shù)的表示方法 (3)8位與16位二進制數(shù)的范圍 (4)計算機中的字符編碼 3微型計算機系統(tǒng)的組成 (1)微型計算機系統(tǒng)的構(gòu)成 (2)工業(yè)微型計算機概況 (3)微型計算機中的外圍設(shè)備 4微處理器 (1)Intel 8088/8086微處理器 (2) Intel 80286、80386、80486微處理器 (3)Pentium微處理器 (4)CPU主板和CPU卡一、單項選擇題1若十進制數(shù)據(jù)為137.5則其八進制數(shù)為 ( ) A. 89.8 B211.4 C211.5 D10111

3、11.101 答案B 【解析】十進制數(shù)轉(zhuǎn)化為八進制數(shù)時,整數(shù)部分和小數(shù)部分要用不同的方法來處理。 整數(shù)部分的轉(zhuǎn)化采用除基取余法:將整數(shù)除以8,所得余數(shù)即為八進制數(shù)的個位上數(shù)碼,再將商除以8,余數(shù)為八進制十位上的數(shù)碼如此反復(fù)進行,直到商是O為止;對于小數(shù)的轉(zhuǎn)化,采用乘基取整法:將小數(shù)乘以8,所得積的整數(shù)部分即為八進制數(shù)十位上的1數(shù)碼,再將此積的小數(shù)部分乘以8,所得積的整數(shù)部分為八進制數(shù)百分位上的數(shù)碼,如此反復(fù)直到積是0為止。此題經(jīng)轉(zhuǎn)換后得八進制數(shù)為211.4。2若十進制數(shù)為132.75,則相應(yīng)的十六進制數(shù)為 ( )A. 21.3 B84C C24.6 D84.6 答案B 。 【解析】十進制數(shù)轉(zhuǎn)化

4、為十六進制數(shù)時,采用除16取余法;對于小數(shù)的轉(zhuǎn)化,采用乘16取整法:將小數(shù)乘以16,所得積的整數(shù)部分轉(zhuǎn)換為十六進制。此題經(jīng)轉(zhuǎn)換后得十六進制數(shù)為84C。3若十六進制數(shù)為A3.5,則相應(yīng)的十進制數(shù)為 ( ) A172.5 B179.3125 C163.3125 D188.5 答案C 【解析】將十六進制數(shù)A3.5轉(zhuǎn)換為相應(yīng)的十進制數(shù),可采用乘冪相加法完成,即:。4若二進制數(shù)為1111.101,則相應(yīng)的十進制數(shù)為 ( ) A15.625 B15.5 C14.625 D14.5答案A【解析】將二進制數(shù)1111.101轉(zhuǎn)換為相應(yīng)的十進制數(shù),可采用乘冪相加,法完成,即:。5若十六進制數(shù)為B5.4,則相應(yīng)的十

5、進制數(shù)為 ( ) A176.5 B176.25 C181.25 D181.5答案C【解析】將十六進制數(shù)B5.4轉(zhuǎn)換為相應(yīng)的十進制數(shù),可采用乘冪相加祛完成,即: (1)十進制轉(zhuǎn)換為二進制 方法:整數(shù)部分除2取余,小數(shù)部分乘2取整。 (2)二進制轉(zhuǎn)換為八進制 方法:以小數(shù)點為界,整數(shù)部分從右向左每三位分為一組,最左端不夠三位補零;小數(shù)部分從左向右每三位分為一組,最右端不夠三位補零;最后將每小組轉(zhuǎn)換為一位八進制數(shù)。(3)二進制轉(zhuǎn)換為十六進制 方法:以小數(shù)點為界,整數(shù)部分從右向左每四位分為一組,最左端不夠四位補零;小數(shù)部分從左向右每四位分為一組,最右端不夠四位補零;最后將每小組轉(zhuǎn)換為一位十六進制數(shù)。6

6、如果X為負數(shù),由x補求-x補是將 ( ) Ax補各值保持不變 BX補符號位變反,其他各位不變 Cx補除符號位外,各位變反,末位加1 pX-補連同符號位一起各位變反,末位加1 答案D 【解析】不論X是正數(shù)還是負數(shù),由x補求-x補的方法是對X補求補,即連同符號位一起按位取反,末位加1。7若x補=0.1101010,則x原= ( )A. 1.0010lOl B.I. 0010llO C. 0.0010110 D. 0. llO1OlO 答案D 【解析】正數(shù)的補碼與原碼相同,負數(shù)的補碼是用正數(shù)的補碼按位取反,末位加1求得。此題中X補為正數(shù),則X原與X補相同。8若x= 1011,則x補: ( ) A01

7、011 B1011 C0101 D10101 答案A 【解析】x為正數(shù),符號位為0,數(shù)值位與原碼相同,結(jié)果為01011。9若x補=1.1011,則真值X是 ( ) A-0.1011 B-0.0101 C0.1011 D.O. 0101 答案B 【解析】x補=1. 1011,其符號位為1,真值為負;真值絕對值可由其補碼經(jīng)求補運算得到,即按位取后得0.0t00,在末位加1得O,0101,故其真值為-0.0101。10.設(shè)有二進制數(shù)x=-llOlllO,若采用8位二進制數(shù)表示,則x補 ( ) A. 1tl01101 B.10010011 C0001001 1 D10010010 答案D 【解析】x=

8、-1101110為負數(shù),負數(shù)的補碼是將二進制位按位取反后在最低位上加1,故x補=10010010。11.若Ex-1補-0. 1011,則真值X= ( ) A0.1011 B0.0101 C1.1011 D.l. 0101 答案A 【解析】x補=0.1011,其符號位為0,-真值為正;真值就是0.1011。12.若定點整數(shù)64位,含1位符號位,補碼表示,則所能表示的絕對值最大負數(shù)為 ( ) A-264 B-(264_L1) C-263 D-(263-1) 答案C【解析】字長為64位,符號位為1位,則數(shù)值位為63位。當(dāng)表示負數(shù)時,數(shù)值位全0為負絕對值最大,為。13.8位二進制無符號數(shù)的表示范圍是

9、( ) A0128 B-127+128 C-128+127 D0255答案D【解析】8位二進制無符號數(shù)的表示范圍是02558位二進制符號數(shù)的表示范圍是-128+12714.一個n+l位整數(shù)原碼的數(shù)值范圍是 ( )ABCD 答案D 【解析】 “O”是一個特殊的狀態(tài)15.9的ASCII碼是 ( ) A39 B41H C28H D39H 答案D 【解析】 09的ASCII碼是30H39H; AZ的ASCII碼是41H5AH; az的ASCII碼是61H7AH。16.在按字節(jié)編址的存儲器中,每個編址單元中存放 ( ) A1位 B8位 C16位 D32位 答案B 【解析】在按字節(jié)編址在存儲器中,每個編址

10、單元的容量為一個字節(jié),一個字節(jié)由8位二進制數(shù)組成,一個字節(jié)存儲單元可以存放8位二進制位。17設(shè)當(dāng)前的CS=8915H,IP=0100H,那么當(dāng)前取指令的首地址是從( )開始的。 A. 8A150H B89250H C18195H D0100H 答案B 【解析】這個題主要考查了我們2個主要的知識結(jié)構(gòu),一個是地址合成公式:一個20位物理地址=基址×16+偏移地址 另一個是取指令的首地址在代碼段,代碼段的基址在CS寄存器,偏移地址在IP中所以取指令的首地址:8915H×16+0100H=89150H+0100H=89250H。18.設(shè)當(dāng)前的DS=D200H,SI=2E00H,取數(shù)

11、據(jù)又是從具體的( )存儲單元獲得的。AD2E00H B2E00H CD4E00H DD2000H 答案C【解析】數(shù)據(jù)段基址在DS寄存器,偏移地址可以由SI給出,所以:數(shù)據(jù)的存儲單元物理地址= D2000H+ 2E00H=D4E00H。19如果把地址用CS:IP形式表達,具體寫成為2200H:4000H,具體的物理地址是 ( ) A22000H B4000H C6200H D26000H 答案D 【解析】 物理地址=22000H+4000H=26000H20.若寄存器AX,BX的內(nèi)容分別為1110H,5678H時,依次執(zhí)行PUSH AX,PUSHBX,POP AX,POP BX后,則寄存器AX和

12、BX的內(nèi)容分別為 ( ) A. 1110H,7856H B.5678H,1234H C. 5678H,1110H D.7856H,1011H 答案C【解析】基本操作及地址的變化規(guī)律:入棧:先修改指針SP= SP-1,再把數(shù)據(jù)放入堆棧 出棧:先把數(shù)據(jù)從堆棧中取出,再修改指針SP=SP+121. 8086CPU中斷請求線有 ( ) A.1條 B2條 C4條 D8條 答案B 【解析】8086CPU中斷請求線有INTR和NMI兩條。它們都是外部中斷申請輸入端。22當(dāng)8086處于單步工作方式時,必須為1的標志位的是 ( ) AIF BSF CTF DOF 答案C 【解析】TF稱為跟蹤標志位。如果讓808

13、6處于單步工作方式,則TF需設(shè)置為1。若想讓CPU工作在全速運行狀態(tài)下,則要設(shè)成O。23二進制數(shù)00000110的8421BCD碼表示的十進制數(shù)是 ( ) A3 B4 C5 D6 答案D 【解析】8421BCD碼中的O9對應(yīng)的二進制數(shù)應(yīng)該熟記:8421BCD碼二進制數(shù)O000010001200103001140100501016011070111810009100124.8086微處理器的引腳是屬于 ( ) A輸入信號 B數(shù)據(jù)信號 C控制信號 D地址信號 答案C 【解析】在8086微處理器的控制引腳中,要重點掌握讀寫控制信號的引腳和它們的方向。引腳和引腳本身都是輸出引腳,但是在這2個引腳的信號

14、輸出之后,接下來的數(shù)據(jù)總線上的信號傳送方向就是從CPU片外取回數(shù)據(jù)這是在讀控制信號輸出之后,而CPU把內(nèi)部的數(shù)據(jù)輸出給片外這是在寫信號之后的動作過程。二、填空題1在CPU的狀態(tài)寄存器中,常設(shè)置以下狀態(tài)位:零標志位(Z),負標志位(N),和。 答案溢出標志位(V) 進位或借位標志位(C) 【解析】在CPU中專門設(shè)置有一個存儲計算機狀態(tài)的寄存器,稱為狀態(tài)寄存器SR,其中通常包括如下標志位:零標志位(Z)、負標志位(N)、溢出標志位(V)、進位或借位標志位(C)等。2IP是寄存器,主要作用是。答案 指令指針 用以存放預(yù)取指令的偏移地址。 【解析】IP是一個很主要的寄存器。CPU從代碼段中偏移地址為I

15、P的內(nèi)存單元中取出指令代碼的一個字節(jié),然后IP自動加1,指向指令代碼的下一個字節(jié)。用戶不能編程直接訪問IP。3.8086內(nèi)部有個位的寄器,按其功能,可以分為三大類:第一類是寄存器(8個),第二類是寄存器(4個),第三類是寄存器(2個)。 答案 14 16通用段控制【解析】8086內(nèi)部有14個16位的寄存器。在通用寄存器中包括數(shù)據(jù)寄存器,地址寄存器,變址寄存器等3小類。段寄存器主要是存儲器的四段:數(shù)據(jù)段基址寄存器DS,代碼段基址寄存器CS,堆棧段基址寄存器SS,附加數(shù)據(jù)段基址寄存器ES??刂萍拇嫫髦饕ㄖ噶钪羔樇拇嫫鱅P和標志寄存器FLAGS。4已知x= 0101,y=0101,請用補碼一位乘

16、法中的Booth算法計算xy2=。 答案-25 【解析】x=0101,x補=0101,-X補=1011,y=-0101,y補=1011循環(huán)i步驟乘積(RO Rl P)O初始值0000 1011 01減01011011 1011 0右移1位1101 1101 12無操作1101 1101 1右移1位1110 1110 13加01010011 1110 1右移1位0001 1111 04減01011100 1111 0右移1位1110 0111 1 所以結(jié)果為xy補=11101111,真值為-00011001,十進制值為-25。 補碼一位乘法中的Booth算法是一種對帶符號數(shù)進行乘法運算的十分有效

17、的處理方法,采用相加和相減的操作計算補碼數(shù)據(jù)的乘積。做法是從最低位開始,比較相臨的數(shù)位,相等時不加不減,只進行右移位操作;不相等(01)時加乘數(shù),不相等(10時)相減乘數(shù),再右移位;直到所有位均處理完畢。5已知x=0011,y= -0101,試用原碼一位乘法求xy=。答案-00001111B【解析】x原=00011,y原=10101,結(jié)果的符號位1O=1循環(huán)步驟乘積(RO Rl)O初始值000001011加00110011 0101右移1位0001 10102加O0001 1010右移1位0000 11013加00110011 1101右移1t位0001 11104加00001 1110右移1

18、位0000 1111所以結(jié)果為-00001111B。 原碼一位乘法中,符號位與數(shù)值位是分開進行計算的。運算結(jié)果的數(shù)值部分是乘數(shù)與被乘數(shù)數(shù)值位的乘積,符號是乘數(shù)與被乘數(shù)符號位的異或。原碼一位乘法的每一次循環(huán)的操作是最低位為1,加被乘數(shù)的絕對值后右移1位;最低位為0,加0后右移1位。幾位乘法就循環(huán)幾次。6設(shè)(DS)=2000H,(SS)=2410H,(AX)=2510H,(SP)=0206H,則指令PUSHAX執(zhí)行之后對應(yīng)的AX低8位()和高8位()分別放在()和()2個物理地址中。 答案10H 25H 20204H 20205H 【解析】注意字的高低八位,和物理地址的合成。7不可屏蔽中斷從808

19、6CPU的引腳進入。 答案NMI【解析】8086CPU有2種外部中斷源,一個是從INTR引腳輸入的可屏蔽中斷源,另一個就是題中說的不可屏蔽的中斷源。第二章8086/8088微處理器的指令系統(tǒng) 本章主要介紹了微型計算機指令系統(tǒng)中的尋址方式,各類指令格式,應(yīng)用DEBUG調(diào)試簡單的應(yīng)用程序,通過對常見指令的分析和學(xué)習(xí),能熟悉利用DEBUG調(diào)試程序上機,編寫程序段和運行該程序段,查看標志的變化,存儲器和各寄存器的內(nèi)容變化,進而理解微處理器的工作原理和工作過程。 一、重點提示 本章的重點是理解每種尋址方式的操作數(shù)所在的位置,不同指令使用的操作數(shù)形式的差異,對堆棧操作指令的理解以及堆棧的操作過程,能夠判斷

20、一條指令的尋址方式,典型指令的實際應(yīng)用。 數(shù)據(jù)的尋址方式: 1立即尋址 操作數(shù)直接在指令中給出。例:MOV AL,50 2寄存器尋址 指令的操作碼是一個寄存器,操作數(shù)在這個寄存器中。例:ADD AX,BX,將AX中的內(nèi)容和BX中的內(nèi)容相加后,結(jié)果送AX。 3直接尋址 操作數(shù)在存儲器中的地址在指令中直接給出。例:ADD AX,-I000H,將存儲單元1000H中的內(nèi)容和AX中的內(nèi)容相加后,結(jié)果送AX。 4寄存器間接尋址 操作數(shù)的地址在寄存器中,其寄存器在指令中給出。例:MOV AX,SI,將寄存器SI中的內(nèi)容作為訪問存儲器的某個單元的地址,然后取出地址中的操作數(shù)送入AX。 5變址尋址 是由指令提

21、供基地址、變址寄存器提供偏移爨,此尋址方式面向用戶,常用于訪問字符串、向量數(shù)據(jù)結(jié)構(gòu)和循環(huán)程序設(shè)計。 6基址尋址 是由基址寄存器提供基準地址、指令提供偏移量;此尋址方式面向系統(tǒng),由邏輯地址空間到物理地址空間的變換提供支持,用以解決程序在存儲器中再定位和擴大尋址空間。等問題。 7基址一變址尋址 操作數(shù)的地址是程序計數(shù)器PC的值加上偏移量形成的,這個偏移量在指令中給出。是一種特殊的變址尋址方式,偏移量用補碼表示,可正可負。相對尋址可用較短的地址碼訪問內(nèi)存。 二、難點提示 1操作碼和操作數(shù)的實質(zhì) 2尋址方式的判斷 3指令的執(zhí)行過程 4堆棧操作的過程 5指令執(zhí)行結(jié)果的分析1尋址方式(1)指令格式(2)立

22、即數(shù)尋址(3)寄存器操作數(shù)尋址(4)存儲器操作數(shù)尋址:直接尋址,寄存器尋址,變址尋址,基址-變址尋址2.8088/8086指令系統(tǒng)(1)數(shù)據(jù)傳送指令(2)算術(shù)運算指令 (3)邏輯運算指令和移位指令(4)串操作指令(5)控制轉(zhuǎn)移指令(6)位處理器控制指令3DEBUG調(diào)試程序的簡單應(yīng)用表2-1數(shù)據(jù)傳送指令助記符功能通用數(shù)據(jù)傳送指令MOV傳送字節(jié)或字PUSH字人棧POP字出棧XCHG交換字節(jié)或字XLAT字節(jié)轉(zhuǎn)換地址目標傳送指令LEA裝入有效地址LDS將指針變量裝入寄存器及DSLES將指針變量裝入寄存器及ES標志傳送指令LAHF標志寄存器低字節(jié)送AHSAHFAH值送標志寄存器低字節(jié)PUSHF標志寄存器

23、內(nèi)容進棧POPF標志寄存器內(nèi)容出棧I/O指令I(lǐng)N輸入字節(jié)或字OUT輸出字節(jié)或字表2-2算術(shù)運算指令助記符功能加法指令A(yù)DD加法ADC帶進位的加法INC增量(加1)AAA加法的ASCII修正DAA加法的十進制修正減法指令SUB減法SBB帶借位的減法、DEC減量(減1)NEG求補(變負)CMP比較AAS減法的ASCII修正DAS減法的十進制修正乘法指令MUL無符號數(shù)乘法IMUI。整數(shù)乘法AAM乘法的ASCII修正除法指令DIV無符號數(shù)除法IDIV整數(shù)除法AAD除法的ASCII修正轉(zhuǎn)換CBW字節(jié)轉(zhuǎn)換為字CWD字轉(zhuǎn)換為雙字表2-3位處理指令助記符功能邏輯運算符AND邏輯“與”0R邏輯“或”NOT邏輯“

24、非”XOR邏輯“異或”TEST測試移位指令SHL邏輯左移SAL算術(shù)左移SHR邏輯右移SAR算術(shù)右移循環(huán)移位指令ROL循環(huán)左移ROR循環(huán)右移RCL通過CF循環(huán)左移RCR通過CF循環(huán)右移表2-4 串操作指令助記符功能串操作指令MOVS( MOVSB, MOVSW)串傳送(字節(jié)傳送,字傳送)CMPS(CMPSB, CMPSW)串比較(字節(jié)比較,字比較)STOS(STOSB, STOSW)存入串(存入字節(jié),存入字)LODS(LODSB, LODSW)取出串(取出字節(jié),取出字)SCAS (SCASB, SCASW)掃描串(掃描字節(jié),掃描字)重復(fù)前綴REP重復(fù)操作REPE/REPZ等于為零重復(fù)REPNE/

25、REPNZ不等于不為零重復(fù)表2-5程序轉(zhuǎn)移指令助記符功能無條件轉(zhuǎn)移指令CALL調(diào)用過程(子過程)RET從過程(子過程)返回JMP無條件轉(zhuǎn)移條件轉(zhuǎn)移指令JA/JNBE高于不低于等于,轉(zhuǎn)移JAE/JNB高于等于不低于,轉(zhuǎn)移JB/JNAE低于不高于等于,轉(zhuǎn)移JBE/JNA低于等于不高于,轉(zhuǎn)移JC有進位(借位),轉(zhuǎn)移JE/JZ等于為零,轉(zhuǎn)移JG/JNLE大于不小于等于,轉(zhuǎn)移JGE/JNL大于等于不小于,轉(zhuǎn)移JL/JNGE小于不大于等于,轉(zhuǎn)移JLE/JNG小于等于不大于,轉(zhuǎn)移JNC無進位(借位),轉(zhuǎn)移JNE/JNZ不等于不為零,轉(zhuǎn)移JNO不溢出,轉(zhuǎn)移JNP/JPOPF為“0"/奇狀態(tài),轉(zhuǎn)移JN

26、SSF為“O”,轉(zhuǎn)移J0溢出,轉(zhuǎn)移JP/JPEPF為“1”偶狀態(tài),轉(zhuǎn)移JSSF為“1”,轉(zhuǎn)移JCXZ寄存器CX=O,轉(zhuǎn)移重復(fù)控制指令LOOP循環(huán)LOOPE/LOOPZ等于為零,循環(huán)LOOPNE/LOOPNZ不等于不為零,循環(huán)中斷指令I(lǐng)NT中斷INT3斷點中斷INTO溢出中斷IRET中斷返回表2-6處理器控制指令助記符功能標志位操作STC進位標志置1CLC進位標志置OCMC進位標志取反STD方向標志置1CLD方向標志置OSTI中斷允許標志置1CLI中斷允許標志置O外同步HLT暫停直至中斷或復(fù)位WAIT等待TEST信號有效ESC交權(quán)給外部處理機LOCK在下一條指令期間封鎖總線空操作NOP空操作表2

27、-7串操作指令中寄存器和標志位的用途寄存器標志用途SI源字符串的變址值(偏移量)DI目的字符串的變址值(偏移量>DS源字符串的段基值ES目的字符串的段基值CX重復(fù)次數(shù)計數(shù)器AL/AXSCAS指令的掃描值LODS指令的目的操作數(shù)STOS指令的源操作數(shù)ZF掃描比較結(jié)束標志DFDF=OSI,DI自動增量DF=1SI,DI自動減量一、單項選擇題1為了縮短指令中某個地址段的位數(shù),有效的方法是采取 ( ) A立即尋址 B變址尋址 C間接尋址 D寄存器尋址 答案D 【解析】由,于計算機中寄存器的數(shù)量一般很少,采用寄存器尋址時可用少量的代碼來指定寄存器,這樣可以減少對應(yīng)地址段的代碼位數(shù),也可減少整個指令

28、的代碼長度。2堆棧指針SP的內(nèi)容是 ( ) A棧頂單元內(nèi)容 B棧頂單元地址 C棧底單元內(nèi)容 D棧底單元地址 答案B 【解析】堆棧是按特定順序進行訪問的存儲區(qū),其訪問方式是后進先出,即先存入的數(shù)據(jù)后讀出。對堆棧的訪問由堆棧指針寄存器SP控制,其內(nèi)容為堆棧中棧頂單元的地址,即入棧時數(shù)據(jù)保存在SP指向的單元,出棧時將SP指向單元的內(nèi)容取出。3采用直接尋址方式,則操作數(shù)在( )中。 A主存 B寄存器 C直接存取存儲器 D光盤 答案A 【解析】直接尋址方式是指在指令中直接給出操作數(shù)在存儲器中的地址,操作數(shù)在主存儲器中,指令中的地址直接作為有效地址,對存儲器進行訪問即可取得操作數(shù)。4假設(shè)寄存器R中的數(shù)值為

29、200,主存地址為200和300的地址單元中存放的內(nèi)容分別是300和400,則什么方式下訪問到的操作數(shù)為200 ( ) A直接尋址200 B寄存器間接尋址(R) C存儲器間接尋址(200) D寄存器尋址R 答案D 【解析】直接尋址200的操作數(shù)為300,寄存器間接尋址(R)的操作數(shù)300,存儲器間接尋址(200)的操作數(shù)為400,寄存器尋址R的操作數(shù)為200。5單地址指令 ( ) A只能對單操作數(shù)進行加工處理 B只能對雙操作數(shù)進行加工處理 C無處理雙操作數(shù)的功能 D既能對單操作數(shù)進行加工處理,也能在隱含約定另一操作數(shù)(或地址)時,對雙操作數(shù)進行運算 答案D 【解析】單地址指令既能對單操作數(shù)進行

30、加工處理,也能對雙操作數(shù)進行運算。當(dāng)處理雙操作數(shù)時,一個操作數(shù)在指令中給出,另一個操作數(shù)則是隱含約定的,例如堆棧操作指令中的入棧指令PUSH,指令中只給出源操作數(shù),而目的操作數(shù)則由計算機中的堆棧指針(SP)確定,在指令中不需要指定。6在大多數(shù)情況下,一條機器指令中是不直接用二進制代碼來指定 ( ) A下一條指令的地址 B操作的類型 C操作數(shù)地址 D結(jié)果存放地址 答案A 【解析】指令系統(tǒng)中可以用偽指令標識下一條將要運行的指令,這樣可以使程序具有很好的可讀性。7在存儲器堆棧中,若棧底地址為A,SP指針初值為A-1,當(dāng)堆棧采用從地址小的位置向地址大的位置生成時,彈出操作應(yīng)是 ( ) A先從堆棧取出數(shù)

31、據(jù),然后SP指針減B先從堆棧取出數(shù)據(jù),然后SP指針加 CSP指針先加1,然后從堆棧取出數(shù)據(jù) D. SP指針先減1,然后從堆棧取出數(shù)據(jù) 答案A 【解析】堆棧是按特定順序進行訪問的存儲區(qū),其訪問方式是后進先出,即先存入的數(shù)據(jù)后讀出。對堆棧的訪問由堆棧指針寄存器SP控制,當(dāng)堆棧采用從地址小的位置向地址大的位置生成時,入棧操作是SP指針先加1,然后將數(shù)據(jù)存人堆棧,從堆棧取出彈出操作是先從堆棧取出數(shù)據(jù),然后SP指針減1。8轉(zhuǎn)移指令執(zhí)行結(jié)束后,程序計數(shù)器PC中存放的是 ( ) A該轉(zhuǎn)移指令的地址 B順序執(zhí)行的下一條指令地址 C轉(zhuǎn)移的目標地址 D任意指令地址 答案C 【解析】轉(zhuǎn)移指令執(zhí)行過程中,將轉(zhuǎn)移指令所

32、指的子程序的起始地址裝入PC,因此轉(zhuǎn)移指令執(zhí)行結(jié)束后,程序計數(shù)器PC中存放的是轉(zhuǎn)移的目標地址。二、填空題1如指令中給出形式地址為D,則間接尋址方式獲得操作數(shù)的有效地址為_ _。 答案 以D為地址的存儲單元的內(nèi)容 【解析】在存儲器間接尋址方式中,操作數(shù)的地址在主存儲器中,其存儲器地址在指令中給出。也就是說在指令中給出的既不是操作數(shù),也不是操作數(shù)的地址,而是操作數(shù)地址的地址,則有效地址為以形式地址D為地址的存儲單元的內(nèi)容。2如果說變址尋址方式主要是面向用戶的,那么基址尋址一般是面向_ _的。 答案系統(tǒng) 【解析】變址尋址方式是面向用戶的,常用于訪問字符串、向量數(shù)據(jù)結(jié)構(gòu)和循環(huán)程序設(shè)計;而基址尋址方式是

33、面向系統(tǒng)的,對由邏輯地址空間到物理地址空間的變換提供支持,用以解決程序在存儲器中再定位和擴大尋址空間等問題。3在寄存器尋址方式中,指定寄存器中存放的是_ _ 。 答案操作數(shù) 【解析】在寄存器間接尋址方式中,指定寄存器中存放的是操作數(shù)地址;而在寄存器尋址方式中,指定寄存器中存放著操作數(shù)。4在計算機中,各指令周期的時間長度是_ _的。 答案不相同 【解析】在計算機中,由于指令的種類不同,功能不同,執(zhí)行每條指令時機器所進行的操作可能就不同,所需要的時間長短也可能不相同,所以各指令周期的時間長度不一定相同。5轉(zhuǎn)移指令執(zhí)行結(jié)束后,目標地址放在_ _中。 答案程序計數(shù)器PC 【解析】轉(zhuǎn)移指令執(zhí)行過程中,將

34、轉(zhuǎn)移指令所指的子程序的起始地址裝入PC,因此轉(zhuǎn)移指令執(zhí)行結(jié)束后,程序計數(shù)器PC中存放的是轉(zhuǎn)移的目標地址。6若要使某些數(shù)位為1,例如讓10010010變?yōu)?1011010,應(yīng)使用_ _運算指令。 答案 邏輯或運算 【解析】應(yīng)選用邏輯或運算指令,并設(shè)置屏蔽字為01001000,則原操作數(shù)10010010與屏蔽字01001000進行邏輯或運算如下,結(jié)果為11011010。 邏輯或運算規(guī)律: (1)某位和“1”或運算,結(jié)果一定為“1” (2)某位和“0”或運算,結(jié)果保持原來的位信息 邏輯與運算規(guī)律: (3)某位和“1”與運算,結(jié)果保持原來的位信息 (4)某位和“O”與運算,結(jié)果一定為“0”7操作數(shù)的地

35、址在寄存器中,指令中給出寄存器號這種是_尋址方式。 答案寄存器間接 【解析】這種尋址方式的含義是:操作數(shù)的地址在寄存器中,指令中給出寄存器號。 它的尋址過程:從指令中取出寄存器號,找到對應(yīng)的寄存器,以該寄存器內(nèi)容作為地址訪問主存,讀出操作數(shù)。掌握常見的尋址方式: (1)立即數(shù)尋址 (2)寄存器尋址 (3)直接尋址 (4)寄存器間接尋址 (5)變址尋址 (6)基址尋址 (7)基址加變址的尋址8若存儲器堆棧是按向低地址生長方式生成的,那么壓棧的過程是_ _,彈出操作的具體過程是_ _。 答案先移動棧頂指針,后壓人數(shù)據(jù)先彈出數(shù)據(jù),后移動棧頂_指針 【解析】壓棧操作過程:先移動棧頂指針:(SP)一1s

36、P;后壓人數(shù)據(jù):數(shù)據(jù)(SP)彈出操作過程:先彈出數(shù)據(jù):(SP)寄存器;后移動棧頂指針:(SP)+1-+SP堆棧的總操作原則:先進后出 人棧:先SP= SP-l,然后信息入棧 出棧:先從堆棧中取出信息,然后S= SP+19堆棧有_ _和_ _兩種基本操作。 答案入棧 出棧 【解析】堆棧的兩種基本操作是入棧和出棧。 入棧操作過程:先移動棧頂指針:(SP)一1SP;后壓人數(shù)據(jù):數(shù)據(jù)(SP) 出棧操作過程:先彈出數(shù)據(jù):(SP)寄存器;后動棧頂指針:(SP)+1SP三、程序分析題 假設(shè)寄存器R中的數(shù)值為2000,主存地址為2000和3000的地址單元中存放的內(nèi)容分別為3000和4000,PC的值為500

37、0,若按以下尋址方式,訪問到的操作數(shù)各是多少?寄存器尋址R;寄存器間接尋址(R);直接尋址2000;存儲器間接尋址(2000);相對尋址-3000(PC)。 答案寄存器尋址R,操作數(shù)是2000;寄存器間接尋址(R),操作數(shù)是3000;直接尋址2000,操作數(shù)是3000;存儲器間接尋址(2000),操作數(shù)是4000;相對尋 址-3000(PC),操作數(shù)是2000。【解析】本題主要考察對尋址方式含義的理解。尋址方式實質(zhì)就是微處理器訪問數(shù)據(jù)的方法。第三章匯編語言程序設(shè)計 本章主要介紹了微型計算機8086的匯編語言程序設(shè)計基本方法,通過本章的學(xué)習(xí),要求考生能掌握8086匯編語言的格式和各種偽操作的含義

38、和用法,在此基礎(chǔ)上,能讀懂用匯編語言編寫的程序,編寫簡單的匯編語言源程序,并有上機調(diào)試和運行所編程序的能力,要求能夠初步掌握匯編語言程序的設(shè)計方法。一、重點提示1匯編語言程序的格式2偽操作3匯編語言程序設(shè)計4匯編語言程序的上機過程二、難點提示1匯編語言程序設(shè)計2匯編語言程序的上機過程1程序設(shè)計語言概述(1)機器語言(2)匯編語言(3)高級語言2匯編語言程序的格式(1)分段結(jié)構(gòu)(2)名字(3)助記符和偽指令(4)操作數(shù)(5)注釋(6)匯編語言程序結(jié)構(gòu)3偽操作(1)段定義偽操作(2)數(shù)據(jù)定義偽操作(3)符號定義偽操作(4)過程定義偽操作(5)模塊定義與連接偽操作(6)宏處理偽操作4匯編語言程序設(shè)計

39、(1)程序設(shè)計的步驟(2)循環(huán)與分支程序設(shè)計(3)子程序設(shè)計(4)DOS和BIOS功能調(diào)用(5)常用匯編語言程序舉例5匯編語言程序的上機過程(1)工作環(huán)境(2)建立匯編語言源文件(3)MASM和LINK程序的應(yīng)用一、單項選擇題1在堆棧尋址中,設(shè)A為累加器,SP為堆棧指示器,Msp為SP指示的棧頂單元。如果進棧操作順序是:;那么出棧操作的順序應(yīng)是( )ABCD答案A【解析】堆棧是按特定順序進行訪問的存儲區(qū),其訪問方式是后進先出,即先存入的數(shù)據(jù)后讀出。對堆棧的操作有入棧和出棧兩種,兩者的操作完全相反,包括功能和順序均相反。2下列標號( )是合法的。 A. MAIN BNEW ITEM CINUM

40、DRET 答案 A 【解析】B不能有空格; C第一個字符不能為數(shù)字; D不能是保留字,如助記符; 指示性語句的標號實質(zhì)上是指令的符號地址,是一個可選項。二、填空題1用二進制數(shù)表示指令和數(shù)據(jù)的語言稱為。 答案 機器語言 【解析】機器語言就是用二進制數(shù)表示指令和數(shù)據(jù)的語言二 特點:不直觀,難手理解莉記憶;能被計算機直接理解和執(zhí)行,執(zhí)行速度快,占用內(nèi)存少。 機器語言是計算機能直接識別的語言,對其應(yīng)該有一個了解和熟悉。2匯編語言語句有和兩種,語句組成包括、 等4部分。匯編語言的特點是。 答案指令性語句指示性語句名字操作碼,偽操作操作數(shù)注釋特點:編寫、閱讀和修改都比較方便;執(zhí)行速度快,占用內(nèi)存少;源程序

41、需要匯編為機器語言才能執(zhí)行;不同的CPU具有不同的匯編語言,互相之間不能通用 【解析】匯編語言語句有2種:指令性語句由CPU指令組成,指示性語句由偽操作組成。三、編寫程序題1編寫一個匯編語言程序,完成對10個字節(jié)數(shù)據(jù)a1a10求和。 答案 DATA SEGMENT AT 2000H ARRAY DB al,a2,a3,al0 COUNT EQU$一ARRAY SUM DW? DATA ENDS STACK SEGMENT PARA STACK 'STACK' STAK DB 10 DUP(?) TOP EQU LENGTH STAK STACK ENDS CODE SEGMEN

42、T ASSUME CS: CODE, DS: DATA, SS: STACK START:MOV AX,DATA MOV DS, AX MOV AX,O MOV DI,OFFSET SUM MOV BX,OFFSET ARRAY MOV CX, COUNTADD AL, BXADC AH, 0INC BXLOOP LOPMOV -DI, AXMOV AH,4CHINT 2lHCODE ENDSEND START【解析】此例清楚地顯示了匯編語言的兩個組成特點:分段結(jié)構(gòu)和語句行。(1)分段結(jié)構(gòu)8086/8088的程序分段,最多可由4種段組成,并分別由段寄存器CS、DS、ES和SS的內(nèi)容作為段基值,

43、每段所占內(nèi)存容量可達64KB。 上例程序共有3段,它們分別是數(shù)據(jù)段(段名DATA)、堆棧段(段名STACK)和代碼段(段名CODE),各段由命令SEGMENT開始,并由命令ENDS結(jié)束。(2)語句行上例程序共有26行,即共有26個語句行。匯編語言程序的語句有兩類:指令性語句和指示性語句。 指令性語句 指令性語句是主要由指令構(gòu)成的語句,其格式為:標號:操作碼操作數(shù);注釋其中操作碼和操作數(shù)是用助記符表示的指令的兩個部分,其中操作數(shù)可以是1個、2個或幾個,也可以無操作數(shù)(即缺省的)。其中帶方括號的有三項:標號、操作數(shù)和注釋。表示該項是任選項,即根據(jù)具體編程需要該項可有可無,當(dāng)然在實際語句中該項的方括

44、號是不寫出來的。標號具有該語句指令所在內(nèi)存地址的屬性,通常在轉(zhuǎn)移指令中用做目的地址。注意:標號必須用冒號“:”結(jié)尾,這是語法的規(guī)定。用分號“;”開始的注釋用來說明該語句在程序中的作用,以方便程序的閱讀和修改,這項也是任選的。 如上例的第18語句行 LOP:ADD AL,BX 其中指令是ADD AL,-BX,標號是LOP,LOP在第21語句行指令LOOP LOP前出現(xiàn),是轉(zhuǎn)移的目的地址,此語句中未用注釋項。 指示性語句 指示性語句是主要由命令(亦稱偽指令)構(gòu)成的語句,用來指示匯編程序進行匯編操作,其格式為: 名字變量命令參數(shù);注釋 其中命令指示匯編程序進行某種匯編操作,參數(shù)是有關(guān)的數(shù)據(jù),帶方括號

45、的項是任選的。 如上例的第1語句行 DATA SEGMENT AT 2000H其中命令SEGMENT指出這是一個段的開始,參數(shù)AT 2000H指定該段的段基值為2000H,而DATA則是該段的名字一段名,為一個16位的立即數(shù),即該段的段基值,本例中即為2000H。又如上例的第5語句行 DATA ENDS 則表明了段名為DATA的段的結(jié)束。 指令性語句的應(yīng)用使程序員編程時不需進行很多計算,既方便又簡化了編程212作。2分析下列語句完成之后內(nèi)存單元的分配情況: DATA2 DB 2f-DUP_ (12H,34H,56H) 答案此時內(nèi)存分配為: 段基值偏移地址2000H0000H12H0001H34

46、H0002H56H0003H12H0004H34H0005H56H 【解析】DB是一個偽指令,它的作用是定義一個字節(jié)的存儲空間,而DW是定義2個字節(jié)一個字的空間,它們后面可以用參數(shù)來寫將要定義的數(shù)據(jù),其中參數(shù)就是相應(yīng)內(nèi)存單元中的數(shù)據(jù),它可以是常量(可用各種規(guī)定的數(shù)制表示)、字符常量(用單引號括起來的ASCII字符)或已定義的符號常量,當(dāng)它用作保留單元以備存人有關(guān)數(shù)據(jù)時就以問號(?)表示。參數(shù)商以有多個,相互間要用逗號(,)隔開,若連續(xù)多個數(shù)據(jù)是重復(fù)的,就可應(yīng)用復(fù)制符DUP以簡化書寫,DUP的用法為: 復(fù)褂次數(shù)DUP(數(shù)據(jù)) 其中數(shù)據(jù)可以不止一個,且數(shù)據(jù)還可有復(fù)制部分。3用宏指令完成2數(shù)相乘的操

47、作。 答案 宏定義:MULTIPLY MACRO OPR1,OPR2,RESULT PUSH AX MOV AI,OPR1 IMUL OPR2 MOV RESULT,AX POP AX ENDM宏高用;程序MULTIPLYCL,VAR,XYZBX;實參數(shù)CL是寄存器,VAR是變量,XYZBX ;是相對基址的內(nèi)存操作數(shù),實參數(shù)240 ;是立即數(shù),BL是寄存器,SAVE是變量MULTIPLY240,BL,SAVE宏展開:程序PUSHAXMOVAL,CLIMULVARMOVXYZBX,AXPOPAXPUSHAXMOVAL,240IMULBLMOVSAVE,AXPOPAX【解析】在這個宏定義的過程中,

48、用了三個形式參數(shù)OPRI,OPR2和RESULT,它們都是宏體指令中的操作數(shù)。匯編,程:序?qū)⒋撕暾归_后的程序轉(zhuǎn)換成機器碼!生成目標程序。在使用宏的時候要注意宏指令與子程序的差別:宏指令是將一段程序;(指令序列)用一條宏指令來代替,以簡化書寫源程序,子程序也有類似的功能,但兩者是有差別的,具體如下: (1)宏指令簡化了源程序的書寫。 但在匯編時,匯編程序?qū)曛噶畹膮R編處理是將宏指令的宏體(即程序段)原原本本的插入到宏指令調(diào)用處,然后轉(zhuǎn)換成機器碼生成目標程序。因此,宏指令雖簡化了源程序,但并沒有簡化目標程序,有多少次宏調(diào)用,在目標程序中就有同樣多少次數(shù)目的目標代碼插入。所以宏指令并不節(jié)省目標程序所占用的內(nèi)存單元。 子程序(過程)在執(zhí)行時是由CPU用調(diào)用(CALL)來處理的。若在一個源程序中多次調(diào)用同一個子程序,則在目標程序中,主程序中只有調(diào)用(CALL)指令的目標代碼,CALL指令的目標代碼只有幾個字節(jié);該目標代碼出現(xiàn)的次數(shù)就是調(diào)用次數(shù)。而子程序的目標代碼在整個目標程序中只出現(xiàn)一次,所以相應(yīng)的其目標程序就占用較少的內(nèi)存單元,即可節(jié)省內(nèi)存單元。 (2)采用子程序方式時,每調(diào)用一次就需執(zhí)行一次CALL和RET指令,而宏指令方式時,并無此兩條命令。因此,宏指令時的程序執(zhí)行時間比子程序時的程序執(zhí)行時間要短一點

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論