![微機原理及應(yīng)用(第五版)課件_第1頁](http://file4.renrendoc.com/view/a952b878de02b1cb3a826533b93c2b0c/a952b878de02b1cb3a826533b93c2b0c1.gif)
![微機原理及應(yīng)用(第五版)課件_第2頁](http://file4.renrendoc.com/view/a952b878de02b1cb3a826533b93c2b0c/a952b878de02b1cb3a826533b93c2b0c2.gif)
![微機原理及應(yīng)用(第五版)課件_第3頁](http://file4.renrendoc.com/view/a952b878de02b1cb3a826533b93c2b0c/a952b878de02b1cb3a826533b93c2b0c3.gif)
![微機原理及應(yīng)用(第五版)課件_第4頁](http://file4.renrendoc.com/view/a952b878de02b1cb3a826533b93c2b0c/a952b878de02b1cb3a826533b93c2b0c4.gif)
![微機原理及應(yīng)用(第五版)課件_第5頁](http://file4.renrendoc.com/view/a952b878de02b1cb3a826533b93c2b0c/a952b878de02b1cb3a826533b93c2b0c5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
微型計算機原理第一章微型計算機基礎(chǔ)知識第二章微型計算機組成及微處理器功能結(jié)構(gòu)第三章80X86尋址方式和指令系統(tǒng)第四章匯編語言程序設(shè)計第六章半導(dǎo)體存儲器及接口第八章中斷和異常第九章輸入/輸出方法及常用的接口電路微型計算機原理第一章微型計算機基礎(chǔ)知識1第一章微型計算機基礎(chǔ)知識
常用數(shù)據(jù)類型數(shù)學(xué)協(xié)處理器的數(shù)據(jù)格式第一章微型計算機基礎(chǔ)知識
常用數(shù)據(jù)類型21.1.1數(shù)據(jù)在內(nèi)存儲器中的存儲方式字節(jié):8個二進制位.一個字節(jié)也叫做一個存儲單元.地址:對內(nèi)存中存儲單元的編號.從0開始直到CPU能支持的最高地址.字:相鄰兩個字節(jié)存放一個數(shù).16位.雙字:相鄰四個字節(jié)存放一個數(shù).32位.
多字節(jié)數(shù)據(jù)的存儲采取高位字節(jié)在高地址的原則.數(shù)據(jù)所在地址是低字節(jié)所在的地址.1.1.1數(shù)據(jù)在內(nèi)存儲器中的存儲方式字節(jié):8個二進制位.一3多字節(jié)數(shù)據(jù)的存儲情況例如字1234和雙字3C5D7E9F的存儲地址地址m+2m+1mm-1××××××××12343C5D7E9Fm+4m+3m+2m+1mm-1(a)字的存儲(b)雙字的存儲多字節(jié)數(shù)據(jù)的存儲情況例如字1234和雙字3C5D7E9F的存41.1.2數(shù)的進位制表示約定二進制:數(shù)的后面加后綴B.十進制:數(shù)的后面加后綴D或不加.十六進制:數(shù)的后面加后綴H.
1.1.2數(shù)的進位制表示約定二進制:數(shù)的后面加后綴B.51.1.3整數(shù)1.無符號數(shù)8、16、32位全部用來表示數(shù)值本身。最低位LSB是0位,最高位MSB是7、15、31。2.帶符號整數(shù)1).原碼:設(shè)X=+1011100B,Y=-1011100B
此時X和Y被稱為真值.則[X]原=01011100,[Y]原=11011100
而[+0]原=00000000,[-0]原=10000000綜上述[X]原={XX為正2n-1-XX為負1.1.3整數(shù)1.無符號數(shù)[X]原={X62).補碼和反碼舉一實例:3點鐘-7小時=8時
3點鐘+5小時=8時即:3-7=3+5為什么?答:時鐘是以12為模,5是-7的補碼.
在計算機中采用補碼主要原因有二,一是可以將減法變成加法來運算.二是補碼的符號位可以參加運算.
計算機中是用2n為?!?補碼.[X]補=2n+X2).補碼和反碼舉一實例:3點鐘-7小時=8時[X]補=2n7若以2n-1為模的補碼稱1補碼反碼[X]反=2n-1+X根據(jù)上面的公式得:X為正時:[X]反=[X]補=[X]原X為負時:求[X]補是將[X]原的符號位不變,其余各位變反加1.
求[X]反是將[X]原的符號位不變,其余各位變反.若以2n-1為模的補碼稱1補碼反碼[X]反=2n-18補碼沒有+0和-0之分;反碼有+0和-0之分
[+0]補=00…..00=0[-0]補=00…..00=0
[+0]反=00…..00=0[-0]反=00…..00=111…..11例如:X=+1010011B
[X]反=[X]補=[X]原=01010011X=-1010011B[X]原=11010011[X]補=10101101[X]反=10101100補碼沒有+0和-0之分;反碼有+0和-0之分[+093).移碼針對補碼不易比較大小的缺點而出現(xiàn)了移碼
[X]移=2n-1
-1+XX>-2n-1
且X<=2n-12n-1-1為偏移量例如:X=+10010B=+18,Y=-10010B=-18[X]移=26-1
-1+X=011111+010010=110001B[Y]移=26-1
-1+Y=011111-010010=001101B3).移碼針對補碼不易比較大小的缺點而出現(xiàn)了移碼103.帶符號數(shù)的運算原碼:類似于正負數(shù)的筆算優(yōu)點:直觀.
缺點:減法過程非常繁鎖.
適用:浮點數(shù)的有效數(shù)字.
二進制乘除法.補碼:優(yōu)點:符號位和數(shù)值一起運算;
減法可以變成加法運算.
缺點:數(shù)值比較大小時易出錯.
適用:加減法的運算中.3.帶符號數(shù)的運算原碼:類似于正負數(shù)的筆算11運算公式:[x+y]補=[x]補+[+y]補
其中:|x|,|y|,|x+y|<2n-1
[-y]補=[y]變補[y]變補就是將[y]補連同符號位一起各位變反加1.反碼:常用在求反邏輯運算中,其它運算不用.移碼:優(yōu)點:能很方便的比較出真值的大小.
適用:A/D和D/A轉(zhuǎn)換器的雙極性編碼.
浮點數(shù)的階碼中.運算公式:[x+y]補=[x]補+[+y]補其中:|x|,124.無符號數(shù)運算(補碼運算)
[x]補+[+y]補=[x+y]補
其中:x、y及(x+y)<2n加法:最高位沒有進位.就有正確結(jié)果,并為正.減法:1).若x>=y,[x]補+[-y]補最高位有進位,結(jié)果為正.[x-y]補=[x-y]原
2).若x<y,[x]補+[-y]補最高位無進位,結(jié)果為負.將[x-y]補再求一次補前邊加上負號就得到x-y的真值.4.無符號數(shù)運算(補碼運算)[x]補+[+y]補=[13例1.1用補碼運算:①129-79②79-129解:①.設(shè)x=129,y=79則
[x]補=10000001B,[y]補=01001111B[-y]補=[y]變補=10110001B[x-y]補=[x]補+[-y]補=00110010B最高位有進位,結(jié)果為正[x-y]補=[x-y]原=00110010Bx-y=50②.設(shè)x=79,y=129則
[x]補=01001111B,[y]補=10000001B[-y]補=[y]變補=01111111B[x-y]補=[x]補+[-y]補=11001110B最高位無進位,結(jié)果為負x-y=-50例1.1用補碼運算:①129-79②79-129解:①.14
總結(jié):對于無符號數(shù)和有符號數(shù)的補碼運算,計算機運算的方法都是一樣的.只是結(jié)果判斷正負的方法不同.無符號數(shù).加法:結(jié)果必為正.只要不溢出(最高位沒有進位)結(jié)果就是正確的.減法:補碼運算結(jié)果有進位結(jié)果為正.否則為負.有符號數(shù).加減法結(jié)果看符號位.是否溢出用下述方法判別.
總結(jié):對于無符號數(shù)和有符號數(shù)的補碼運算,計算機運算的方法都155.有符號數(shù)加減運算溢出判別
采用雙高位判別法.在計算機內(nèi)設(shè)置兩個進位位分別是:CS:表示符號位向前進位情況.如有進位CS=1,否則CS=0.CP:表示數(shù)值部分最高位向符號進位情況,如有進位CP=1,
否則CP=0.
分析:CSCP溢出情況
00無溢出
01正溢出
10負溢出
11無溢出5.有符號數(shù)加減運算溢出判別采用雙高位判別法.在計16例1.201011010B+90
+01101011B+10711000101B197CS=0CP=1是正溢出例1.310010010B[-110]補
+10100100B[-92]補
100110110BCS=1CP=0是負溢出例1.400101101B+45+00101101B+4501011010B+90CS=0CP=0無溢出例1.201011010B+9017例1.511111110B[-2]補+11111110B[-2]補
111111100B[-4]補
CS=1CP=1無溢出例1.610001011B[-117]補
+01111001B+121100000100B+4CS=1CP=1無溢出,結(jié)果為正
11110100B[-12]+00001001B+911111101B[-3]CS=0CP=0無溢出,結(jié)果為負例1.511111110B[-2]補186.算術(shù)移位
對寄存器和存儲器中的數(shù),左移一位,絕對值增大一倍.右移一位絕對值減少一半.(只要沒把有效數(shù)值移出).1).對于正數(shù),左移或右移,空位都補0
例00001110B+14
左移一位00011100B+28
右移一位00000111B+72).補碼表示的負數(shù)左移低位補0,右移高位補1.
例11110010B[-14]補左移一位11100100B[-28]補右移一位11111001B[-7]補6.算術(shù)移位對寄存器和存儲器中的數(shù),左移193).反碼表示的負數(shù)
左移和右移空位全補1.
例11110001B[-14]補左移一位11100011B[-28]補右移一位11111000B[-7]補7.有關(guān)0的問題
原碼和反碼都+0和-0之分,而補碼沒有,補碼中的表示-128(8位機)
下面用例題說明這一點:3).反碼表示的負數(shù)左移和右移空位全補1.20例1.7[-128]補=10000000B,下面運算正確-6411000000B+)-64+11000000B-128110000000B[-128]補符號位進位丟失
-12810000000B+)+12701111111B-111111111B[-1]補例1.8若誤認為[-0]補=10000000B,運算便會出錯:-010000000+)+1+00000001+110000001[-127]補≠+1出錯
例1.7[-128]補=10000000B,下面運算211.1.4字符串字符串是存儲器中相鄰存儲單元字符序列.80386對字符串的操作有:移動;傳送;比較;查找等.分類:字節(jié)串;字串;雙字串.1.1.4字符串字符串是存儲器中相鄰存儲單元字符序列.221.1.5位及位串80x86CPU都支持位操作.80386/80486有位串操作.位串最長是232個位.位偏移量:一個位在位串中的地址.由字節(jié)地址和位余數(shù)組成.設(shè)位串是從m地址開始存儲的,位偏移量分別為23和-18的位在什么地方?23/8=2…7在第m+2字節(jié)中的第7位.-18/8=3…6在第m-3字節(jié)中的第6位.
mm-1m+1m+2m-207…..1.1.5位及位串80x86CPU都支持位操作.80386231.1.6BCD碼及ASCⅡ碼1.十進制數(shù)的二進制編碼
1).8421碼
2).2421碼
3).余3碼見P9表1.22.ASCII碼
1)7位的ASCⅡ碼.2)8位的ASCⅡ碼.見P10表1.33.奇偶校驗碼奇校驗:編碼“1”的個數(shù)為奇數(shù),校驗位置“0”
否則校驗位置“1”.缺點:雙重差錯是無法校驗出來的.1.1.6BCD碼及ASCⅡ碼1.十進制數(shù)的二進制編碼241.2
數(shù)學(xué)協(xié)處理器的數(shù)據(jù)格式80387支持的數(shù)據(jù)類型1.2數(shù)學(xué)協(xié)處理器的數(shù)據(jù)格式80387支持的數(shù)據(jù)類型251.2.1整型數(shù)80387支持長整型數(shù),而80386支持字節(jié)整型數(shù).
1.2.2BCD碼壓縮BCD碼占80位,即10個字節(jié).能存儲20位BCD數(shù),但在80387中只用了18位BCD數(shù).余下1個字節(jié)的最高位為符號位.其余7位不用.最高位是符號位7位不用1.2.1整型數(shù)80387支持長整型數(shù),而80386支持字261.2.3實型數(shù)任何一個二進制數(shù)可以表示成:N=+Y×2J
稱為浮點表示法80387規(guī)定:指數(shù)采用移碼表示。短型實數(shù)階碼占8位;長型實數(shù)階碼占11位。臨時實數(shù)階碼占15位。短型實數(shù)和長型實數(shù)的尾數(shù)中的1和小數(shù)點均隱藏。臨時實數(shù)小數(shù)點前的1不省略。作業(yè):P372.5.6.9.10.14
閱讀引論.1.2.3實型數(shù)任何一個二進制數(shù)可以表示成:27第二章微型計算機組成及
微處理器功能結(jié)構(gòu)2.1微型計算機的組成及工作原理2.28086/8088及80286微處理器2.380386微處理器的功能結(jié)構(gòu)2.480486微處理器的功能結(jié)構(gòu)2.5Pentium級微處理器簡介第二章微型計算機組成及
微處理282.1
微型計算機的組成及工作原理微型計算機的組成:CPU存儲器I./O接口I/O設(shè)備控制總線地址總線數(shù)據(jù)總線2.1微型計算機的組成及工作原理微型計算機的組成:CPU存292.1.1微處理器(CPU)
組成:控制器;運算器;寄存器組成??刂破魇怯芍噶罴拇嫫?指令譯碼器;
控制電路組成。
指令:是一組二進制編碼信息,包括操作碼和操作數(shù)或操作數(shù)地址2.1.2
存儲器
組成:內(nèi)存儲器是由半導(dǎo)體存儲器芯片組成。
讀/寫操作:稱為CPU訪存操作.讀就是取.寫就是送(存).讀操作原存儲單元內(nèi)容不變,寫操作原存儲單元內(nèi)容被改寫.2.1.1微處理器(CPU)組成:控制器;運算器;寄302.1.3
輸入/輸出設(shè)備及其接口電路輸入設(shè)備:將程序、原始數(shù)據(jù)及現(xiàn)場信息以計算機能識別的形式送到計算機中,供計算機自動計算或處理。(鍵盤鼠標數(shù)字化儀掃描儀
A/D等)輸出設(shè)備:將計算機處理的結(jié)果以人能識別的形式輸出來。(顯示器打印機繪圖儀D/A等)外部存儲器:軟.硬磁盤即是輸入設(shè)備也是輸出設(shè)備.
只讀光盤是輸入設(shè)備.接口電路:是CPU與I/O設(shè)備聯(lián)系的必經(jīng)之路.起信息統(tǒng)一和聯(lián)系作用.2.1.3輸入/輸出設(shè)備及其接口電路輸入設(shè)備:將程序、原始312.1.4
總線
總線是具有邏輯控制功能的信號線.1.數(shù)據(jù)總線(DB):
在CPU,內(nèi)存和接口之間傳遞指令和數(shù)據(jù).是雙向的.總線寬度(總線中信號線的條數(shù))有8位、16位、32位、64位。2.地址總線(AB):
用于傳送CPU要訪問的存儲單元或I/O接口的地址號.是單向的。3.控制總線(CB):
用于CPU向其它部件傳送控制信號,其它部件向CPU傳送狀態(tài)信號及請求信號。2.1.4總線總線是具有邏輯控制功能的信號線.322.1.5
微型計算機整機工作原理簡述人程序計算機的內(nèi)存指令指針控制部件譯碼器指令隊列經(jīng)DB各執(zhí)行部件結(jié)果輸出轉(zhuǎn)移指令修改指令指針.2.1.5微型計算機整機工作原理簡述人程序332.28086/8088及80286微處理器的功能結(jié)構(gòu)
屬Intel公司生產(chǎn)的第三代16位微處理器.新增功能:總線加寬一倍,增加了流水執(zhí)行部件和總線接口分為兩個獨立部件.
并行工作.(a)串行處理BIUEU(b)流水處理2.28086/8088及80286微處理器的功能結(jié)構(gòu)342.2.18086/8088CPU的功能結(jié)構(gòu)1.8086/8088CPU的內(nèi)部結(jié)構(gòu)16數(shù)據(jù)及操作數(shù)指令碼多路復(fù)用地址/數(shù)據(jù)總線8086:16位8088:8位EUBIU8086/8088CPU的結(jié)構(gòu)框圖2.2.18086/8088CPU的功能結(jié)構(gòu)1.8086/35數(shù)據(jù)寄存器指針和變址寄存器AHALBHBLCHCLDHDLSPBPSIDIAXBXCXDX暫存寄存器ALU標志寄存器FREU控制器ALU數(shù)據(jù)總線(16位)指令隊列緩沖器123456總線控制邏輯8086總線地址加法器CSDSSSESIP內(nèi)部暫存器AB(20位)執(zhí)行部件(EU)總線接口部件(BIU)DB(16位)(8位)
圖2-38086CPU的內(nèi)部功能結(jié)構(gòu)框圖隊列總線數(shù)據(jù)寄存器指針AHALSPAX暫存寄存器ALU標志36D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0位號CFPFAFZFSFTFIFDFOF標志寄存器
圖2-38086CPU標志寄存器D15D14D13D12D1372.指令流隊列
是一個先進先出的棧,6/4個指令字節(jié).總線周期:CPU訪問一次存儲器或I/O端口所需時間.3.存儲器的分段結(jié)構(gòu)和物理地址的形成
物理地址:每個存儲單元的實際地址編碼.8086/808820位地址總線1MB空間分段結(jié)構(gòu):1MB可分若干段,大小根據(jù)需要而定.每段不超過64KB
段首地址:段的啟始地址稱段首地址,要求低4位為0.
段基址:段首地址的高16位.
地址偏移量:段內(nèi)相對于段首址的地址.2.指令流隊列是一個先進先出的棧,6/4個指令字節(jié).38內(nèi)存儲器單元地址的兩種表示方法:邏輯地址
段基址:偏移量物理地址
物理地址=段基址x10H+偏移量內(nèi)存儲器單元地址的兩種表示方法:邏輯地址392.2.280286的功能結(jié)構(gòu)1.CPU主要性能:集成了13.5萬只晶體管;68個引腳;四列直插式封裝;地址/數(shù)據(jù)總線分開(16位數(shù)據(jù)線,24位地址線);時鐘頻率為8MHz—10MHz;增加存儲器管理和保護機構(gòu).
工作方式:1)實地址方式.2)虛地址方式.
配80287數(shù)學(xué)協(xié)處理器.2.2.280286的功能結(jié)構(gòu)1.CPU主要性能:集成了1402.80286CPU的內(nèi)部結(jié)構(gòu)
地址部件執(zhí)行部件總線接口指令部件已譯碼指令24162416地址數(shù)據(jù)80286CPU的結(jié)構(gòu)框圖物理偏移量和數(shù)據(jù)存儲器操作數(shù)請求2.80286CPU的內(nèi)部結(jié)構(gòu)411).總線接口部件BIU:
負責(zé)處理CPU和系統(tǒng)總線之間的所有通信和數(shù)
據(jù)傳輸.2).指令部件IU:
從預(yù)取隊列取出指令字節(jié)到指令譯碼器,譯成
69位內(nèi)部碼送已譯碼指令隊列.3).執(zhí)行部件EU:
由ALU;FR;控制電路組成.完成指令的執(zhí)行操作.4).地址部件AU:
實地址方式:與8086一樣.
保護方式:AU必須做許可性檢查和當前任務(wù)的段限制檢查.1).總線接口部件BIU:
負責(zé)處理CPU和系統(tǒng)總線之422.3
80386微處理器的功能結(jié)構(gòu)主要性能指標:
32位;132條引腳;網(wǎng)絡(luò)陣列式封裝;32條地址線;12.5MHz及16MHz.
具有段頁式存儲器管理部件,4級保護機構(gòu).
有兩種芯片:80386SX(準32位機)和80386DX.工作方式:1).實地址方式
2).虛地址保護方式:每段長4GB;可尋實地址4GB;尋虛地址64TB最多可用16K個段.3).虛擬8086方式:實地址方式的同時,利用虛擬保護機構(gòu)運行多用戶操作系統(tǒng)及程序.2.380386微處理器的功能結(jié)構(gòu)主要性能指標:432.3.180386CPU的功能結(jié)構(gòu)
分段部件分頁部件總線接口部件指令預(yù)取指令譯碼器執(zhí)行部件80386功能結(jié)構(gòu)框圖2.3.180386CPU的功能結(jié)構(gòu)441.總線接口部件
主要用于將CPU與外部總線連接起來.CPU內(nèi)部的其它部件都能與BIU直接通信,并將它們的總線請求傳給BIU.2.指令預(yù)取部件
當BIU空閑時,預(yù)取隊列有空單元或有轉(zhuǎn)移時,便通過分頁部件向BIU發(fā)指令預(yù)取請求.3.指令譯碼部件從指令預(yù)取隊列中取出指令碼譯成內(nèi)碼送已譯碼指令隊列.
以上三部分構(gòu)成了指令流水線.
1.總線接口部件主要用于將CPU與外部總線連接起來.C454.執(zhí)行部件
從已譯碼隊列取來內(nèi)碼變成一系列控制信息發(fā)向其它部件完成指令的執(zhí)行.5.分段部件
將邏輯地址轉(zhuǎn)換成線性地址.送分頁部件.6.分頁部件在操作系統(tǒng)軟件的控制下,若分頁部件處于允許狀態(tài),便將分段部件或代碼預(yù)取部件產(chǎn)生的線性地址轉(zhuǎn)換成物理地址.
分段部件,分頁部件和BIU構(gòu)成地址流水線4.執(zhí)行部件從已譯碼隊列取來內(nèi)碼變成一系列控制信息發(fā)462.3.280386CPU的寄存器1.通用寄存器:(共4個)主要用來存放操作數(shù)或操作數(shù)地址的。
ALAHEAXAX16位寄存器名稱8位寄存器名稱32位寄存器名稱EBX;ECX;EDX與EAX同樣結(jié)構(gòu).分別含有16寄存器BX;CX;DX和8位寄存器BH;CH;DH.BL;CL;DLEAX:累加器EBX:基址寄存器ECX:計數(shù)器EDX:數(shù)據(jù)寄存器2.3.280386CPU的寄存器1.通用寄存器:(共4個472.變址寄存器(共2個)
源變址SIDI目的變址EDIESI在串操作中分別用于存放源串和目的串的偏移地址.也可以存放32位和16位操作數(shù).2.變址寄存器(共2個)源變址SIDI目的變址EDIE483.指針寄存器(共3個)基地址指針EBPBPESPSPEIPIP堆棧指針指令指針EBP和ESP是用于存放堆棧區(qū)偏移地址.EIP與代碼段寄存器CS一起指出下一條要被執(zhí)行的指令的地址.它不能由程序員直接訪問.3.指針寄存器(共3個)基地址指針EBPBPESPSPEIP49堆棧:是一組寄存器或一個存儲區(qū).堆棧的用途:在調(diào)用子程序或中斷時存放斷點數(shù)據(jù)的.子程序的嵌套堆棧:是一組寄存器或一個存儲區(qū).堆棧的用途:在調(diào)用子程序或中50堆棧的工作原理:
存儲器高地址存儲器低地址64K段POPs向上壓縮堆棧PUSHes向下增長堆棧SSSP當前堆棧頂堆?!暗住保⊿P初值)8086堆棧形式堆棧的工作原理:514.段寄存器段描述符寄存器段寄存器:(共6個,16位)
數(shù)據(jù)段寄存器DS:存放數(shù)據(jù)段的段基址.
堆棧段寄存器SS:存放堆棧段的段基址.
代碼段寄存器CS:存放代碼段的段基址.
附加段寄存器ES;FS;GS:存放當前附加段段基址.段描述符寄存器:64位,一個段選擇器對應(yīng)一個段描述符寄存器.4.段寄存器段描述符寄存器段寄存器:(共6個,16位)525.標志寄存器EFLAGS(32位)由處理器保留虛擬8086方式標志調(diào)整恢復(fù)標志狀態(tài)標志進位標志奇偶標志輔助進位標志零標志符號標志溢出標志保護方式嵌套任務(wù)I/O特權(quán)水平控制標志陷阱標志中斷允許標志方向標志5.標志寄存器EFLAGS(32位)由處理器保留虛擬8086531).狀態(tài)標志:保存ALU運算結(jié)果的特殊信息.CF:有進位(借位)置“1”,否則置“0”.PF:算術(shù)邏輯運算結(jié)果低8位中“1”的個數(shù)為偶置“1”,否則置“0”.AF:ALU加法運算時結(jié)果的第3位向第4位有進位(借位)置“1”,否則置“0”.ZF:ALU的結(jié)果為全零置“1”,否則置“0”.SF:ALU的結(jié)果最高位是“1”,表示負數(shù)置“1”,否則置“0”.OF:有符號加(減)結(jié)果產(chǎn)生溢出時置“1”,否則置“0”.Cs?Cp=1時溢出.1).狀態(tài)標志:保存ALU運算結(jié)果的特殊信息.CF:有進位(54判別兩個帶符號數(shù)a與b的大小(a-b)OF
?SF=1說明a<b否則說明a≥b以上6個標志位與8086/808880286完全兼容.CF;ZF;SF;OF支持8位;16位;32位運算.PF:只反映低8位中“1”的個數(shù).AF:只反映第3位向第4位進位或借位情況.判別兩個帶符號數(shù)a與b的大小(a-b)OF?SF=1說明552).控制標志:(共7個)可用程序來置位或清零,
具有一定的控制能力TF:陷阱標志(單步操作標志)TF=1時,CPU每執(zhí)行完一條指令,就去執(zhí)行服務(wù)程序,向用戶提供各寄存器狀況等.用于程序調(diào)試.IF:中斷允許標志,IF=1時可接受并響應(yīng)可屏蔽中斷.DF:方向標志,指定字符串處理指令的步進方向.DF=1時是減地址,DF=0時是增地址.
以上3個標志位與8086/808880286兼容.2).控制標志:(共7個)可用程序來置位或清零,
56IOPL:輸入/輸出特權(quán)級標志,有四種狀態(tài).00最高特權(quán);11最低特權(quán).當前特權(quán)級高于或等于IOPL所表示的特權(quán)級I/O指令可以執(zhí)行.否則產(chǎn)生一個保護異常.NT:嵌套任務(wù)標志,用于控制返回指令的運行.NT=1當前任務(wù)正嵌套在另一任務(wù)之中.返回操作通過任務(wù)切換來執(zhí)行.即不同任務(wù)之間的返回.NT=0時是同一任務(wù)的返回.
以上兩個標志只在保護方式有效,8086仿真方式(實方式)下無效.IOPL:輸入/輸出特權(quán)級標志,有四種狀態(tài).57RF:重新啟動標志(調(diào)整恢復(fù)標志)RF=0時,調(diào)試故障被接受并應(yīng)答.RF=1時,調(diào)試故障被忽略.VM:虛擬8086方式標志,VM=1時CPU在虛擬8086方式下運行,VM=0時CPU在一般方式下運行.
以上兩個標志是80386新增的控制標志.RF:重新啟動標志(調(diào)整恢復(fù)標志)586.控制寄存器(4個32位)CR0:43210
311615允許保護監(jiān)控協(xié)處理器仿真協(xié)處理器任務(wù)轉(zhuǎn)換處理機擴展允許分頁1).PE:允許保護標志,用于CPU是否進入保護方式,PE=1進入保護方式.若想解除,只有通過系統(tǒng)復(fù)位重新啟動.系統(tǒng)默認是實地址方式.6.控制寄存器(4個32位)CR0:432592).MP:監(jiān)控數(shù)學(xué)協(xié)處理器擴充標志,用來表示協(xié)處理器是否存在.MP=1時表示協(xié)處理器存在.MP=0時協(xié)處理器不存在.3).EM:仿真協(xié)處理器擴充標志,用來表示是否用軟件來仿真數(shù)學(xué)協(xié)處理器.EM=1時表示采用軟件仿真數(shù)學(xué)協(xié)處理器的功能.4).TS:任務(wù)轉(zhuǎn)換標志,由硬件置位,由軟件復(fù)位.當一個任務(wù)轉(zhuǎn)換完成后,TS自動置“1”.下一條企圖使用數(shù)學(xué)協(xié)處理器的指令將產(chǎn)生一個“無數(shù)學(xué)協(xié)處理器”的異常.
以上4個系統(tǒng)標志與80286兼容.2).MP:監(jiān)控數(shù)學(xué)協(xié)處理器擴充標志,用來表示協(xié)處理器是否存605).ET:擴充類型標志,表示系統(tǒng)中所使用的
數(shù)學(xué)協(xié)處理器的類型.ET=1時表示系
統(tǒng)內(nèi)使用的是80387.否則表示系統(tǒng)
使用的是80287或沒有協(xié)處理器.當
EM=1時,ET無效.6).PG:允許分頁標志,表示CPU是否允許對存儲器線性地址進行分頁.并進行物理地址轉(zhuǎn)換.PG=1時允許分頁,分頁部件將線性地址轉(zhuǎn)換成物理址.PG=0
時禁止分頁,線性地址直接當作物理地址.5).ET:擴充類型標志,表示系統(tǒng)中所使用的
數(shù)61CR1:是未定義的控制寄存器,待CPU升級時
用.CR2:頁故障線性地址寄存器,保存最后出現(xiàn)頁故障的全32位線性地址,以便當產(chǎn)生頁故障時用來報告錯誤信息.CR3:頁目錄基址寄存器,保存頁目錄表的物理基地址.CR1:是未定義的控制寄存器,待CPU升級時
用.C627.系統(tǒng)地址寄存器:(共4個)4732位線性基地址1615界限
0GDTRTDTRTRLDTR1).GDTR:全局描述符表寄存器.48位.保存全局描述符表的32位線性基地址和16位界限.2).IDTR:中斷描述符表寄存器.48位.保存中斷描述符表的32位線性基地址和16位界限.7.系統(tǒng)地址寄存器:(共4個)4732位線性基633).LDTR:局部描述符表寄存器.16位.保存當前任務(wù)的局部描述符表的16位選擇符.4).TR:任務(wù)狀態(tài)寄存器.16位.保存當前任務(wù)的任務(wù)狀態(tài)段的16位選擇符.8.調(diào)試寄存器(共8個,32位)
DR0DR1DR2DR3DR4DR5DR6DR73).LDTR:局部描述符表寄存器.16位.保存當前任務(wù)的局649.測試寄存器(共2個.32位)TR6:測試命令寄存器.存放命令.TR7:數(shù)據(jù)寄存器.保存對旁視緩沖器測試時的狀態(tài)數(shù)據(jù).
程序員可在芯片加電后,測試分頁部件中轉(zhuǎn)換旁視緩沖器TLB的操作是否正確.9.測試寄存器(共2個.32位)TR6:測試命令寄存器.存放652.480486微處理器的功能結(jié)構(gòu)主要性能指標:32位;120萬個晶體管;168條引線;網(wǎng)絡(luò)陣列式封裝;32條地址線;尋址4GB實;64TB虛;25MHz和33MHz;80486DX達50MHz—60MHz.CPU,協(xié)處理器及cache集成在一個芯片上,工作速度加快.還具有外部高速緩沖存儲器.9個處理部件,并行流水,對大多數(shù)指令以一個時鐘周期一條指令的速度持續(xù)執(zhí)行.2.480486微處理器的功能結(jié)構(gòu)主要性能指標:66整數(shù)部件分段部件分頁部件Cache部件預(yù)取部件指令譯碼部件控制部件浮點部件總線接口部件地址總線數(shù)據(jù)總線硬件的微指令指令字80486CPU框圖整數(shù)部件分段部件分頁部件Cache部件預(yù)取部件指令譯碼部件控672.4.1總線接口部件
負責(zé)與處理器外部總線的連接。與80386不同的是BIU只與Cache和指令預(yù)取部件交換數(shù)據(jù)。其它訪存請求都要經(jīng)過Cache。2.4.2
高速緩沖存儲部件
用于管理芯片上8KB高速緩沖RAM.所有總線請求先到這里.如命中,則不產(chǎn)生總線周期.如未命中,BIU一次從內(nèi)存取16B送高速緩存行填充.
寫通:在高緩中找到目標修改寫回存儲器.2.4.1總線接口部件負責(zé)與處理器外部總線的連接。682.4.3代碼預(yù)取部件
只要總線空閑時,預(yù)取部件向BIU發(fā)請求.一次取16B的代碼送32B的預(yù)取隊列.
如Cache能命中,則不產(chǎn)生總線周期.
當遇到轉(zhuǎn)移,中斷,子程序調(diào)用時預(yù)取隊列清空.2.4.4
指令譯碼部件
從預(yù)取隊列取機器碼轉(zhuǎn)換成各處理部件的控制信號.譯碼分兩步:取操作數(shù)和譯碼同時進行.沒有已譯碼隊列.2.4.3代碼預(yù)取部件只要總線空閑時,預(yù)取部692.4.5控制部件
對整數(shù)部件,浮點部件和分段部件進行控制.使它們完成已譯碼指令的執(zhí)行.2.4.6
整數(shù)部件
完成整數(shù)的傳輸,加,減運算和邏輯運算.
有4個32位通用寄存器;2個32位變址寄存器;2個32位指針寄存器;64位桶形移位器;ALU;EFLAGS.2.4.5控制部件對整數(shù)部件,浮點部件和分702.4.7分段部件和分頁部件
一起構(gòu)成存儲器管理.
分頁部件:完成虛擬存儲器管理,將線性地址轉(zhuǎn)換成物理地址.分段部件:將部件邏輯地址轉(zhuǎn)換成線性地址.并用高速緩存提高速度.2.4.8
浮點部件與外部協(xié)處理器的功能完全一樣.80486SX需配80487SX等效80486DX.2.4.7分段部件和分頁部件一起構(gòu)成存儲器管712.5Pentium級微處理器簡介2.5.1Pentium微處理器第5代微處理器.1993年Intel公司推出.0.35um工藝;金屬配線;雙級CMOS技術(shù);310萬個晶體管;數(shù)據(jù)總線64位;地址總線36位;60MHz66MHz目前已有133MHz166MHz;
超標量流水技術(shù),多個執(zhí)行單元,一個指令周期內(nèi)執(zhí)行多條指令.兩條超標量流水線U和V,各自有地址生成邏輯,算術(shù)邏輯部件及數(shù)據(jù)高速緩存.(V流水不能執(zhí)行浮點)2.5Pentium級微處理器簡介2.5.1Pentiu722.5.2PentiumPro微處理器1996年推出;0.35um工藝;4層金屬配線;CMOS技術(shù);5.5百萬個晶體管;3條超標量流水線;3個并行譯碼器;5個執(zhí)行單元;2個一級8KB高速緩沖存儲器(數(shù)據(jù)和指令各一個);200MHz250MHz;1個二及高速緩沖存儲器(界于一級高緩和內(nèi)存之間);8個整數(shù)通用寄存器;8個浮點數(shù)通用寄存器;還增加了40個通用寄存器.2.5.2PentiumPro微處理器199732.5.3MMXPentium微處理器(多能奔騰)
芯片管腳與Pentium相兼容.增加視頻信號,音頻信號的處理功能和速度.內(nèi)部高緩比Pentium增加一倍.指令和數(shù)據(jù)高緩都是16KB的.適用于便攜式電腦.2.5.4PentiumII微處理器第6代微處理器.1997年推出.266MHz—451MHz;功耗低;廣泛用于商業(yè)領(lǐng)域.
作業(yè):P695、6
思考:2、3
2.5.3MMXPentium微處理器(多能奔騰)74第三章80X86尋址方式與指令系統(tǒng)3.1計算機指令格式3.2指令長度與字長的關(guān)系3.380x86指令尋址方式3.48086/8088指令系統(tǒng)3.580x86尋址方式及新增指令第三章80X86尋址方式與指令系統(tǒng)3.1計算機指令格式753.1
計算機指令格式1.零地址指令
格式:
指令中只給出操作碼,沒有顯地址.有幾種可能:1).無操作數(shù)的指令.(空操作;CPU控制)2).操作數(shù)是隱含約定的.(棧操作;串操作;累加器操作)OP3.1計算機指令格式1.零地址指令OP762.一地址指令
格式:
一地址指令有兩種常見的形態(tài),根據(jù)操作碼含義確定它是哪一種.
1).只有目的操作數(shù)的單操作數(shù)指令(加1;減1;取補;取反)2).隱含約定目的地址的雙操作數(shù)指令(乘;除等)
OPD2.一地址指令格式:OPD773.二地址指令格式:功能:(D1)OP(D2)D1二地址指令是最常用的.4.三地址指令格式:功能(D2)OP(D3)D1OPD1D2OPD1D2D33.二地址指令格式:OPD1D2OPD1D2D3783.2指令長度與字長的關(guān)系
指令位數(shù)多,信息多,功能強.但存儲空間大,取指時間長.所以目前都采用變字長指令格式.能短則短,需長則長.8086/8088變字長指令格式:指令長1~6個字節(jié).80286指令長:1~10字節(jié).80386指令長:1~15字節(jié).3.2指令長度與字長的關(guān)系指令位數(shù)多,信息多793.380x86指令(編碼)格式與尋址方式3.3.1
8086/8088/80286指令編碼格式opcodemodregr/mdispdata
8086/8088不同字長的指令格式類型如下:opcodeopcodemodopcodemoddata/dispopcodemoddata/disp(低)data/disp(高)opcodemoddisp(低)disp(高)dataopcodemoddisp(低)disp(高)data(低)data(高)
3.380x86指令(編碼)格式與尋址方式3.3.18080操作碼和尋址方式字節(jié)格式如下:
操作碼字節(jié)尋址方式字節(jié)D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D01.操作碼字節(jié):W=0操作數(shù)均是8位,字節(jié)操作.W=1操作數(shù)均是16位,字操作.
D=0reg域指定源操作數(shù).D=1reg域指定目的操作數(shù).2.尋址方式字節(jié):指出第二操作數(shù)的存放地址,
尋求EA的方法.操作碼和尋址方式字節(jié)格式如下:操作碼字節(jié)尋址方式字節(jié)81reg域:確定一個寄存器.(3位)reg域:確定一個寄存器.(3位)82Mod域:說明是寄存器尋址還是存儲器尋址.r/m域:mod=11時是寄存器尋址,指出第二操作數(shù)所在的寄存器號.mod=00、01、10時是存儲器尋址,指出如何求得操作數(shù)的有效地址。Mod域:說明是寄存器尋址還是存儲器尋址.r/m域:mod=83mod與r/m域所組合的尋址方式mod與r/m域所組合的尋址方式84例3.1寫出指令MOV[BX+DI-6],CL
的機器
語言編碼MOV指令操作碼:100010D:0(源操作數(shù))W:0(8位,字節(jié)操作)reg:001(CL)mod:01r/m:001disp8:-6的補碼為指令編碼:1000100001001寫成十六進制:88H、49H、FAH例3.1寫出指令MOV[BX+DI-6],CL的機器85例3.2寫出MOVAH,[BX+DI+50H]
的機器語
言編碼.MOV的操作碼:100010D:1W:0mod:01reg:100r/m:001指令編碼:1000101001100寫成十六進制:8AH、61H、50H例3.3寫出ADDAX,[BX+DI+0826H]
的機器語言編碼.
0000001110
寫成十六進制:03H、81H、26H、08H例3.2寫出MOVAH,[BX+DI+50H]的機器863.3.28086/8088的尋址方式操作數(shù)存在的地方有:寄存器;存儲器;指令字節(jié)中;I/O端口.目的操作數(shù):用指令的執(zhí)行結(jié)果替換掉的操作數(shù).源操作數(shù):指令執(zhí)行過程中保持原值不變.1.操作數(shù)的尋址方式
8086/8088有7種尋址方式.
1).立即數(shù)尋址方式操作數(shù)(8位或16位)是指令碼中的組成部分.例:MOVAL,80H3.3.28086/8088的尋址方式操作數(shù)存在的地方有:87立即數(shù):只能是源操作數(shù);
只能是整數(shù)或字符,若是字符加引號;
16進制的立即數(shù)以字母開頭時前邊要
加“0”.且低8位跟在操作碼后面,高8位
在其后.
例如:MOVCX,0B3CAH
MOVAL,25
MOVBX,“AB”
MOVAH,‘C’
立即數(shù):只能是源操作數(shù);
只能是整數(shù)或字符,若882).寄存器尋址方式
操作數(shù)存放在CPU內(nèi)的通用寄存器或段寄存器中.在指令中給出寄存器的地址(寄存器的名字)例如:INCCXMOVAX,CXMOVDS,AX3).直接尋址方式操作數(shù)存放在存儲單元中,該單元的有效地址在指令中直接給出.不特指,默認段寄存器是DS.2).寄存器尋址方式操作數(shù)存放在CPU內(nèi)的通用寄存89例如:MOVAL,[1064H]源操作數(shù)的物理地址(DS)×10H+1064H數(shù)據(jù)段YY代碼段操作碼64H10HAXIPCSDSmmmmnnnnhhhhnnnn0
+mmmm
ppppm
ppppm
ppppm+1
ppppm+2
hhhh0
+1064
gggg4
gggg4
注:符號地址和數(shù)值地址問題例如:MOVAL,[1064H]源操作數(shù)的物理地址(DS)904).寄存器間接尋址方式
操作數(shù)存放在存儲單元中,該單元的有效地址存放在指令中的寄存器(BX;BP或SI;DI)里.用BP間址隱含段寄存器是SS.
例如:MOVCH,[SI]MOVAX,[BX]5).寄存器相對尋址操作數(shù)存放在存儲單元中,該單元的在效地址等于指令中給出的基址或變址寄存器的內(nèi)容和一個帶符號的8位或16位的位移量之和.用BP間址隱含段寄存器是SS.
例如:MOVAX,[BX+1234H]MOVAL,[BP-10H]4).寄存器間接尋址方式操作數(shù)存放在存儲單元中,該單元916).基址加變址尋址方式
操作數(shù)存放在存儲單元中,該單元的有效地址等于基址寄存器的內(nèi)容加變址寄存器的內(nèi)容.BP間址隱含段寄存器是SS.EA=(BX)/(BP)+(SI)/(DI)
例如:MOVAX,[BX+SI]MOVAX,[BP+SI]MOVES:[BX+DI],AX6).基址加變址尋址方式操作數(shù)存放在存儲單元中,該單927).相對的基址和變址尋址方式操作數(shù)存放在存儲單元中,該單元的有效地址等于基址寄存器的內(nèi)容加變址寄存器的內(nèi)容再加上指令中給出的8位或16位位移量.BP間址隱含段寄存器是SS.EA=(BX)/(BP)+(SI)/(DI)+disp8/disp16
例如:ANDDL,[BX+SI+20H]MOVSS:[BX+SI+100H],BX7).相對的基址和變址尋址方式93若I/O端口不是與內(nèi)存統(tǒng)一編址,I/O端口有兩種尋址方式1).直接端口尋址方式指令中直接給出由8位地址碼表示的端口地址號.
例如:INAL,21H2).間接端口尋址方式端口地址用16位表示,并固定存儲在DX寄存器中.
例如:OUTDX,AL若I/O端口不是與內(nèi)存統(tǒng)一編址,I/O端口有兩種尋址方式1)942.程序轉(zhuǎn)移地址的尋址方式1).段內(nèi)直接(相對)尋址方式轉(zhuǎn)移的地址是當前的IP內(nèi)容和指令規(guī)定的8位或16位位移量之和.8位是短程轉(zhuǎn)移;16位是近程轉(zhuǎn)移.2).段內(nèi)間接尋址方式轉(zhuǎn)移的地址存放在寄存器或存儲單元中.
用它來更新IP的內(nèi)容.2.程序轉(zhuǎn)移地址的尋址方式1).段內(nèi)直接(相對)尋址方式953).段間直接尋址方式
指令中直接給出16位的段地址和16位偏移量地址,用來更新CS和IP的內(nèi)容.4).段間間接尋址方式根據(jù)指令中給出的尋址方式,找到內(nèi)存相應(yīng)的單元連續(xù)兩個字,低位字地址單元替換IP的內(nèi)容.高位字地址單元替換CS的內(nèi)容.作業(yè):P11813).段間直接尋址方式指令中直接給出16位的段地963.48086/8088指令系統(tǒng)學(xué)習(xí)指令的注意事項指令的功能——該指令能夠?qū)崿F(xiàn)何種操作。通常指令助記符就是指令功能的英文單詞或其縮寫形式指令支持的尋址方式——該指令中的操作數(shù)可以采用何種尋址方式指令對標志的影響——該指令執(zhí)行后是否對各個標志位有影響,以及如何影響其他方面——該指令其他需要特別注意的地方,如指令執(zhí)行時的約定設(shè)置、必須預(yù)置的參數(shù)、隱含使用的寄存器等3.48086/8088指令系統(tǒng)學(xué)習(xí)指令的注意事項973.4.1數(shù)據(jù)傳送類指令數(shù)據(jù)傳送是計算機中最基本、最重要的一種操作傳送指令也是最常使用的一類指令傳送指令把數(shù)據(jù)從一個位置傳送到另一個位置除標志寄存器傳送指令外,均不影響標志位重點掌握MOVXCHGXLATPUSHPOPLEA3.4.1數(shù)據(jù)傳送類指令數(shù)據(jù)傳送是計算機中最基本、最重要的981.通用數(shù)據(jù)傳送指令
1).基本傳送指令MOV格式:MOVDEST,SRC功能:DEST(SRC)
即將源地址的內(nèi)容(源操作數(shù))傳送到目的地址中.傳送指令執(zhí)行完后源操作數(shù)保持不變.
說明:1)標志寄存器內(nèi)容不變.2)兩操作數(shù)位數(shù)應(yīng)相同.(字節(jié)或字)3)其它規(guī)則見下圖.
1.通用數(shù)據(jù)傳送指令1).基本傳送指令MOV99MOV指令的傳送規(guī)定段寄存器DSESSSCS立即數(shù)通用寄存器存儲器MOV指令的傳送規(guī)定段寄存器CS立即數(shù)通用存儲器100非法傳送種種兩個操作數(shù)的類型不一致例如源操作數(shù)是字節(jié),而目的操作數(shù)是字;或相反兩個操作數(shù)不能都是存儲器傳送指令很靈活,但主存之間的直接傳送卻不允許段寄存器的操作有一些限制段寄存器屬專用寄存器,對他們的操作能力有限非法傳送種種兩個操作數(shù)的類型不一致1012).堆棧操作指令壓棧:用壓棧指令PUSH可以將通用寄存器、段寄存器或字存儲單元內(nèi)容壓入堆棧。例如:PUSHAX;將AX內(nèi)容送入棧頂字單元中壓棧指令執(zhí)行分兩步進行:①.(SP)-2SP;②.操作數(shù)[SP];①后SP②AHALXXXXSP內(nèi)存SS增地址方向2).堆棧操作指令壓棧:用壓棧指令PUSH可以將通用寄存器、102出棧:用彈出指令POP可以將當前棧頂字單元內(nèi)容取出送到通用寄存器、段寄存器或字存儲單元中。例如:POPAX;將棧頂字單元內(nèi)容送到AX中出棧指令分兩步進行:①.((SP))寄存器/字單元.②.(SP)+2SP內(nèi)存SSSP②后SP增地址方向XXXXAHALXXXX出棧:用彈出指令POP可以將當前棧頂字單元內(nèi)容取出送到通用寄1033).交換指令指令格式:XCHGDEST,SRC功能:(DEST)(SEC),即將源地址的內(nèi)容(源操作數(shù))與目的地址的內(nèi)容(目的操作數(shù))相互交換.
說明:1).標志寄存器內(nèi)容不變.2).所交換的數(shù)據(jù)可以是字節(jié)或字.3).數(shù)據(jù)交換只能在通用寄存器之間或通用寄存器存儲單元之間進行.AXBXCXDXSIDIBPSP
存儲器3).交換指令指令格式:XCHGDEST,SRCAXB1042.累加器專用傳送指令1)輸入指令直接尋址:0?255個端口地址號.
格式:INAX,portINAL,port
功能:將來自端口地址號是port的數(shù)據(jù)送到累加器中.間接尋址:可尋64K個端口地址號.
格式:INAX,DXINAL,DX
功能:將來自DX內(nèi)的端口地址號的數(shù)據(jù)送到累加器中.2.累加器專用傳送指令1)輸入指令1052)輸出指令直接尋址:0?255個端口地址號.
格式:OUTport,AXOUTport,AL
功能:將累加器的內(nèi)容送到port端口地址.間接尋址:可以64K個端口地址號.
格式:OUTDX,AXOUTDX,AL
功能:將累加器的內(nèi)容送到DX所指的端口地址.說明:輸入輸出指令都不改變標志寄存器.2)輸出指令106換碼指令執(zhí)行前:在主存建立一個字節(jié)量表格,內(nèi)含要轉(zhuǎn)換成的目的代碼表格首地址存放于BX,AL存放相對表格首地址的位移量換碼指令執(zhí)行后:將AL寄存器的內(nèi)容轉(zhuǎn)換為目標代碼3).換碼指令XLAT將BX指定的緩沖區(qū)中、AL指定的位移處的一個字節(jié)數(shù)據(jù)取出賦給ALXLAT ;al←ds:[bx+al]換碼指令執(zhí)行前:3).換碼指令XLAT將BX指定的緩沖區(qū)中107例代碼轉(zhuǎn)換movbx,100hmoval,03hxlat
換碼指令沒有顯式的操作數(shù),但使用了BX和AL;因為換碼指令使用了隱含尋址方式——采用默認操作數(shù)例代碼轉(zhuǎn)換movbx,100h換碼指令沒有顯式的操1083.地址傳送指令1).取有效地址指令
格式:LEAREG,MEM
功能:取源操作數(shù)(變量、標號、地址表達式)地址的EA送目的操作數(shù)地址(通用寄存器).
說明:該指令不改變標志寄存器.
例如:LEAAX,[DI+10]
設(shè)(DI)=0500H該指令執(zhí)行后
(AX)=050AH3.地址傳送指令1).取有效地址指令1092).地址指針裝入DS指令
格式:LDSREG,MEM
功能:將源操作數(shù)有效地址所對應(yīng)的雙字長的內(nèi)存單元中的高字內(nèi)容送入DS,低字內(nèi)容送入指令中指定的寄存器.3).地址指針裝入ES指令
格式:LESREG,MEM
功能:將源操作數(shù)有效地址所對應(yīng)的雙字長的內(nèi)存單元中的高字內(nèi)容送入ES,低字內(nèi)容送入指令中指定的寄存器.以上兩條指令均不影響標志寄存器.2).地址指針裝入DS指令1104.標志傳送指令1).標志裝入AH指令
格式:LAHF
功能:將標志寄存器中的低8位傳送到AH中.
說明:該指令不影響標志位.2)設(shè)置標志指令
格式:SAHF
功能:將AH的內(nèi)容傳送至標志寄存器的低8
位.
說明:該指令改變標志寄存器的低8位.即以下標志位:CFPFAFZFSF4.標志傳送指令1).標志裝入AH指令1113).標志壓入堆棧指令
格式:PUSHF
功能:將標志寄存器的內(nèi)容壓入堆棧.
說明:該指令不影響標志寄存器.4).標志彈出堆棧指令
格式:POPF
功能:從堆棧中彈出一個字送標志寄存器.
說明:該指令影響標志寄存器的所有標志位.3).標志壓入堆棧指令格式:PUSHF1123.4.2算術(shù)運算指令四則運算是計算機經(jīng)常進行的一種操作。算術(shù)運算指令實現(xiàn)二進制(和十進制)數(shù)據(jù)的四則運算請注意算術(shù)運算類指令對標志的影響掌握:ADD/ADC/INC、SUB/SBB/DEC/NEG/CMP熟悉:MUL/IMUL、DIV/IDIV理解:CBW/CWD、DAA/DAS、AAA/AAS/AAM/AAD3.4.2算術(shù)運算指令四則運算是計算機經(jīng)常進行的一種操作。1131.加法指令1).加法指令
格式:ADDDEST,SRC
功能:DEST(SRC)+(DEST),并根據(jù)結(jié)果設(shè)置標志寄存器的OFSFZFAFPFCF.
說明:兩操作數(shù)均可以存放在通用寄存器或存儲單元中.源操作數(shù)還可以是立即數(shù).但不能同時為存儲器操作數(shù).1.加法指令1).加法指令114例3.4設(shè)(AL)=3AH,則執(zhí)行ADDAL,7CH后,(AL)=?.各標志位如何?
解:
+0111110010110110B6HALCF=0PF=0AF=1ZF=0SF=1OF=1
例3.4設(shè)(AL)=3AH,則執(zhí)行ADDAL,7CH后,1152).帶進位加指令
格式:ADCDEST,SRC
功能:DEST(SRC)+(DEST)+CF
并根據(jù)結(jié)果設(shè)置標志位CFPFAFZFSFOF.
說明:該指令常用于多字節(jié)運算.3).加1指令
格式:INCDEST
功能:DEST(DEST)+1
并根據(jù)結(jié)果設(shè)置標志位PFAFZFSFOF 但不影響CF.2).帶進位加指令格式:ADCDEST,SRC1162.減法指令1).不帶借位的減法指令
格式:SUBDEST,SRC
功能:DEST(DEST)-(SRC)
并根據(jù)結(jié)果設(shè)置標志位CFPFAFZFSFOF.
說明:兩操作數(shù)的要求與ADD指令一樣.例3.5S
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年高中語文第四單元創(chuàng)造形象詩文有別第16課過小孤山大孤山課后課時作業(yè)含解析新人教版選修中國古代詩歌散文欣賞
- 2024-2025學(xué)年高中地理第二章環(huán)境污染與防治第一節(jié)水污染及其成因教案含解析新人教版選修6
- 2024-2025學(xué)年新教材高中地理課時素養(yǎng)評價十一探秘瀾滄江-湄公河流域的河流地貌魯教版必修1
- 士官黨員轉(zhuǎn)正申請書
- 競選班長申請書大一
- 入職申請書個人申請
- 2025年度醫(yī)療信息化系統(tǒng)集成及維護服務(wù)合同
- 2025年度主題酒店品牌授權(quán)及合作推廣合同
- 2025年度私立學(xué)校新生試讀協(xié)議書范本(含校車服務(wù)及校園交通安全)
- 2025年度專業(yè)健身機構(gòu)年度私教培訓(xùn)合同
- 康復(fù)科院感年度工作計劃
- T-BJCC 1003-2024 首店、首發(fā)活動、首發(fā)中心界定標準
- 《海洋自然保護區(qū)》課件
- 2024年云南機場集團飛機維修服務(wù)分公司招聘筆試參考題庫含答案解析
- 外科手術(shù)及護理常規(guī)
- 北師大版五年級數(shù)學(xué)下冊教材分析解讀課件完整版
- 蘇少版小學(xué)一年級下冊綜合實踐活動單元備課
- 學(xué)校開學(xué)教師安全培訓(xùn)
- 出口潛力分析報告
- 晉升的述職報告
- 微信視頻號運營技巧攻略詳解全套
評論
0/150
提交評論