《微機原理和接口技術》復習資料_第1頁
《微機原理和接口技術》復習資料_第2頁
《微機原理和接口技術》復習資料_第3頁
《微機原理和接口技術》復習資料_第4頁
《微機原理和接口技術》復習資料_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精編資料 ?微機原理與接口技術?復習參考資料. 授課老師:凌建華. 復習資料說明:. 1、標有紅色星號“%的內容為重點內容. 2、本資料末尾附有“?微機原理與接口技術?綜合練習題 .原理?微機原理與接口技術?復習參考資料授課老師:凌建華復習資料說明:1、標有紅色星號“%的內容為重點內容2、本資料末尾附有“?微機原理與接口技術?綜合練習題與答案錯誤修正,請注意查看。第一局部一、計算機中的數制1、無符號數的表示方法:1十進制計數的表示法特點:以十為底,逢十進一;共有0-9十個數字符號。2二進制計數表示方法:特點:以2為底,逢2進位;只有0和1兩個符號。3十六進制數的表示法:特點:以16為底,逢16

2、進位;有0-9及AF表示1015共16個數字符號。 2、各種數制之間的轉換1非十進制數到十進制數的轉換 按相應進位計數制的權表達式展開,再按十進制求和。見書本,1.2.42十進制數制轉換為二進制數制 l十進制 二進制的轉換:整數局部:除2取余; 小數局部:乘2取整。l十進制 十六進制的轉換: 整數局部:除16取余; 小數局部:乘16取整。以小數點為起點求得整數和小數的各個位。3二進制與十六進制數之間的轉換用4位二進制數表示1位十六進制數3、無符號數二進制的運算見教材P54、二進制數的邏輯運算特點:按位運算,無進借位1與運算只有A、B變量皆為1時,與運算的結果就是12或運算A、B變量中,只要有一

3、個為1,或運算的結果就是13非運算4異或運算A、B兩個變量只要不同,異或運算的結果就是1二、計算機中的碼制重點%1、對于符號數,機器數常用的表示方法有原碼、反碼和補碼三種。數X的原碼記作X原,反碼記作X反,補碼記作X補。1、注意:對正數,三種表示法均相同。它們的差異在于對負數的表示。1原碼定義:符號位:0表示正,1表示負;數值位:真值的絕對值。注意:數0的原碼不唯一 2反碼定義:假設X>0 ,那么 X反=X原假設X<0, 那么 X反= 對應原碼的符號位不變,數值局部按位求反注意:數0的反碼也不唯一3補碼定義:假設X>0, 那么X補= X反= X原假設X<0, 那么X補=

4、 X反+1注意:機器字長為8時,數0的補碼唯一,同為000000002、8位二進制的表示范圍:原碼:-127+127反碼:-127+127補碼:-128+1273、特殊數10000000l該數在原碼中定義為: -0l在反碼中定義為: -127l在補碼中定義為: -128l對無符號數:(10000000) = 128三、信息的編碼1、 十進制數的二進制數編碼用4位二進制數表示一位十進制數。有兩種表示法:壓縮BCD碼和非壓縮BCD碼。1壓縮BCD碼的每一位用4位二進制表示,00001001表示09,一個字節(jié)表示兩位十進制數。2非壓縮BCD碼用一個字節(jié)表示一位十進制數,高4位總是0000,低4位的0

5、0001001表示092、 字符的編碼計算機采用7位二進制代碼對字符進行編碼1數字09的編碼是01100000111001,它們的高3位均是011,后4位正好與其對 應的二進制代碼BCD碼相符。2英文字母AZ的ASCII碼從100000141H開始順序遞增,字母az的ASCII碼從110000161H開始順序遞增,這樣的排列對信息檢索十分有利。第二局部、微機組成原理一、微機的結構1、計算機的經典結構1計算機由運算器、控制器、輸入設備和輸出設備五大局部組成運算器和控制器又稱為CPU2數據和程序以二進制代碼形式不加區(qū)分地存放在存儲器總,存放位置由地址指定,數制為二進制。3控制器是根據存放在存儲器中

6、的指令序列來操作的,并由一個程序計數器控制指令的執(zhí)行。3、 系統(tǒng)總線的分類1數據總線Data Bus,它決定了處理器的字長。2地址總線Address Bus,它決定系統(tǒng)所能直接訪問的存儲器空間的容量。3控制總線Control Bus二、8086微處理器1、8086是一種單片微處理芯片,其內部數據總線的寬度是16位,外部數據總線寬度也是16位,片內包含有控制計算機所有功能的各種電路。8086地址總線的寬度為20位,有1MB220尋址空間。2、 8086CPU由總線接口部件BIU和執(zhí)行部件EU組成。BIU和EU的操作是異步的,為8086取指令和執(zhí)行指令的并行操作體統(tǒng)硬件支持。3、 8086處理器的

7、啟動教材P214、存放器結構重點%8086微處理器包含有13個16位的存放器和9位標志位。4個通用存放器AX,BX,CX,DX4個段存放器CS,DS,SS,ES4個指針和變址存放器SP,BP,SI,DI指令指針I(yè)P1、通用存放器18086含4個16位數據存放器,它們又可分為8個8位存放器,即:lAX èAH,ALlBXèBH,BLlCXèCH,CLlDXèDH,DL常用來存放參與運算的操作數或運算結果2數據存放器特有的習慣用法lAX:累加器。多用于存放中間運算結果。所有I/O指令必須都通過AX與接口傳送信息;lBX:基址存放器。在間接尋址中用于存放基地址

8、;lCX:計數存放器。用于在循環(huán)或串操作指令中存放循環(huán)次數或重復次數;lDX:數據存放器。在32位乘除法運算時,存放高16位數;在間接尋址的I/O指令中存放I/O端口地址。2、指針和變址存放器lSP:堆棧指針存放器,其內容為棧頂的偏移地址;lBP:基址指針存放器,常用于在訪問內存時存放內存單元的偏移地址。lSI:源變址存放器lDI:目標變址存放器變址存放器常用于指令的間接尋址或變址尋址。3、段存放器CS:代碼段存放器,代碼段用于存放指令代碼DS:數據段存放器 ES:附加段存放器,數據段和附加段用來存放操作數SS:堆棧段存放器,堆棧段用于存放返回地址,保存存放器內容,傳遞參數4、指令指針I(yè)P16

9、位指令指針存放器,其內容為下一條要執(zhí)行的指令的偏移地址。5、標志存放器1狀態(tài)標志:l進位標志位CF:運算結果的最高位有進位或有借位,那么CF=1l輔助進位標志位AF:運算結果的低四位有進位或借位,那么AF=1l溢出標志位OF:運算結果有溢出,那么OF=1l零標志位ZF:反映指令的執(zhí)行是否產生一個為零的結果l符號標志位SF:指出該指令的執(zhí)行是否產生一個負的結果l奇偶標志位PF:表示指令運算結果的低8位“1”個數是否為偶數2控制標志位l中斷允許標志位IF:表示CPU是否能夠響應外部可屏蔽中斷請求l跟蹤標志TF:CPU單步執(zhí)行5、8086的引腳及其功能重點掌握以下引腳lAD15AD0:雙向三態(tài)的地址

10、總線,輸入/輸出信號lINTR:可屏蔽中斷請求輸入信號,高電平有效。可通過設置IF的值來控制。lNMI:非屏蔽中斷輸入信號。不能用軟件進行屏蔽。lRESET:復位輸入信號,高電平有效。復位的初始狀態(tài)見P21lMN/MX:最小最大模式輸入控制信號。三、 存儲器1、 分類SRAM單極型DRAM雙極型RAMPROM內存EPROME2PROMEPROMROME2PROM外存2、 RAM和ROM的區(qū)別l讀寫存儲器RAMn可讀可寫n易失性,臨時存放程序和數據l只讀存儲器ROMn工作時只能讀n非易失性,永久或半永久性存放信息3、PC機中存儲器的結構18086CPU具有1MB的尋址能力,使用20根地址線A19

11、A0,數據總線為16位D15D0。系統(tǒng)的1MB存儲器分為兩個512KB的存儲體。一個為奇地址存儲體,一個為偶地址存儲體。2當進行16位數據操作時,假設數據的低8位放在偶地址存儲體中,而高8位放在奇地址存儲體中,那么在一個總線周期內完成數據的傳送。反之,那么需要兩個總線周期才能完成該數據的傳送。4、PC機中存儲器的地址表示重點%物理地址=段地址左移4位+偏移地址其中偏移地址也叫做“有效地址或“偏移量物理地址的表示方法:段地址:偏移地址例如設某單元的段地址為2000H,偏移地址為3000H,那么物理地址為: 2000H左移4位+3000H=23000H其中左移四位指二進制數,十六進制數相當于左移一

12、位第三局部 8086指令系統(tǒng)說明:8086指令系統(tǒng)這章為重點章節(jié),對下面列出的指令都要求學員掌握。8086尋址方式一、數據尋址方式重點%1、立即尋址 操作數(為一常數)直接由指令給出 (此操作數稱為立即數)立即尋址只能用于源操作數例:MOV AX, 1C8FHMOV BYTE PTR2A00H, 8FH錯誤例:× MOV 2A00H,AX ; 錯誤!指令操作例:MOV AX,3102H; AXè3102H執(zhí)行后,(AH) = 31H,(AL) = 02H2、存放器尋址1操作數放在某個存放器中2源操作數與目的操作數字長要相同3存放器尋址與段地址無關例: MOV AX, BX

13、MOV 3F00H, AX MOV CL, AL 錯誤例: × MOV AX,BL ; 字長不同× MOV ES:AX,DX ; 存放器與段無關3、直接尋址1指令中直接給出操作數的16位偏移地址 偏移地址也稱為有效地址(EA, Effective Address)2默認的段存放器為DS,但也可以顯式地指定其他段存放器稱為段超越前綴3偏移地址也可用符號地址來表示,如ADDR、VAR例: MOV AX ,2A00H MOV DX ,ES:2A00HMOV SI,TABLE_PTR4、間接尋址l 操作數的偏移地址(有效地址EA)放在存放器中l(wèi) 只有SI、DI、BX和BP可作間址存

14、放器l 例: MOV AX,BX MOV CL,CS:DI 錯誤例 :× MOV AX, DX × MOV CL, AX5、直接變址尋址lEA=間址存放器的內容加上一個8/16位的位移量l 例: MOV AX, BX+8 MOV CX, TABLESI MOV AX, BP; 默認段存放器為SSl 指令操作例:MOV AX,DATABX 假設(DS)=6000H, (BX)=1000H, DATA=2A00H, (63A00H)=66H, (63A01H)=55H 那么物理地址 = 60000H + 1000H + 2A00H = 63A00H指令執(zhí)行后:AX=5566H6

15、、基址變址尋址l 假設操作數的偏移地址:由基址存放器(BX或BP)給出 基址尋址方式由變址存放器(SI或DI)給出 變址尋址方式由一個基址存放器的內容和一個變址存放器的內容相加而形成操作數的偏移地址,稱為基址-變址尋址。EA=BX+SI或DI;EA=BP+SI或DI同一組內的存放器不能同時出現。注意:除了有段跨越前綴的情況外,當基址存放器為BX時,操作數應該存放在數據段DS中,當基址存放器為BP時,操作數應放在堆棧段SS中。例: MOV AX, BX SI MOV AX, BX+SI MOV AX, DS: BP DI錯誤例: × MOV AX, BX BP × MOV A

16、X, DI SI指令操作例:MOV AX,BXSI假定:(DS)=8000H, (BX)=2000H, SI=1000H那么物理地址 = 80000H + 2000H + 1000H = 83000H指令執(zhí)行后: (AL)=83000H(AH)=83001H7、相對基址變址尋址l 在基址-變址尋址的根底上再加上一個相對位移量EA=BX+SI或DI+8位或16位位移量;EA=BP+SI或DI+8位或16位位移量指令操作例:MOV AX,DATADIBX假設(DS)=8000H, (BX)=2000H, (DI)=1000H, DATA=200H那么指令執(zhí)行后(AH)=83021H, (AL)=8

17、3020H存放器間接、存放器相對、基址變址、相對基址變址四種尋址方式的比擬: 尋址方式 指令操作數形式n 存放器間接 只有一個存放器BX/BP/SI/DI之一n 存放器相對 一個存放器加上位移量n 基址變址 兩個不同類別的存放器n 相對基址-變址 兩個不同類別的存放器加上位移量二、地址尋址方式了解有4類,能判斷簡要判斷依據指令中間的單詞:段內直接 short,near段內間接 word段間直接 far段間間接 dword例如?習題冊?P16選擇題第三題特殊的情況:段內直接用NEAR時可以省略,例如:JMP PTR BETA 8086指令系統(tǒng)一、數據傳送指令重點%1、通用傳送指令(1) MOV

18、dest,src; destsrc傳送的是字節(jié)還是字取決于指令中涉及的存放器是8位還是16位。具體來說可實現: MOV mem/reg1,mem/reg2指令中兩操作數中至少有一個為存放器 MOV reg,data ;立即數送存放器 MOV mem,data ;立即數送存儲單元 MOV acc,mem ;存儲單元送累加器 MOV mem,acc ;累加器送存儲單元 MOV segreg,mem/reg ;存儲單元/存放器送段存放器 MOV mem/reg,segreg ;段存放器送存儲單元/存放器MOV指令的使用規(guī)那么IP不能作目的存放器不允許memmem不允許segregsegreg立即數不

19、允許作為目的操作數不允許segreg立即數源操作數與目的操作數類型要一致當源操作數為單字節(jié)的立即數,而目的操作數為間址、變址、基址+變址的內存數時,必須用PTR說明數據類型。如:MOV BX,12H 是錯誤的。2、堆棧指令什么是堆棧?按“后進先出(LIFO)方式工作的存儲區(qū)域。堆棧以字為單位進行壓入彈出操作。規(guī)定由SS指示堆棧段的段基址,堆棧指針SP始終指向堆棧的頂部,SP的初值規(guī)定了所用堆棧區(qū)的大小。堆棧的最高地址叫棧底。 壓棧指令PUSHPUSH src ; src為16位操作數例:PUSHAX;將AX內容壓棧執(zhí)行操作:SP-1高字節(jié)AHSP-2低字節(jié)AL(SP)SP- 2注意進棧方向是高

20、地址向低地址開展。 彈出指令POPPOPdest 例:POP BX;將棧頂內容彈至BX執(zhí)行操作:BLSPBHSP+1SPSP+2堆棧指令在使用時需注意的幾點: 堆棧操作總是按字進行 不能從棧頂彈出一個字給CS 堆棧指針為SS:SP,SP永遠指向棧頂SP自動進行增減量-2,+2堆棧指令的習題見綜合練習題P7 7題和P21 四,2題3、交換指令XCHG格式:XCHG reg,mem/reg功能:交換兩操作數的內容。要求:兩操作數中必須有一個在存放器中;操作數不能為段存放器和立即數;源和目地操作數類型要一致。舉例: XCHGAX,BXXCHG2000,CL4查表指令XLAT執(zhí)行的操作:AL(BX)+

21、(AL)又叫查表轉換指令,它可根據表項序號查出表中對應代碼的內容。執(zhí)行時先將表的首地址偏移地址送到BX中,表項序號存于AL中。2、輸入輸出指令只限于用累加器AL或AX來傳送信息。功能: (累加器)I/O端口(1) 輸入指令IN格式:IN acc,PORT ;PORT端口號0255HIN acc,DX ;DX表示的端口范圍達64K例:IN AL,80H ;(AL)(80H端口)IN AL,DX ;(AL)(DX)(2) 輸出指令OUT格式:OUT port,accOUT DX,acc例:OUT 68H,AX ;(69H,68H)AXOUT DX,AL ;(DX)(AL)在使用間接尋址的IN/OU

22、T指令時,要事先用傳送指令把I/O端口號設置到DX存放器如:MOV DX,220HIN AL,DX;將220H端口內容讀入AL3、目標地址傳送指令(1) LEA傳送偏移地址格式:LEA reg,mem ; 將指定內存單元的偏移地址送到指定存放器要求:1) 源操作數必須是一個存儲器操作數;2) 目的操作數必須是一個16位的通用存放器。例:LEA BX,SI+10H設:SI=1000H那么執(zhí)行該指令后,BX=1010Hl注意以下二條指令差異:LEA BX,BUFFER MOV BX,BUFFER前者表示將符號地址為BUFFER的存儲單元的偏移地址取到 BX中;后者表示將BUFFER存儲單元中的內容

23、取到 BX中。下面兩條指令等效:LEA BX,BUFFERMOV BX, OFFSET BUFFER其中OFFSET BUFFER表示存儲器單元BUFFER的偏移地址。二者都可用于取存儲器單元的偏移地址,但LEA指令可以取動態(tài)的地址,OFFSET只能取靜態(tài)的地址。二、算術運算指令1、 加法指令(1) 不帶進位的加法指令ADD格式: ADD acc,dataADD mem/reg,dataADD mem/reg1,mem/reg2實例:ADD AL,30HADD SI,BX+20HADD CX,SIADD DI,200HADD指令對6個狀態(tài)標志均產生影響。例:(BX)=D75FH指令 ADD B

24、X,8046H 執(zhí)行后,狀態(tài)標志各是多少?D75FH = 1110 0111 0101 11118046H = 1000 0000 0100 01101 1 11 11 0110 0111 1010 0101結果:C=1, Z=0, P=0, A=1, O=1, S=0判斷溢出與進位重點%從硬件的角度:默認參與運算的操作數都是有符號數,當兩數的符號位相同,而和的結果相異時有溢出,那么OF=1,否那么OF=0判斷標志位的題目見綜合練習題P5 五,2題(2) 帶進位的加法ADCADC指令在形式上和功能上與ADD類似,只是相加時還要包括進位標志CF的內容,例如:ADC AL,68H ; AL(AL)

25、+68H+(CF)ADC AX,CX ;AX(AX)+(CX)+(CF)ADC BX,DI ;BX(BX)+DI+1DI+(CF)3加1指令INC格式:INC reg/mem功能:類似于C語言中的+操作:對指定的操作數加1 例: INC ALINC SIINC BYTE PTRBX+4注:本指令不影響CF標志。4非壓縮BCD碼加法調整指令AAA重點%AAA指令的操作:如果AL的低4位9或AF=1,那么: AL(AL)+6,(AH)(AH)+1,AF1 AL高4位清零 CFAF否那么AL高4位清零非壓縮BCD碼加法調整指令AAA的習題見綜合練習題P21 四,1題。5壓縮BCD碼加法調整指令DAA

26、重點%l兩個壓縮BCD碼相加結果在AL中,通過DAA調整得到一個正確的壓縮BCD碼.l指令操作(調整方法):假設AL的低4位9或AF=1那么(AL)(AL)+6,AF1假設AL的高4位9或CF=1那么(AL)(AL)+60H,CF1l除OF外,DAA指令影響所有其它標志。lDAA指令應緊跟在ADD或ADC指令之后。壓縮BCD碼加法調整指令DAA的習題見綜合練習題P5 五,1題2、 減法指令1不考慮借位的減法指令SUB格式: SUB dest, src操作: dest(dest)-(src)指令例子:SUB AL,60HSUB BX+20H,DXSUB AX,CX2考慮借位的減法指令SBBSBB

27、指令主要用于多字節(jié)的減法。格式: SBB dest, src操作: dest(dest)-(src)-(CF)指令例子:SBB AX,CXSBB WORD PTRSI,2080HSBB SI,DX3減1指令DEC作用類似于C語言中的操作符。格式:DEC opr操作:opr(opr)-1指令例子:DEC CLDEC BYTE PTRDI+2DEC SI 4求補指令NEG格式: NEG opr操作: opr 0-(opr)對一個操作數取補碼相當于用0減去此操作數,故利用NEG指令可得到負數的絕對值。例:假設(AL)=0FCH,那么執(zhí)行 NEG AL后,(AL)=04H,CF=15比擬指令CMP格式

28、: CMP dest, src操作: (dest)-(src)CMP也是執(zhí)行兩個操作數相減,但結果不送目標操作數,其結果只反映在標志位上。指令例子:CMP AL,0AHCMP CX,SICMP DI,BX+036非壓縮BCD碼減法調整指令AAS對AL中由兩個非壓縮的BCD碼相減的結果進行調整。調整操作為:假設AL的低4位9或AF=1,那么: AL(AL)-6,AH(AH)-1,AF1 AL的高4位清零 CFAF否那么:AL的高4位清零7壓縮BCD碼減法調整指令DAS對AL中由兩個壓縮BCD碼相減的結果進行調整。調整操作為:假設AL的低4位9或AF=1,那么:AL(AL)-6, 且AF1假設AL

29、的高4位9或CF=1,那么:AL(AL)-60H,且CF1DAS對OF無定義,但影響其余標志位。DAS指令要求跟在減法指令之后。3、 乘法指令進行乘法時:8位*8位16位乘積16位*16位32位乘積(1) 無符號數的乘法指令MUL(MEM/REG)格式: MUL src操作:字節(jié)操作數 (AX)(AL) × (src)字操作數 (DX, AX)(AX) × (src)指令例子:MUL BL ;(AL)×(BL),乘積在AX中MUL CX ;(AX)×(CX),乘積在DX,AX中MUL BYTE PTRBX2有符號數乘法指令IMUL格式與MUL指令類似,只

30、是要求兩操作數均為有符號數。指令例子:IMUL BL ;(AX)(AL)×(BL)IMUL WORD PTRSI;(DX,AX)(AX)×(SI+1SI)注意:MUL/IMUL指令中 AL(AX)為隱含的乘數存放器; AX(DX,AX)為隱含的乘積存放器; SRC不能為立即數; 除CF和OF外,對其它標志位無定義。4、除法指令進行除法時:16位/8位8位商32位/16位16位商對被除數、商及余數存放有如下規(guī)定:被除數 商 余數字節(jié)除法 AX AL AH字除法 DX:AX AX DX1無符號數除法指令DIV格式: DIV src操作:字節(jié)操作 (AL)(AX) / (SRC)

31、 的商(AH)(AX) / (SRC) 的余數字操作 (AX) (DX, AX) / (SRC) 的商(DX) (DX, AX) / (SRC) 的余數指令例子:DIV CLDIV WORD PTRBX2有符號數除法指令IDIV格式: IDIV src操作與DIV類似。商及余數均為有符號數,且余數符號總是與被除數符號相同。注意: 對于DIV/IDIV指令AX(DX,AX)為隱含的被除數存放器。AL(AX)為隱含的商存放器。AH(DX)為隱含的余數存放器。src不能為立即數。對所有條件標志位均無定關于除法操作中的字長擴展問題除法運算要求被除數字長是除數字長的兩倍,假設不滿足那么需對被除數進行擴展

32、,否那么產生錯誤。對于無符號數除法擴展,只需將AH或DX清零即可。對有符號數而言,那么是符號位的擴展??墒褂们懊娼榻B過的符號擴展指令CBW和CWD三、邏輯運算和移位指令1、邏輯運算指令1邏輯與AND對兩個操作數進行按位邏輯“與操作。格式:AND dest, src用途:保存操作數的某幾位,清零其他位。例1:保存AL中低4位,高4位清0。AND AL,0FH2邏輯或OR對兩個操作數進行按位邏輯或操作。格式:OR dest, src用途:對操作數的某幾位置1;對兩操作數進行組合。例1:把AL中的非壓縮BCD碼變成相應十進制數的ASCII碼。OR AL, 30H3邏輯非NOT對操作數進行按位邏輯非操

33、作。格式:NOT mem/reg例:NOT CXNOT BYTE PTRDI4邏輯異或XOR對兩個操作數按位進行異或操作。格式:XOR dest, src用途:對reg清零(自身異或)把reg/mem的某幾位變反(與1異或)例1:把AX存放器清零。MOV AX,0XOR AX,AXAND AX,0SUB AX,AX5測試指令TEST操作與AND指令類似,但不將與的結果送回,只影響標志位。TEST指令常用于位測試,與條件轉移指令一起用。例:測試AL的內容是否為負數。 TEST AL,80H ;檢查AL中D7=1? JNZ MINUS ;是1(負數),轉MINUS ;否那么為正數2、移位指令(1)

34、非循環(huán)移位指令重點% 算術左移指令 SAL(Shift Arithmetic Left) 算術右移指令 SAR(Shift Arithmetic Right) 邏輯左移指令 SHL(Shift Left) 邏輯右移指令 SHR(Shift Right)這4條指令的格式相同,以SAL為例:CL ;移位位數大于1時SAL mem/reg1 ;移位位數等于1時Ø算術移位把操作數看做有符號數; 邏輯移位把操作數看做無符號數。Ø移位位數放在CL存放器中,如果只移1位,也 可以直接寫在指令中。例如: MOV CL,4 SHR AL,CL ;AL中的內容右移4位Ø影響C,P,S

35、,Z,O標志。Ø結果未溢出時: 左移1位操作數*2右移1位操作數/2例:把AL中的數x乘10因為10=8+2=23+21,所以可用移位實現乘10操作。程序如下:MOV CL,3SAL AL,1 ; 2xMOV AH,AL SAL AL,1 ; 4xSAL AL,1 ; 8xADD AL,AH ; 8x+2x = 10x移位指令的題目見綜合練習題P6 五,4題;P21 五,1題四、控制轉移指令1、 轉移指令1無條件轉移指令JMP 格式:JMP label本指令無條件轉移到指定的目標地址,以執(zhí)行從該地址開始的程序段。2條件轉移指令補充內容重點% 根據單個標志位設置的條件轉移指令JB/JC

36、 ;低于,或CF=1,那么轉移JNB/JNC/JAE ;高于或等于,或CF=0,那么轉移JP/JPE ;奇偶標志PF=1(偶),那么轉移JNP/JPO ;奇偶標志PF=0(奇),那么轉移JZ/JE ;結果為零(ZF=1),那么轉移JNZ/JNE ;結果不為零(ZF=0),那么轉移JS ;SF=1,那么轉移JNS ;SF=0,那么轉移JO ;OF=1,那么轉移JNO ;OF=0,那么轉移根據組合條件設置的條件轉移指令這類指令主要用來判斷兩個數的大小。判斷無符號數的大小lJA 高于那么轉移 條件為: CF=0ZF=0,即ABlJNA/JBE 低于或等于那么轉移條件為: CF=1ZF=1,即ABlJ

37、B A<B那么轉移lJNB AB那么轉移判斷有符號數的大小lJG ;大于那么轉移(AB) 條件為: (SFOF=0)ZF=0lJGE;大于或等于那么轉移(AB)條件為: (SFOF=0)ZF=1lJLE;小于或等于那么轉移(AB) 條件為: (SFOF=1)ZF=1lJL;小于那么轉移(AB條件為: (SFOF=1)ZF=02、循環(huán)控制指令l用在循環(huán)程序中以確定是否要繼續(xù)循環(huán)。l循環(huán)次數通常置于CX中。l轉移的目標應在距離本指令-128+127的范圍之內。l循環(huán)控制指令不影響標志位。(1)LOOP格式:LOOP label操作:(CX)-1CX; 假設(CX)0,那么轉至label處執(zhí)行

38、; 否那么退出循環(huán),執(zhí)行LOOP后面的指令。 LOOP指令與下面的指令段等價: DEC CX JNZ label3、過程調用指令1調用指令CALL一般格式:CALL sub ;sub為子程序的入口4、中斷指令(1)INT n 執(zhí)行類型n的中斷效勞程序,N=0255五、處理器控制指令1、標志位操作1CF設置指令 CLC 0CF STC 1CF CMC CF變反2DF設置指令 CLD 0DF (串操作的指針移動方向從低到高)STD 1DF (串操作的指針移動方向從高到低)3IF設置指令 CLI 0IF (禁止INTR中斷) STI 1IF (開放INTR中斷) 2、 HLThalt執(zhí)行HLT指令后

39、,CPU進入暫停狀態(tài)。第四局部 8086匯編語言程序設計 偽指令重點%CPU指令與偽指令之間的區(qū)別:(1)CPU指令是給CPU的命令,在運行時由CPU執(zhí)行,每條指令對應CPU的一種特定的操作。而偽指令是給匯編程序的命令,在匯編過程中由匯編程序進行處理。(2)匯編以后,每條CPU指令產生一一對應的目標代碼;而偽指令那么不產生與之相應的目標代碼。1、數據定義偽指令1數據定義偽指令的一般格式為:l變量名 偽指令 操作數,操作數 DB 用來定義字節(jié)BYTEDW 用來定義字WORDDD 用來定義雙字DWORD2操作數的類型可以是:常數或常數表達式l例如: DATA_BYTE DB 10,5,10H DA

40、TA_WORD DW 100H,100,-4 DATA_DW DD 2*30,0FFFBH可以為字符串定義字符串最好使用DBl例如:char1 DB AB 可以為變量可以為?號操作符例如:X DB 5,?,6?號只是為了給變量保存相應的存儲單元,而不賦予變量某個確定的初值。重復次數:N DUP初值,初值l例如:ZERO DB 2 DUP3,5XYZ DB 2 DUP0,2 DUP1,3,5在偽操作的操作數字段中假設使用$,那么表示的是地址計數器的當前值。2、補充內容:1類型 PTR 地址表達式例如:MOV BYTE PTR BX,12HINC BYTE PTR BX注意:單操作數指令,當操作數

41、為基址、變址、基+變的時候必須定義3、符號定義偽指令(1)EQU格式:名字 EQU 表達式EQU偽指令將表達式的值賦予一個名字,以后可用這個名字來代替上述表達式。例:CONSTANT EQU 100NEW_PORT EQU PORT_VAL+1(2) =等號與EQU類似,但允許重新定義例:EMP=7;值為7EMP=EMP+1;值為8(3)LABELLABEL偽指令的用途是定義標號或變量的類型格式:名字 LABEL 類型變量的類型可以是BYTE,WORD,DWORD。標號的類型可以是NEAR或FAR4、段定義偽指令與段有關的偽指令有: SEGMENT、ENDS、ASSUME、ORG1段定義偽指令

42、的格式如下:段名 SEGMENT 定位類型 組合類型 類別 段名 ENDSSEGMENT和ENDS 這兩個偽指令總是成對出現,二者前面的段名一致。二者之間的刪節(jié)局部,對數據段、附加段及堆棧段,一般是符號、變量定義等偽指令。對于代碼段那么是指令及偽指令。此外,還必須明確段和段存放器的關系,這可由ASSUME語句來實現。2ASSUME格式:ASSUME 段存放器名:段名,段存放器名:段名,ASSUME偽指令告訴匯編程序,將某一個段存放器設置為某一個邏輯段址,即明確指出源程序中邏輯段與物理段之間的關系。3ORG偽指令ORG規(guī)定了段內的起始地址或偏移地址,其格式為: ORG <表達式>表達

43、式的值即為段內的起始地址或偏移地址,從此地址起連續(xù)存放程序或數據。5、匯編程序的一般結構重點%記住DATA SEGMENTDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATABGN: MOV AX ,DATA MOV DS,AX . MOV AH,4CH INT 21HCODE ENDSEND BGN 程序設計1、 順序程序的設計略2、 分支程序的設計典型例題:1 X>0Y = 0 X=0-1 X<0l程序為:MOV AL ,XCMP AL,0JGE BIGMOV Y,-1JMP EXITBIG:JE EQULMOV Y,1JMP EXITEQUL

44、:MOV Y,0EXIT:.3、 循環(huán)程序見l用計數控制循環(huán)l見教材例題l第五局部 微機接口技術根底說明:第五章主要是一些概念,以下所列的要求學員記住I/O接口的概念1、I/O接口的作用(1) 匹配外設與主機間的數據形式(2) 匹配外設與主機間的工作速度(3) 在主機與外設之間傳輸控制信息2、I/O接口的分類按外設的性能及通用的程度,可將I/O接口分為兩類:I/O接口芯片和I/O接口卡I/O端口的編址方式1、I/O端口的編址方式1I/O端口的統(tǒng)一編址(3) I/O端口的獨立編址輸入/輸出控制方式1、程序控制傳送方式l1無條件傳送方式l2程序查詢傳送方式2、中斷控制傳送方式3、直接存儲器存取傳送

45、方式第六局部 中斷技術一、中斷的類型PC機中各種類型的中斷共有256個,并對它們進行了統(tǒng)一的編號,稱為中斷類型碼1、 內中斷1、微處理器中斷0號中斷除數為01號中斷單步執(zhí)行程序4號中斷運算溢出3號中斷斷點處理2、不可屏蔽中斷3、保存的微處理器中斷不要求2、外中斷外中斷特點:INTR為電平觸發(fā)外中斷可多級排優(yōu)外中斷可用指令屏蔽外中斷可以嵌套外中斷響應條件的修正重點掌握l在IF=1,任何一條指令執(zhí)行完時,CPU將檢測引腳INTR,以便響應外中斷。3、軟中斷l(xiāng)由中斷指令INTn引發(fā)的中斷稱為軟中斷。4、保存中斷5、各類中斷的優(yōu)先級高 低除數0,INTn,斷點,溢出NMIINTR低 單步二、中斷向量表

46、重點%1中斷向量表教材P223 在8086系統(tǒng)中,內存最低端的1K字節(jié)地址范圍內從00000003FFH,放置256個中斷的中斷向量入口地址,即稱為中斷向量表。每個中斷矢量在表中占據4個字節(jié),地址較高的兩個字節(jié)放入口地址的段地址CS,地址較低的兩個字節(jié)放偏移地址IP。 中斷向量表中的存儲地址中斷類型碼n×4中斷向量見綜合練習題P9 七,3題2中斷效勞程序的執(zhí)行l(wèi)第一、將標志存放器F入棧l第二、去除中斷標志IF=0、單步標志TF=0l第三、將程序當前代碼地址CS和指令偏移地址IP依次入棧l第四、根據中斷號n,計算中斷向量的首地址0000:n*4l第五、根據中斷向量首地址,取出4個字節(jié)的

47、中斷向量,并分別置入CS和IP中,CPU便轉而執(zhí)行相應的中斷效勞程序。三、可編程中斷控制器8259A1、8259A的特點:l每片芯片具有8級優(yōu)先權控制,可連接8個中斷源。l通過級聯可擴展至64級優(yōu)先權控制,可連接64個中斷源。l每一級中斷均可屏蔽或允許。l在中斷響應周期,可提供相應的中斷號l具有固定優(yōu)先權、循環(huán)優(yōu)先權、等多種工作方式,可通過編程進行連接l28條引腳,+5V供電2、8259A的內部結構(1)、中斷控制邏輯中斷請求存放器IRR中斷效勞存放器ISR中斷屏蔽存放器IMR(2)8259A引腳功能IR0IR7(外設的中斷請求l8個外設來的中斷請求信號,IR0的優(yōu)先級最高,IR7最低。 INT向CPU的中斷請求3、硬中斷的執(zhí)行過程重點%掌握1PC機的外設接口卡輸出中斷請求信號IRQi至8259A中斷控制器,并將其中的中斷請求存放器IRR的相應位i置1。28259A收到IRQi信號后,將它與同時請求中斷的信號或者正掛起的中斷,通過優(yōu)先級分析器,分析比擬優(yōu)先級。假設該中斷請求是唯一的或其優(yōu)先級最高,那么8259A向CPU發(fā)中斷請求信號INT。3CPU響應中斷,連續(xù)發(fā)生兩個中斷響應脈沖INTA。第一個INTA將中斷效勞器ISR的I位置1,表示正在響應I級中斷,同時將IRR的I位清0,為本i級中斷下一次的中斷請求做準備

溫馨提示

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

評論

0/150

提交評論