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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

8、-1101110為負數,負數的補碼是將二進制位按位取反后在最低位上加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.若定點整數64位,含1位符號位,補碼表示,則所能表示的絕對值最大負數為 ( ) A-264 B-(264_L1) C-263 D-(263-1) 答案C【解析】字長為64位,符號位為1位,則數值位為63位。當表示負數時,數值位全0為負絕對值最大,為。13.8位二進制無符號數的表示范圍是

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

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

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

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

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

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

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

16、法中的Booth算法計算xy2=。 答案-25 【解析】x=0101,x補=0101,-X補=1011,y=-0101,y補=1011循環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 所以結果為xy補=11101111,真值為-00011001,十進制值為-25。 補碼一位乘法中的Booth算法是一種對帶符號數進行乘法運算的十分有效

17、的處理方法,采用相加和相減的操作計算補碼數據的乘積。做法是從最低位開始,比較相臨的數位,相等時不加不減,只進行右移位操作;不相等(01)時加乘數,不相等(10時)相減乘數,再右移位;直到所有位均處理完畢。5已知x=0011,y= -0101,試用原碼一位乘法求xy=。答案-00001111B【解析】x原=00011,y原=10101,結果的符號位1O=1循環步驟乘積(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所以結果為-00001111B。 原碼一位乘法中,符號位與數值位是分開進行計算的。運算結果的數值部分是乘數與被乘數數值位的乘積,符號是乘數與被乘數符號位的異或。原碼一位乘法的每一次循環的操作是最低位為1,加被乘數的絕對值后右移1位;最低位為0,加0后右移1位。幾位乘法就循環幾次。6設(DS)=2000H,(SS)=2410H,(AX)=2510H,(SP)=0206H,則指令PUSHAX執行之后對應的AX低8位()和高8位()分別放在()和()2個物理地址中。 答案10H 25H 20204H 20205H 【解析】注意字的高低八位,和物理地址的合成。7不可屏蔽中斷從808

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

41、需要匯編為機器語言才能執行;不同的CPU具有不同的匯編語言,互相之間不能通用 【解析】匯編語言語句有2種:指令性語句由CPU指令組成,指示性語句由偽操作組成。三、編寫程序題1編寫一個匯編語言程序,完成對10個字節數據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【解析】此例清楚地顯示了匯編語言的兩個組成特點:分段結構和語句行。(1)分段結構8086/8088的程序分段,最多可由4種段組成,并分別由段寄存器CS、DS、ES和SS的內容作為段基值,

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論