第2講 第3章 微型計算機的結構1_第1頁
第2講 第3章 微型計算機的結構1_第2頁
第2講 第3章 微型計算機的結構1_第3頁
第2講 第3章 微型計算機的結構1_第4頁
第2講 第3章 微型計算機的結構1_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三章微型計算機的結構3.1微型處理機的結構(8086/8088)3.2存儲器(組織)3.3尋址方式3.48086/8088指令系統(tǒng)(概括)第三章微型計算機的結構13.1微型處理機的結構(8086/8088)1、8086/8088CPU的內部結構2、8086/8088的寄存器和標志21、8086/8088CPU的內部結構3內部寄存器

IP

ES

SSDSCS總線控制8086總線EU控制邏輯∑ALU標志寄存器(F)AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令隊列執(zhí)行單元(EU)總線接口單元(BIU)16位20位16位8位CPU內部總線4CPU執(zhí)行程序的過程從內存取指令執(zhí)行指令從內存取指令執(zhí)行指令從內存取指令執(zhí)行指令傳統(tǒng)CPU執(zhí)行指令的過程現(xiàn)代CPU執(zhí)行指令的過程52、8086/8088的寄存器和標志8086/8088的寄存器分為4種類型:(1)通用寄存器(2)指針和變址寄存器(3)段寄存器(4)標志寄存器6(1)通用寄存器通用寄存器的主要功能:保存CPU分析和執(zhí)行時產生的中間結果。訪問內存速度遠遠低于CPU的運算速度。7(2)指針與變址寄存器8(3)段寄存器9(4)標志寄存器標志寄存器長度為16位,其中9個位有定義。10CF,CarryFlag,進位標志,兩數(shù)相加,最高位向前的進位;或兩數(shù)相減最高位向前的借位,舉例:100000011000000000000001+1100000001000000111111111-111AF,AuxiliaryCarryFlag,輔助進位標志,兩數(shù)相加,第3位向前的進位;或兩數(shù)相減第3位向前的借位,舉例:000010010001100000010001+000000000000000111111111-注意:CF是最高位向前的進位或借位,具體第幾位由參與運算的數(shù)據(jù)長度決定;而AF固定是第3位向第4位。12PF,ParityFlag,奇偶標志,兩數(shù)操作(算術或邏輯),結果的低8位中含有1的位數(shù)是偶還是奇.舉例:100001011010110010011101100101111000010110000100AND結果:PF=113ZF,ZeroFlag,零標志,操作結果的為0則ZF為1.舉例:111111110000000100000000+進位1操作結果為0,ZF=114SF,SignFlag,符號標志,操作結果的符號位(即最高位的狀態(tài)).舉例:100001011010110010011101100101111000010110000100AND結果:SF=115OF,OverflowFlag,溢出標志,算術操作,結果超過目標所能容納的范圍.舉例:01111110(+126)00000011(+3)10000001(-127)+如何判斷運算結果是否溢出?001111110(+126)000000011(+3)010000001(-127)+采用雙符號位16

還有三個標志位:IF,DF,TF暫時不講,等用到時再講.標志位在匯編語言程序設計中非常重要,必須掌握好.173.2存儲器1、存儲器的分段結構2、實際地址的產生181、存儲器的分段結構為何采用分段結構?19邏輯地址:由段基址和段內偏移地址組成的地址,

段基址和段內偏移地址都是16位的無符號二進制數(shù),在程序設計時使用。如CS=9482H,IP=2350H,可以表示為9482:2350。實際地址(物理地址):存儲器的絕對地址(20位的實際地址),范圍從00000H~FFFFFH,是由CPU訪問存儲器時由地址總線發(fā)出的地址。實際地址=段基址×10H(16)+偏移地址2、實際地址的產生20舉例:CS=9482H,IP=2350H,實際地址為:1001010010000010001000110101000010010110101101110000一個實際地址可以對應多個邏輯地址.21內部寄存器

IP

ES

SSDSCS總線控制8086總線EU控制邏輯∑ALU標志寄存器(F)AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令隊列執(zhí)行單元(EU)總線接口單元(BIU)16位20位16位8位CPU內部總線22操作類型正常使用(隱含)段基址可替換段地址偏移地址物理地址計算取指令CS無IP(CS)16d+(IP)堆棧操作SS無SP(SS)16d+(SP)BP間址SSCS,DS,ES有效地址EA(SS)16d+EA存取變量DSCS,ES,SS有效地址EA(DS)16d+EA源字符串DSCS,ES,SSSI(DS)16d+(SI)目標字符串ES無DI(ES)16d+(DI)233.3尋址方式3.3.1操作數(shù)的種類3.3.2尋址方式3.3.4段更換和段跨越3.3.5有效地址的計算時間指令中提供操作數(shù)或操作數(shù)地址的方式。243.3.1操作數(shù)的種類(1)立即操作數(shù):指令要操作的數(shù)據(jù)在指令代碼中,MOVAL,10H;指令碼B010.(2)存儲器操作數(shù):指令要操作的數(shù)據(jù)在存儲器(內存)中,MOVAL,[1234H];指令碼A03412.(3)寄存器操作數(shù):指令要操作的數(shù)據(jù)在CPU的寄存器中,MOVAL,BL;指令碼88D8.(4)I/O端口操作數(shù),INAL,20H;指令碼E420.253.3.2尋址方式1.固定尋址2.立即尋址3.寄存器直接尋址4.存儲器尋址(存儲器直接尋址,寄存器間接尋址,基址尋址,變址尋址,基址變址尋址)5.數(shù)據(jù)串尋址(暫不講)261.固定尋址指令要操作的數(shù)據(jù)在指令中并沒有明確給出,但隱含在指令中.例:

MULBL;AL*BL=>AX在該指令中,AL和AX并未給出.272.立即尋址指令要操作的數(shù)據(jù)包含在指令碼中.例:MOVAX,1234H其指令碼為B83412.283.寄存器直接尋址在指令(碼)給出寄存器的名字(編碼),要操作的數(shù)據(jù)在該寄存器中.INCCX;指令碼41INCDX;指令碼42INCBX;指令碼43INCSP;指令碼44INCBP;指令碼45294.存儲器尋址在存儲器尋址方式中,要尋址的數(shù)據(jù)位于存儲器(內存)中,指令中直接或間接地給出存儲器操作數(shù)的地址.存儲器尋址包括:

①存儲器直接尋址②寄存器間接尋址③基址尋址④變址尋址⑤基址變址尋址30①存儲器直接尋址指令中直接給出操作數(shù)所處的存儲單元的偏移地址.這個地址即有效地址。例如:MOVAL,[1000H];指令碼:A00010MOVBX,[1000H];指令碼:8B1E0010

執(zhí)行結果?AL=34HBX=1234H31②寄存器間接尋址(1)操作數(shù)位于位于內存中,操作數(shù)的有效地址位于某個寄存器中,在指令(碼)中給出的是該寄存器的名字(編碼).舉例:MOVAL,[BX];指令碼:8A07MOVAX,[SI];指令碼:8B04假定BX=1001H,SI=1000H

則:結果,AL=12H,AX=1234H32②寄存器間接尋址(2)可以用于寄存器間接尋址的寄存器有:BX[BX]SI[SI]DI[DI]33

在基址尋址中,操作數(shù)位于位于內存中,操作數(shù)的有效地址由基址寄存器BX或BP與一個位移量相加給出,在指令(碼)中給出的是該基址寄存器的名字(編碼)及位移量.舉例:MOVAL,[BX+1234H];指令碼:8A873412假定BX=1000H

則:結果,AL=78H③基址尋址(1)34③基址尋址(2)基址尋址的格式:[BX+位移量][BP+位移量]位移量的范圍:補碼表示的8位或16位(-128~+127,-32768~+32767)35

④變址尋址(1)在變址尋址中,操作數(shù)位于位于內存中,操作數(shù)的有效地址由變址寄存器SI或DI與一個位移量相加給出,在指令(碼)中給出的是該變址寄存器的名字(編碼)及位移量.舉例:MOVAL,[SI+1234H];指令碼:8A843412假定SI=1000H則:結果,AL=78H36④變址尋址(2)變址尋址的格式:[SI+位移量][DI+位移量]位移量的范圍:補碼表示的8位或16位(-128~+127,-32768~+32767)37⑤基址變址尋址(1)在基址變址尋址中,操作數(shù)位于位于內存中,操作數(shù)的有效地址由基址寄存器BX或BP與變址寄存器SI或DI及一個位移量相加給出,在指令(碼)中給出的是寄存器的名字(編碼)及位移量.舉例:MOVAL,[BX+SI+1234H];指令碼:8A803412假定:BX=1000H,SI=2000H則:結果,AL=78H38⑤基址變址尋址(2)基址變址尋址的格式:[BX+SI+位移量][BX+DI+位移量][BP+SI+位移量][BP+DI+位移量][BX+SI][BX+DI][BP+SI][BP+DI]錯誤的寫法:[BX+BP][SI+DI]位移量的范圍:補碼表示的8位或16位(-128~+127,-32768~+32767)39需要注意的問題存儲器尋址方式中的段地址尋址方式中不能出現(xiàn)的情況40存儲器尋址方式中的段地址在存儲器尋址方式中只給出了偏移地址,其段地址是隱含的,一般情況下,是DS,只有特殊情況下是SS.特殊情況:在基址尋址和基址變址尋址方式下,基址寄存器是BP.請看下面的例子:41假定DS=1000H,SS=2000H,BP=0100H,BX=0100H,如下指令在執(zhí)行完后的結果分別是什么?①MOVAX,[BX+100H]②MOVAX,[BP+100H]42尋址方式中不能出現(xiàn)的情況立即數(shù)只能用于源操作數(shù)尋址除源操作數(shù)為立即尋址方式外,其中一個操作數(shù)的尋址方式必須是寄存器直接尋址,即兩個操作數(shù)不能同時為存儲器操作數(shù)例如MOVdata1,12hMOVdata1,data2錯

433.3.4段更換和段跨越(1)當要操作的數(shù)據(jù)不在隱含段中時,就需要段更換或段跨越.要尋址的數(shù)據(jù)在2000H段的0100H單元,而目前沒有一個段寄存的值是2000H,就需要將2000H裝入某個段寄存器,如DS,這就是段更換.

MOVAX,2000HMOVDS,AXMOVBX,0100HMOVAL,[BX]44當要操作的數(shù)據(jù)不在隱含段中時,就需要段更換或段跨越.要尋址的數(shù)據(jù)在2000H段的0100H單元,而目前CS段寄存的值是2000H,可在尋址操作數(shù)加一段跨越前綴,如CS:,這就是段跨越.MOVBX,0100HMOVAL,CS:[BX]3.3.4段更換和段跨越(2)453.3.5有效地址的計算時間存儲器操作數(shù)的偏移地址。463.4指令系統(tǒng)共分為14類92種指令.(1)數(shù)據(jù)傳送(8)循環(huán)控制(2)算術運算(9)調用與返回(3)邏輯運算(10)BCD調整(4)移位(11)輸入輸出(5)標志位操作

(12)中斷處理(6)轉移(13)外同步(7)數(shù)據(jù)串

溫馨提示

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

評論

0/150

提交評論