電子科技大學成都學院微機原理知識點精華_第1頁
電子科技大學成都學院微機原理知識點精華_第2頁
電子科技大學成都學院微機原理知識點精華_第3頁
電子科技大學成都學院微機原理知識點精華_第4頁
電子科技大學成都學院微機原理知識點精華_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、8086 中, BIU 負責取指、讀操作數(shù)和寫結(jié)果,而 EU 負責執(zhí)行指令。 EU 和 BIU 之 間的通信是通過 16 位的 ALU 總線和 8 位指令隊列總線來完成的EU 接收指令隊列中的指令,進行指令譯碼、分析,形成各種控制信號,實現(xiàn) EU 各個 部件完成規(guī)定動作的控制。運算器分為算術(shù)邏輯單元 ALU (2個16位數(shù)據(jù)的算術(shù)運算。2個16位數(shù)字的邏輯運 算16位偏移地址EA的運算)和通用寄存器組:數(shù)據(jù)、地址EU 的工作過程 1. 從 BIU 的指令隊列中取指令字節(jié);2. EU 控制電路進行指令譯碼、分析;3. 如需要,送操作數(shù)的偏移地址至 BIU ;4. 將 BIU 取來的操作數(shù)送 AL

2、U 進行運算;5. 存運算結(jié)果到通用寄存器或送至 BIU ;6. 更新標志寄存器??偩€接口單元 BIU? 總線控制邏輯(分時傳遞地址信息或數(shù)據(jù)信息)? 指令隊列緩沖器( FIFO 用于暫存指令取指令和執(zhí)行指令可重疊操作)? 地址生成( 4 個 16 位段寄存器, 16 位指令指針寄存器 IP , 20 位地址產(chǎn)生器)BIU 的工作過程1. 從存儲器的指定單元取出指令;2. 將指令送至指令流隊列中排隊或直接傳送給 EU3. 把 EU 的操作結(jié)果傳送到指定的存儲單元或外設端口中指令隊列緩沖器: FIFO 結(jié)構(gòu),指令隊列至少保持有一條指令,且只要有一條指令, EU 就開始執(zhí)行,指令隊列只要不滿, B

3、IU 就會自動執(zhí)行取指操作,直到填滿為止。 當執(zhí)行轉(zhuǎn)移指令時, EU 要求 BIU 從新的地址中重新取隊列中原有指令被清除,新取 得的第一條指令直接送 EU 執(zhí)行,隨后取得的指令填入隊列。地址產(chǎn)生器 產(chǎn)生 20 位的地址OF :溢出標志輸入:段寄存器中的 16 位段首地址(邏輯地址)從 EU 中來的 16 位段內(nèi)偏移地址 (邏輯地址)輸出: 20 位實際地址(物理地址) 8086CPU 地址總線寬度 20 位;寄存器16位物理地址PA =(段首地址(CS、DS、 址( IP 或 EU 部件提供)SS、 ES 提供)左移 4 位AXAHAL累加器( 數(shù)據(jù)寄存器BXBHBL基址寄存器CXCHCL計

4、數(shù)寄存器通用寄存器組DXDHDL數(shù)據(jù)寄存器二進制位)偏移地SP堆棧指針地址指針及變址寄存器)BP基址指針SI源變址指針DI目的變址指針I(yè)P指令指針控制寄存器組FLAG標志寄存器CS代碼段寄存器段寄存器組DS數(shù)據(jù)段寄存器SS堆棧段寄存器ES附加段寄存器o1. 當進行帶符號的補碼運算時,算術(shù)運算的結(jié)果超出了機器所能表達的帶符號數(shù)的范圍,就會產(chǎn)生溢出,OF = 1 ;否則OF = 0,表示運算結(jié)果無溢出發(fā)生。求解方法:雙進位位法最高進位位 次高進位位2. 兩個無符號數(shù)相加時,當最高數(shù)值位向高位數(shù)值位有進位時,即 CF=1 時表示有溢 出;當 CF=0 時表示無溢出。SF:符號標志,運算結(jié)果為負時,

5、SF=1; 否則為 0ZF :全零標志,運算結(jié)果各位都為零,則 ZF=1; 否則為 0AF:輔助進位標志,作加法時 D3位向 D4 位進位,則 AF=1; 否則為 0PF:奇偶標志,操作結(jié)果的低 8位中含有偶數(shù)個 1 ,則 PF=1; 否則為 0CF :進位標志,加法時最高位產(chǎn)生進位或減法時高位產(chǎn)生借位, CF=1 ;否則為 0IF :中斷允許標志,控制可屏蔽中斷的標志,若IF = 1,表示允許CPU接受外部從INTR弓I線上發(fā)來的可屏蔽中斷請求信號;若 IF = 0,則禁止。DF:方向標志,用于控制字符串操作指令的步進方向,當DF = 1時,字符串操作指令將從高地址到低地址的方向?qū)ψ址M行

6、處理;若 DF = 0時,貝V相反??偩€周期 CPU 訪問一次存儲器單元或 I/O 口所需的時間??偩€周期全部由 BIU 來完成,所以也稱為 BIU 總線周期。一個基本的總線周期至少由 4 個時鐘周期組成 存儲器以字節(jié)為單位存儲信息。為區(qū)別不同的字節(jié)存儲單元,每個單元都被指定一個唯一的編號,稱為該單元的物理地址(簡稱PA)。地址編號從0開始,按順序加1 ,一般用十六進制數(shù)表示。因此 PC 機的內(nèi)存是以字節(jié)單元為單位對內(nèi)存進行編址8086 地址線有 20 根,存儲器的最大存儲空間為 1MB (220),因此存儲器地址范圍為 00000H FFFFFH: 8086 有 20 根地址線,但寄存器內(nèi)部

7、可以表示的地址最多只能是 16 位。為了能 尋址 1MB 空間, 8086 對存儲器進行邏輯分段,每個段最大為 64KB ,最小為 16B采用了段地址加偏移地址的尋址方式CS: IP,這樣最大尋址范圍擴大到FFFFF,即1MB 。段基址:一個邏輯段的起始地址,形如 XXXXH 。偏移地址:段內(nèi)一個存儲單元到達段地址的距離(16 位)。物理地址PA :存儲單元的實際地址(20位)。邏輯地址 LA :段基址和偏移地址。注意:邏輯地址是在程序指令中引用和操作的地址;而物理地址是在20 位地址總線上產(chǎn)生的地址進棧出棧(二 52 53 )每個I/O 端口都有一個唯一的端口地址,由于只用地址總線的低16位

8、A15A0來尋址端口地址,所以 8086 CPU 可以訪問的 I/O 端口地址共有 64KB ,其地址為 0000H FFFFH無操作數(shù)指令,例:等待指令 WAIT 單操作數(shù)指令,例:加 1 指令 INC AL 雙操作數(shù)指令,例:減法指令 SUB AL , BL目的操作數(shù):前者 (AL)源操作數(shù):后者 (BL)用 BX 、SI 、DI 默認段寄存器: DS用 BP 默認段寄存器: SS尋址方式(三 12 左右)對 I/O 端口的尋址方式有端口直接尋址和端口間接尋址方式兩種。訪問 I/O 端口 只能使用其專用指令:IN 和 OUT 指令。端口直接尋址:當端口地址在 8 位二進制 n=00H FF

9、H 范圍時才可使用直接尋址方式端口間接尋址:當端口地址大于 FFH,則只能采用間接尋址方式,必須使用間址寄 存器DX,存放I/O端口的地址碼CS、立即數(shù)不作目的數(shù)堆棧一一以“先進后出”原則組織起來的連續(xù)的內(nèi)存空間。堆棧操作以字為單位。固定以SS:SP為指針指示棧頂,出、入堆棧的操作均針對棧頂單元進行。80X86的堆棧生長方向為“向下增長”入棧,指針減出棧,指針加入棧操作(三30)交換指令一一XCHG功能:將源、目的操作數(shù)的內(nèi)容互相交換,指令執(zhí)行后源、目的操作數(shù)同時被 改變累加器專用傳送指令(1)輸入/輸出(I/O )指令 輸入指令一一IN功能:把指定端口中的一個數(shù)據(jù)(字節(jié)或字)輸入至AL或AX

10、。指令形式:IN累加器,端口地址IN AL ,20H ;從20H 端口輸入一個字節(jié)至 AL 輸出指令一一OUT功能:把AL或AX中的數(shù)據(jù)輸出到指定的端口。指令形式:OUT端口地址,累加器OUT 20H,AL ;將AL中一字節(jié)輸出到20H端口換碼指令一一XLAT功能:直接查表并讀表格中元素值的指令)換碼指令一一XLAT功能:直接查表并讀表格中元素值的指令目標地址傳送指令不是傳送操作數(shù),而是傳送操作數(shù)的地址,把存儲單元地址送入 指定的寄存器。(1 )有效地址送寄存器指令 LEA 源、目操作數(shù)長度必須一致。 源、目操作數(shù)不能同時是存儲器操作數(shù)。 源、目操作數(shù)不能同時是段寄存器。 立即數(shù)和代碼段寄存器

11、 CS 不能作目操作數(shù)。 當目操作數(shù)是段寄存器時,源操作數(shù)不能是立即數(shù) 可以使用段寄存器的指令: MOV 、PUSH 、POP。 除 XCHG 指令外,其它數(shù)傳指令僅改變目操作數(shù),源操作數(shù)保持不變。 除 SAHF 、POPF 指令外,其它數(shù)傳指令的執(zhí)行不影響標志位。不帶進位加指令 ADD帶進位位的加法指令 ADCADC AL , 78H; AL J AL + 78H + CfADC AX , CX ; AX J AX + CX + CfADC BX , WORD PTRDI; BX J BX DI 1DICF加1指令一一INC執(zhí)行之后影響標志位 SF、ZF 、AF、PF、OF ,但不影響 CF

12、BCD例:將分別存放在 34000H 、34200H 處的兩個 4 位組合 BCD 碼相加,組合碼的結(jié)果放在 34200H 處。MOVAX,3400HMOVDS,AX;設置默認段寄存器值MOVSI ,0 ;使 SI 指向 34000H 單元MOVDI , 0200H ;使 DI 指向 34200H 單元MOVAL,SIADDAL ,DI ;低 2 位組合 BCD 碼相加DAA;調(diào)整得組合 BCD 碼,仍在 AL 中MOV DI , AL ;組合 BCD 碼結(jié)果(低 2 位)存入 34200H 處MOVAL ,SI+1ADC AL, DI+1;高 2 位組合 BCD 碼相加DAAMOV DI+1

13、 , AL ;組合 BCD 碼結(jié)果(高 2 位)存入 34201H 處MOV DI+2 , 0ADC DI+2 ,0 ;高位的進位存入 34202H 處 不帶借位減法指令 SUB 帶借位的減法指令 SBB 比較指令 CMP 形式: CMP dst , src判斷條件:1. 無符號數(shù)比較大小:CF=O , dst src ; CF=1 , dst v src。2. 兩個正數(shù)比較大?。篠F=0 , dst src ; SF=1 , dst v src。3. 兩個帶符號數(shù)比較大?。篛F SF=0 , dstsrc ; OF SF=1 , dstsrc無論兩個有符號數(shù)還是無符號數(shù)比較是否相等: ZF=

14、1 , dst=src 求補指令 NEG形式:NEG dst ;dst 0 -dst 無符號數(shù)乘法指令: MUL 通用寄存器或存儲器帶符號數(shù)乘法指令: IMUL 通用寄存器或存儲器無符號數(shù)除法指令: DIV 通用寄存器或存儲器帶符號數(shù)除法指令: IDIV 通用寄存器或存儲器小結(jié): 加、減法的運算結(jié)果與兩個操作數(shù)的長度相等,進、借位反映在標志位上。 乘、除法運算僅由指令指定一個操作數(shù),另一個操作數(shù)固定為累加器。 除了除法和符號擴展指令外,其它算術(shù)運算指令均影響狀態(tài)標志,不同指令對 標志位的影響也各不相同。 允許使用 BCD 碼進行算術(shù)運算。為了得到正確的 BCD 碼運算結(jié)果,應使用相 應的十進制

15、調(diào)整指令。 所有的十進制調(diào)整均對累加器進行。加、減、乘法的調(diào)整在運算之后進行,只有 除法必須先調(diào)整,后運算布爾型指令(1 )與、或、非、異或 AND 、OR、NOT 、XOR執(zhí)行之后影響所有狀態(tài)標志 SF、ZF、 AF、PF、CF、OF例 1. 把標志寄存器 FLAGS 中符號標志位 SF 置 1 ;2. 將標志寄存器 FLAGS 中跟蹤標志位 TF 置 1 ;3. 將標志寄存器 FLAGS 中溢出位 OF 變反。1. LAHF2. PUSHFOR AH, 80HPOP AXSAHFOR AX, 0100HPUSH AXPOPF3. PUSHFPOP AXXOR AX, 0800HPUSH A

16、XPOPF 檢測指令TEST形式:TEST dst , src;dst A src如:TEST AL , 20H ;取 AL 的 D5 位JZ BCLR; ZF=1 (該位為0 )就轉(zhuǎn)至U BCLR處算術(shù)左移指令SAL(移空的位全部補0 )算術(shù)右移指令SAR(移空的位用原操作數(shù)的符號位補充)邏輯左移指令SHL(移空的位全部補0) 邏輯右移指令SHR(移空的位全部補0) 無條件轉(zhuǎn)移指令JMP調(diào)用指令CALL格式:CALL操作數(shù)(即目標地址)返回指令RET格式:RETRET8 位立即數(shù)位于被調(diào)過程的末尾;必須與 CALL指令成對使用條件轉(zhuǎn)移指令JCC標志位=1則轉(zhuǎn)移JSJZ/JEJP/JPEJCJ

17、O? 判斷無符號數(shù)大小的指令JA/JNBE;目操作數(shù)源操作數(shù)則轉(zhuǎn)移JAE/JNB/JC;目操作數(shù) 源操作數(shù)則轉(zhuǎn)移JB/JNAE/JNC;目操作數(shù)V 源操作數(shù)則轉(zhuǎn)移JBE/JNA;目操作數(shù)w源操作數(shù)則轉(zhuǎn)移? 判斷帶符號數(shù)大小的指令JG/JNLE ;目操作數(shù)源操作數(shù)則轉(zhuǎn)移JGE/JNL ;目操作數(shù)源操作數(shù)則轉(zhuǎn)移JL/JNGE;目操作數(shù)V 源操作數(shù)則轉(zhuǎn)移JLE/JNG;目操作數(shù)W源操作數(shù)則轉(zhuǎn)移LOOP 指令:CX 1 f CX CX工0 ? 是:轉(zhuǎn)移 否:順序執(zhí)行LOOPZ指令CX 1 f CX CX工0且Zf= 1 ? 是:轉(zhuǎn)移 否:順序執(zhí)行MOV CX ,10(其它初始條件)NXT : DEC

18、CXJCXZ LAST(循環(huán)執(zhí)行的指令)JMP NXTLAST :(退出循環(huán)后的處理)以字母開頭,由大寫字母 AZ 小寫字母 az (匯編程序不區(qū)分大小寫)、數(shù)字(09 )及4個特殊字符(?、$、和_等)組成名字的命名規(guī)則:字符串長度不能超過 31 個字符命名不能使用匯編語言中的保留字-操作數(shù)如果是兩個操作數(shù),中間用逗號隔開操作數(shù)的形式可以有:常數(shù)、寄存器名、標號、變量和表達式DB -變量為字節(jié)數(shù)據(jù)類型(8位)DW -變量為字數(shù)據(jù)類型(16位)DD -變量為雙字數(shù)據(jù)類型(32位)DQ -變量為4字數(shù)據(jù)類型(64位)DT -變量為10字節(jié)數(shù)據(jù)類型(80位)ST DB 96, 20, ?, 57; 以ST為首址連續(xù)分配 4個字節(jié)的存儲單元STR DB How are you ? $定義字符串TWIN DB

溫馨提示

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

評論

0/150

提交評論