![第三章微處理器及其系統(tǒng)_第1頁](http://file4.renrendoc.com/view/e5d35f07029d54320be1c86144e906b8/e5d35f07029d54320be1c86144e906b81.gif)
![第三章微處理器及其系統(tǒng)_第2頁](http://file4.renrendoc.com/view/e5d35f07029d54320be1c86144e906b8/e5d35f07029d54320be1c86144e906b82.gif)
![第三章微處理器及其系統(tǒng)_第3頁](http://file4.renrendoc.com/view/e5d35f07029d54320be1c86144e906b8/e5d35f07029d54320be1c86144e906b83.gif)
![第三章微處理器及其系統(tǒng)_第4頁](http://file4.renrendoc.com/view/e5d35f07029d54320be1c86144e906b8/e5d35f07029d54320be1c86144e906b84.gif)
![第三章微處理器及其系統(tǒng)_第5頁](http://file4.renrendoc.com/view/e5d35f07029d54320be1c86144e906b8/e5d35f07029d54320be1c86144e906b85.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
微型計(jì)算機(jī)原理及應(yīng)用鄭猛北京理工大學(xué)光電學(xué)院
2023/2/112023/2/12
以Intel8086/8088、Z8000和MC68000為代表的16位微處理器是第3代產(chǎn)品,以它們?yōu)楹诵牟考M成的微機(jī)系統(tǒng),其性能已達(dá)到中、高檔小型計(jì)算機(jī)的水平。20多年來,Intel系列CPU一直占著主導(dǎo)地位。盡管8086/8088后續(xù)的80286、80386、80486以及Pentium系列CPU結(jié)構(gòu)與功能已經(jīng)發(fā)生很大變化,但從基本概念與結(jié)構(gòu)以及指令格式上來講,它們?nèi)匀皇墙?jīng)典的8086/8088CPU的延續(xù)與提升。并且,其他系列流行的CPU(如AMD公司的6X86MX/MⅡ等)也與80x86CPU兼容。內(nèi)容提要8086/8088微處理器8086/8088系統(tǒng)的最小/最大工作方式8086/8088的存儲(chǔ)器8086/8088指令系統(tǒng)第三章8086/8088微處理器及其系統(tǒng)2023/2/13透徹理解與熟練掌握8086/8088內(nèi)部組成結(jié)構(gòu)、寄存器結(jié)構(gòu)與總線周期等內(nèi)容;深入理解存儲(chǔ)器的分段設(shè)計(jì);正確理解與熟練掌握物理地址和邏輯地址關(guān)系;理解堆棧及其操作;理解“段加偏移”尋址機(jī)制;掌握尋址方式;掌握六大類指令系統(tǒng)的基本用法。2023/2/143.18086/8088微處理器2023/2/15
8086是Intel系列的16位微處理器,是iAPX86/88系列微機(jī)的基礎(chǔ)。它采用高速運(yùn)算性能的HMOS工藝制造,芯片上集成有2.9萬個(gè)晶體管,用單一的+5伏電源和40條引腳的雙列直插式封裝;時(shí)鐘頻率為5MHz~10MHz,最快的指令執(zhí)行時(shí)間為0.4μs。
8086有16根數(shù)據(jù)線和20根地址線,可以處理8位或16位數(shù)據(jù),尋址1MB的存儲(chǔ)單元和64KB的I/O端口(實(shí)際只使用1KBI/O端口)。 在推出8086之后不久,Intel公司還推出了準(zhǔn)16位微處理器8088。8088的內(nèi)部寄存器、運(yùn)算器以及內(nèi)部數(shù)據(jù)總線都是按16位設(shè)計(jì)的,但外部數(shù)據(jù)總線只有8條。這樣設(shè)計(jì)的目的主要是為了與Intel原有的8位外圍接口芯片直接兼容。在本節(jié)中,我們對(duì)8088也將加以說明。3.18086/8088微處理器
3.1.1.
8086/8088CPU的內(nèi)部結(jié)構(gòu)2023/2/16從功能上講,8086/8088可分為兩個(gè)部分,即總線接口單元BIU(BusInterfaceUnit)和執(zhí)行單元EU(ExecutionUnit)。3.18086/8088微處理器
3.1.1.
8086/8088CPU的內(nèi)部結(jié)構(gòu)2023/2/17總線接口部件BIU(BusInterfaceUnit)⑴功能:物理地址形成、取指令、指令排隊(duì)、讀/寫操作數(shù)、總線控制。
⑵組成指令隊(duì)列緩沖器16位段寄存器16位指令指針寄存器20位物理地址加法器總線控制電路⑶工作過程形成物理地址,發(fā)讀信號(hào)(/RD),取指令送入指令隊(duì)列。3.18086/8088微處理器
3.1.1.
8086/8088CPU的內(nèi)部結(jié)構(gòu)2023/2/18總線接口部件BIU(BusInterfaceUnit)
8086的指令隊(duì)列為6個(gè)字節(jié),而8088的指令隊(duì)列為4個(gè)字節(jié)。在執(zhí)行指令的同時(shí),存滿一條指令就開始執(zhí)行,指令隊(duì)列空出兩個(gè)指令字節(jié)時(shí),BIU自動(dòng)取指,填滿為止。
并行流水線方式:某一時(shí)刻同時(shí)完成上述3項(xiàng)工作如:T1時(shí)刻,執(zhí)行指令1、譯碼指令2、取指令3;
T2時(shí)刻,執(zhí)行指令2、譯碼指令3、取指令4;微機(jī)執(zhí)行指令所需基本工作:①取指令(從內(nèi)存中取出指令→指令隊(duì)列寄存器)。②譯碼(確定該指令為何種操作)。③時(shí)序控制(控制完成操作,如計(jì)算、數(shù)據(jù)傳送等)。(1)指令隊(duì)列緩沖器:3.18086/8088微處理器
3.1.1.
8086/8088CPU的內(nèi)部結(jié)構(gòu)2023/2/19指令執(zhí)行部件EU(ExecutionUnit)⑴功能指令譯碼、執(zhí)行指令。
⑵組成16位算術(shù)邏輯單元ALU16位標(biāo)志寄存器F數(shù)據(jù)暫存寄存器通用寄存器組EU控電路⑶工作過程從BIU的指令隊(duì)列取得指令、進(jìn)行譯碼、執(zhí)行指令。3.18086/8088微處理器
3.1.1.
8086/8088CPU的內(nèi)部結(jié)構(gòu)2023/2/1103.CPU的工作過程(1)先執(zhí)行讀操作,根據(jù)CS:IP在地址加法器,形成20位物理地址:CS×16+IP,從該地址取出指令,送入指令隊(duì)列,等待執(zhí)行。1234563.18086/8088微處理器
3.1.1.
8086/8088CPU的內(nèi)部結(jié)構(gòu)2023/2/1113.CPU的工作過程(2)EU從隊(duì)列中取出指令,并分析譯碼,向各部件發(fā)出控制命令,以完成執(zhí)行指令的功能。EU對(duì)指令進(jìn)行譯碼、分析和執(zhí)行時(shí),此時(shí)EU不需要用總線,BIU乘機(jī)可將后續(xù)指令讀入指令對(duì)列,將隊(duì)列填滿。3456123.18086/8088微處理器
3.1.1.
8086/8088CPU的內(nèi)部結(jié)構(gòu)2023/2/1123.CPU的工作過程(3)
當(dāng)指令隊(duì)列已滿,EU未向BIU申請(qǐng)讀/寫存儲(chǔ)器或I/O操作時(shí),BIU處于空閑周期。
如EU執(zhí)行8位數(shù)乘法指令MUL時(shí),需70-77個(gè)時(shí)鐘周期,取指令占兩個(gè)總線周期(8個(gè)時(shí)鐘周期),這段時(shí)間BIU就可以取指令填滿隊(duì)列,后續(xù)剩余時(shí)間BIU就處于空閑狀態(tài)。123456ALU3.18086/8088微處理器
3.1.1.
8086/8088CPU的內(nèi)部結(jié)構(gòu)2023/2/1133.CPU的工作過程(4)
在指令的執(zhí)行過程中,若需要對(duì)存儲(chǔ)單元或I/O端口存取數(shù)據(jù),EU就要求BIU去完成相應(yīng)的總線周期。123456總線控制電路3.18086/8088微處理器
3.1.1.
8086/8088CPU的內(nèi)部結(jié)構(gòu)2023/2/1143.CPU的工作過程(5)
若在指令執(zhí)行過程中遇到JMP和CALL指令,將隊(duì)列中內(nèi)容作廢,按新的轉(zhuǎn)移地址中取指令碼。
除這種情況外,取指令和執(zhí)行指令都能同時(shí)進(jìn)行。123456JMPCALL3.18086/8088微處理器
3.1.28086/8088的寄存器結(jié)構(gòu)2023/2/115圖3.38086/8088的編程結(jié)構(gòu)CS:CodeSegmentDS:DataSegmentSS:StackSegmentES:ExtraSegment3.18086/8088微處理器
3.1.28086/8088的寄存器結(jié)構(gòu)2023/2/1161、通用寄存器
AX、BX、CX和DX—16位寄存器(可做16位、也可做2個(gè)8位用)。作用:①、通用用途:存放數(shù)據(jù)。②、專用用途:AX
:累加器(存運(yùn)算結(jié)果)。
BX
:基址寄存器。
CX:在循環(huán)和串操作時(shí)做計(jì)數(shù)器。
DX:16位乘、除運(yùn)算時(shí),DX與AX組成32位字長(雙字),存結(jié)果。在I/O(輸入/輸出)指令中,DX存放I/O口地址。
(1)數(shù)據(jù)寄存器:3.18086/8088微處理器
3.1.28086/8088的寄存器結(jié)構(gòu)2023/2/1171、通用寄存器
作用:存放下一次要取出執(zhí)行的指令的偏移地址與CS結(jié)合使用構(gòu)成真正的指令物理地址用戶不能直接更新使用,只能由系統(tǒng)自動(dòng)更新
SP、BP、SI、DI—16位寄存器。作用:①、通用用途:存放數(shù)據(jù)。②、專用用途:與地址和堆棧操作有關(guān)。(3)指令指針寄存器:(2)指針寄存器和變址寄存器:
3.18086/8088微處理器
3.1.28086/8088的寄存器結(jié)構(gòu)2023/2/1182、段寄存器
CS(程序)、DS(數(shù)據(jù))、SS(堆棧)、ES(附加)—16位寄存器。作用:①、通用用途:存放數(shù)據(jù)。②、專用用途:與地址和堆棧操作有關(guān)。3、標(biāo)志寄存器
1511109876543210OFDFIFTFSFZFAFPFCF狀態(tài)標(biāo)志(6個(gè)):CF、PF、AF、ZF、SF和OF控制標(biāo)志(3個(gè)):TF、IF、DF3.18086/8088微處理器
3.1.28086/8088的寄存器結(jié)構(gòu)2023/2/1193、標(biāo)志寄存器
1511109876543210OFDFIFTFSFZFAFPFCF☆狀態(tài)位:表示某條指令執(zhí)行后,產(chǎn)生的狀態(tài)信息(如有否進(jìn)位、結(jié)果是正還是負(fù)等),一般用于條件轉(zhuǎn)移等的判斷依據(jù)。
(1)CF(carryflag)進(jìn)位標(biāo)志
當(dāng)加法(或減法)使最高位(D7
或D15)產(chǎn)生進(jìn)(借)位時(shí),CF=1,否則,CF=0;循環(huán)或移位指令也會(huì)使CF改變。
(2)PF(parityflag)奇偶標(biāo)志
操作結(jié)果低8位中“1”的個(gè)數(shù)為偶數(shù),PF=1,否則,PF=0。用于奇偶校驗(yàn)。3.18086/8088微處理器
3.1.28086/8088的寄存器結(jié)構(gòu)2023/2/1203、標(biāo)志寄存器
1511109876543210OFDFIFTFSFZFAFPFCF☆狀態(tài)位:
(3)AF(AuxiliaryCarryFlag)輔助進(jìn)位標(biāo)志:加(減)運(yùn)算時(shí),D3向D4進(jìn)(借)位,AF=1,否則,AF=0。用于BCD碼運(yùn)算的十進(jìn)制調(diào)整。
(4)ZF(ZeroFlag)零標(biāo)志
運(yùn)算結(jié)果為零,ZF為1,否則,ZF=0。(5)SF(SignFlag)符號(hào)標(biāo)志
若運(yùn)算結(jié)果最高位為1(即為負(fù)),SF=1,否則,SF=0。指示結(jié)果的正負(fù)。3.18086/8088微處理器
3.1.28086/8088的寄存器結(jié)構(gòu)2023/2/1213、標(biāo)志寄存器
1511109876543210OFDFIFTFSFZFAFPFCF☆狀態(tài)位:(6)OF(OverflowFlag)溢出標(biāo)志
溢出標(biāo)志用于判斷在有符號(hào)數(shù)進(jìn)行加法或減法時(shí)是否可能出現(xiàn)溢出。溢出將指示運(yùn)算結(jié)果已超出機(jī)器能夠表示的數(shù)值范圍。注意:溢出是按補(bǔ)碼情況規(guī)定的。即:8位時(shí),超出-128~+127;16位時(shí),超出-32768~+32767;溢出→OF=13.18086/8088微處理器
3.1.28086/8088的寄存器結(jié)構(gòu)2023/2/1223、標(biāo)志寄存器
例:
CF(CarryFlag)進(jìn)位標(biāo)志PF(ParityFlag)奇偶校驗(yàn)位10001000
+11001001010100011CF110001000
+0100100111010001PF13.18086/8088微處理器
3.1.28086/8088的寄存器結(jié)構(gòu)2023/2/1233、標(biāo)志寄存器
例:
ZF(ZeroFlag)零標(biāo)志SF(SignFlag)符號(hào)標(biāo)志
00000001
+11111111000000001ZF110001000
+0100100111010001SF13.18086/8088微處理器
3.1.28086/8088的寄存器結(jié)構(gòu)2023/2/1243、標(biāo)志寄存器
例:
AF(AuxiliaryCarryFlag)輔助進(jìn)位標(biāo)志OF(OverflowFlag)溢出標(biāo)志
10001000
+11001001010100011AU1
01000000
+01000000100000000OF13.18086/8088微處理器
3.1.28086/8088的寄存器結(jié)構(gòu)2023/2/1253、標(biāo)志寄存器
01111110例:運(yùn)算對(duì)標(biāo)志位的影響的例01011011+11011001SF=1(結(jié)果最高位為1)ZF=0(結(jié)果不等于0)AF=1(D3向D4有進(jìn)位)PF=0(1的個(gè)數(shù)為奇數(shù))CF=0(無進(jìn)位)OF=1(和超過127)
兩個(gè)整數(shù)相加結(jié)果為負(fù),反之亦然3.18086/8088微處理器
3.1.28086/8088的寄存器結(jié)構(gòu)2023/2/1263、標(biāo)志寄存器
1511109876543210OFDFIFTFSFZFAFPFCF☆控制位:用來控制CPU的操作,由程序設(shè)置或清除。
(1)DF(DirectionFlag)方向標(biāo)志
它用來控制數(shù)據(jù)串操作指令的步進(jìn)方向。若用STD指令將DF置1,則數(shù)據(jù)串操作過程中地址會(huì)自動(dòng)遞減;若用CLD指令將DF清0,則數(shù)據(jù)串操作過程中地址會(huì)自動(dòng)遞增。3.18086/8088微處理器
3.1.28086/8088的寄存器結(jié)構(gòu)2023/2/1273、標(biāo)志寄存器
1511109876543210OFDFIFTFSFZFAFPFCF☆控制位:用來控制CPU的操作,由程序設(shè)置或清除。
(2)IF(InterruptEnableFlag)中斷允許標(biāo)志
控制可屏蔽中斷的標(biāo)志。若用STI指令將IF置1,則表示允許8086/8088CPU接受外部從其INTR引腳上發(fā)來的可屏蔽中斷請(qǐng)求信號(hào);若用CLI指令將IF清0,則禁止CPU接受外來的可屏蔽中斷請(qǐng)求信號(hào)。IF的狀態(tài)不影響非屏蔽中斷(NMI)請(qǐng)求,也不影響CPU響應(yīng)內(nèi)部的中斷請(qǐng)求。3.18086/8088微處理器
3.1.28086/8088的寄存器結(jié)構(gòu)2023/2/1283、標(biāo)志寄存器
1511109876543210OFDFIFTFSFZFAFPFCF☆控制位:用來控制CPU的操作,由程序設(shè)置或清除。
(3)TF(TrapFlag)跟蹤(陷阱)標(biāo)志:
若將TF標(biāo)志置為1,則8086/8088CPU處于單步工作方式;否則,將正常執(zhí)行程序。在高型號(hào)微處理器中,跟蹤(陷阱)標(biāo)志能夠激活芯片上的調(diào)試特性(調(diào)試程序,以便找到錯(cuò)誤或故障),當(dāng)TF標(biāo)志為1時(shí),則微處理器將根據(jù)調(diào)試寄存器和控制寄存器的指示中斷程序流。3.18086/8088微處理器
3.1.3總線周期2023/2/129
總線周期是微處理器操作時(shí)所依據(jù)的一個(gè)基準(zhǔn)時(shí)間段,通常,它是指微處理器完成一次訪問存儲(chǔ)器或I/O端口操作所需的時(shí)間。指令周期執(zhí)行一條指令所需的時(shí)間稱為指令周期。不同指令的指令周期的長短是不同的。一個(gè)指令周期由幾個(gè)總線周期組成。注意:在8086/8088CPU中,每個(gè)總線周期至少包含4個(gè)時(shí)鐘周期(T1~T4),一般情況下,在總線周期的T1狀態(tài)傳送地址,T2~T4狀態(tài)傳送數(shù)據(jù)。時(shí)鐘周期CPU的時(shí)鐘頻率的倒數(shù),也稱T狀態(tài)。3.18086/8088微處理器
3.1.3總線周期2023/2/130時(shí)鐘周期由計(jì)算機(jī)的主頻決定,是CPU的定時(shí)基準(zhǔn)例如:8086的主頻f為5MHz,則1個(gè)時(shí)鐘周期T為1/f=1/(5*106
)=200ns空閑時(shí)鐘周期Ti,在兩個(gè)總線周期之間插入等待時(shí)鐘周期Tw,在總線周期的T3和T4之間插入
T1T2T3T4TiTi
T1T2T3TwTwTwT4TiTi
總線周期總線周期若干個(gè)1~2個(gè)GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15AD16/S3AD17/S4AD18/S5AD19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8086CPU403938373635343332313029282726252423222112345678910111213141516171819203.18086/8088微處理器
3.1.48086/8088的引腳信號(hào)和功能2023/2/131地址/數(shù)據(jù)總線AD15~AD016條地址/數(shù)據(jù)總線分時(shí)復(fù)用;三態(tài);雙向分時(shí)復(fù)用:在總線周期T1狀態(tài),A15~A0;在總線周期T2~T4狀態(tài),D15~D0;三態(tài)雙向:傳送地址時(shí)三態(tài)輸出,傳送數(shù)據(jù)時(shí)三態(tài)雙向輸入/輸出,在中斷響應(yīng)及系統(tǒng)總線‘保持響應(yīng)’周期,高阻。T1狀態(tài):輸出要尋址的存儲(chǔ)器或I/O端口地址T2狀態(tài);浮置成高阻狀態(tài),為傳輸數(shù)據(jù)做準(zhǔn)備。T3狀態(tài);用于傳輸數(shù)據(jù)。T4狀態(tài);結(jié)束總線周期。3.18086/8088微處理器
3.1.48086/8088的引腳信號(hào)和功能2023/2/132三態(tài)輸入/輸出
三態(tài)指的是高電平(1)、低電平(0)、高阻態(tài)(Z)三種狀態(tài),通常由三態(tài)門來實(shí)現(xiàn)。
采用原因:
1、大多數(shù)計(jì)算機(jī)中的信息傳輸線均采用總線形式,且信息是分時(shí)傳送的。2、為防止信息相互干擾,要求凡掛在總線上的寄存器或存儲(chǔ)器等,它的傳輸端不僅能呈現(xiàn)0、1兩個(gè)信息狀態(tài),而且還應(yīng)能呈現(xiàn)第三種狀態(tài)——高阻抗?fàn)顟B(tài)(又稱高阻狀態(tài))。
3、在高阻態(tài)好像它們的輸出被斷開,對(duì)總線狀態(tài)不起作用,此時(shí)總線可由其它器件占用。3.18086/8088微處理器
3.1.48086/8088的引腳信號(hào)和功能2023/2/133三態(tài)輸入/輸出
三態(tài)門即可實(shí)現(xiàn)上述的功能當(dāng)控制端E=1時(shí),輸出=輸入,此時(shí)總線由該器件驅(qū)動(dòng),總線上的數(shù)據(jù)由輸入數(shù)據(jù)決定;當(dāng)控制端E=0時(shí),輸出端呈高阻抗?fàn)顟B(tài),該器件對(duì)總線不起作用。
當(dāng)寄存器輸出端接至三態(tài)門,再由三態(tài)門輸出端與總線連接起來,就構(gòu)成三態(tài)輸出的緩沖寄存器。如下圖所示就是一個(gè)4位的三態(tài)輸出緩沖寄存器。由于這里采用的是單向三態(tài)門,所以數(shù)據(jù)只能從寄存器輸出到數(shù)據(jù)總線。如果要實(shí)現(xiàn)雙向傳送,則要用雙向三態(tài)門。響應(yīng)中斷時(shí)設(shè)為高阻3.18086/8088微處理器
3.1.48086/8088的引腳信號(hào)和功能2023/2/1342.地址/狀態(tài)總線A19/S6~A16/S3在總線周期T1狀態(tài),輸出A19~A16。訪問存儲(chǔ)器時(shí),T1狀態(tài)時(shí)輸出的A19~A16送到鎖存器(8282)鎖存,與AD15~AD0組成20位的地址信號(hào);而訪問I/O端口時(shí),不使用這4條引線,A19~A16=0。在總線周期T2~T4狀態(tài),S6~S3輸出狀態(tài)信息。當(dāng)系統(tǒng)總線處于“保持響應(yīng)”狀態(tài),這些引腳被置成高阻狀態(tài)。分時(shí)復(fù)用;三態(tài);輸出3.18086/8088微處理器
3.1.48086/8088的引腳信號(hào)和功能2023/2/1352.地址/狀態(tài)總線A19/S6~A16/S3S4S3當(dāng)前正在使用的段寄存器00ES01SS10CS,或不需要使用段寄存器(I/O,INT)11DSS6=0,表明8086當(dāng)前連在總線上;S5=0,禁止一切可屏蔽中斷;S5=1,允許可屏蔽中斷;
S4S3:指示當(dāng)前正在使用哪一個(gè)段寄存器3.18086/8088微處理器
3.1.48086/8088的引腳信號(hào)和功能2023/2/1363.控制總線
高8位數(shù)據(jù)總線允許/狀態(tài)信號(hào)三態(tài)、輸出。BHE/S716位數(shù)據(jù)傳送時(shí),在T1狀態(tài),用BHE指出高8位數(shù)據(jù)總線上數(shù)據(jù)有效,用AD0地址線指出低8位數(shù)據(jù)線上數(shù)據(jù)有效。在T2~T4狀態(tài),S7輸出狀態(tài)信息(在8086芯片設(shè)計(jì)中,S7末賦于實(shí)際意義)。3.18086/8088微處理器
3.1.48086/8088的引腳信號(hào)和功能2023/2/1373.控制總線RD讀控制信號(hào)三態(tài)、輸出。當(dāng)RD為低電平時(shí),表示CPU將要執(zhí)行一個(gè)對(duì)存儲(chǔ)器或I/O端口的讀操作。對(duì)內(nèi)存單元還是對(duì)I/O端口讀取數(shù)據(jù),取決于IO/M信號(hào)。在一個(gè)讀操作的總線周期中,RD信號(hào)在T2、T3狀態(tài)均為低電平,以保證CPU讀有效。3.18086/8088微處理器
3.1.48086/8088的引腳信號(hào)和功能2023/2/1383.控制總線準(zhǔn)備好信號(hào)線,輸入。READY
當(dāng)READY=1時(shí),表示所尋址的內(nèi)存或I/O設(shè)備已準(zhǔn)備就緒,馬上就可進(jìn)行一次數(shù)據(jù)傳輸。CPU在每個(gè)總線周期的T3狀態(tài)開始對(duì)READY信號(hào)采樣。READY=0,表示存儲(chǔ)器或I/O設(shè)備尚未準(zhǔn)備就緒,則CPU在T3狀態(tài)之后自動(dòng)插入一個(gè)或幾個(gè)等待狀態(tài)Tw,直到READY變?yōu)楦唠娖?,才進(jìn)入T4狀態(tài),完成數(shù)據(jù)傳送過程,從而結(jié)束當(dāng)前總線周期。3.18086/8088微處理器
3.1.48086/8088的引腳信號(hào)和功能2023/2/1393.控制總線等待測試輸入信號(hào),低電平有效。TEST
在CPU執(zhí)行WAIT指令期間,每隔5個(gè)時(shí)鐘周期對(duì)TEST引腳進(jìn)行一次測試,若測試到TEST為高電平,CPU處于空轉(zhuǎn)等待狀態(tài);當(dāng)測試到TEST有效,空轉(zhuǎn)等待狀態(tài)結(jié)束,CPU繼續(xù)執(zhí)行被暫停的指令。
WAIT指令作用是用來使處理器與外部硬件同步。3.18086/8088微處理器
3.1.48086/8088的引腳信號(hào)和功能2023/2/1403.控制總線可屏蔽中斷請(qǐng)求信號(hào),高電平有效,輸入。INTR
當(dāng)INTR=1時(shí),表示外設(shè)提出了中斷請(qǐng)求,8086/8088在每個(gè)指令周期的最后一個(gè)T狀態(tài)去采樣此信號(hào)。若IF=1,則CPU響應(yīng)中斷,停止執(zhí)行當(dāng)前的指令序列,并轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。若IF=0,中斷請(qǐng)求被屏蔽。3.18086/8088微處理器
3.1.48086/8088的引腳信號(hào)和功能2023/2/1413.控制總線非屏蔽中斷請(qǐng)求輸入信號(hào),上升沿觸發(fā)。NMI
此請(qǐng)求不受IF狀態(tài)的影響,也不能用軟件屏蔽,只要此信號(hào)一出現(xiàn),CPU就會(huì)在現(xiàn)行指令結(jié)束后引起中斷。3.18086/8088微處理器
3.1.48086/8088的引腳信號(hào)和功能2023/2/1423.控制總線復(fù)位輸入信號(hào),高電平有效。RESET
CPU接收到復(fù)位信號(hào)后,停止現(xiàn)行操作,并出始化段寄存器CS、DS、SS、ES,標(biāo)志寄存器PSW,指令指針I(yè)P和指令隊(duì)列,CS=0FFFFH。RESET信號(hào)至少保持4個(gè)時(shí)鐘周期以上的高電平。復(fù)位過程:當(dāng)它變?yōu)楦唠娖綍r(shí),CPU執(zhí)行重啟動(dòng)過程,8086/8088將從地址FFFF0H開始執(zhí)行指令。通常在FFFF0H單元開始的幾個(gè)單元中存放一條無條件轉(zhuǎn)移指令,將入口轉(zhuǎn)到引導(dǎo)和裝配程序中,實(shí)現(xiàn)對(duì)系統(tǒng)的初始化,引導(dǎo)監(jiān)控程序或操作系統(tǒng)程序。3.18086/8088微處理器
3.1.48086/8088的引腳信號(hào)和功能2023/2/1433.控制總線系統(tǒng)時(shí)鐘,輸入。CLK
由8284A時(shí)鐘發(fā)生器產(chǎn)生(該時(shí)鐘信號(hào)的低/高之比常采用2∶1),8086CPU使用的時(shí)鐘頻率,因芯片型號(hào)不同,時(shí)鐘頻率不同,例8086為5MHz。3.18086/8088微處理器
3.1.48086/8088的引腳信號(hào)和功能2023/2/1443.控制總線最小/最大工作模式選擇信號(hào),輸入。MN/MX當(dāng)MN/MX接+5V時(shí):CPU工作在最小模式,單處理器系統(tǒng),CPU提供所有總線控制信號(hào);當(dāng)MN/MX接地時(shí):
CPU工作在最大模式,CPU的S2~S0提供給總線控制器8288,由8288產(chǎn)生總線控制信號(hào)。3.18086/8088微處理器2023/2/1458088和8086CPU的不同之處指令隊(duì)列:8088的指令隊(duì)列長度是4個(gè)字節(jié),指令隊(duì)列中只要出現(xiàn)一個(gè)空閑字節(jié)時(shí),CPU就會(huì)自動(dòng)訪問存儲(chǔ)器,取指令來補(bǔ)充指今隊(duì)列。讀寫周期:8088CPU中,BIU的總線控制電路與外部交換數(shù)據(jù)的總線寬度是8位,而EU的內(nèi)部總線是16位,這樣,對(duì)16位數(shù)的存儲(chǔ)器讀/寫操作要兩個(gè)讀/寫周期才可以完成。數(shù)據(jù)線:8088CPU外部數(shù)據(jù)總線只有8條,分時(shí)復(fù)用的地址/數(shù)據(jù)總線AD7~AD0;而AD15~AD8成為僅傳遞地址信息的A15~A8。存儲(chǔ)器/IO端口信號(hào):8088用M/IO信號(hào)代替M/IO信號(hào),M/IO低電平時(shí)選通存儲(chǔ)器,高電平時(shí)選通I/O接口。2023/2/1463.18086/8088微處理器時(shí)序:計(jì)算機(jī)操作運(yùn)行的時(shí)間順序。2023/2/1473.18086/8088微處理器學(xué)習(xí)引腳功能的應(yīng)用例子:已知并行通訊接口芯片8255A的接口電路如圖所示,端口地址分別為:90H、92H、94H和96H,請(qǐng)按要求完成下述功能:(1)利用74LS138譯碼器和邏輯門搭建地址譯碼電路,要求8255A各端口地址唯一。(2)畫出8255A與8086最小系統(tǒng)的硬件接口連接線。(3)編寫完整的匯編源程序,使開關(guān)K接到位置1時(shí),數(shù)碼管顯示相應(yīng)的數(shù)字13.28086/8088系統(tǒng)的最小/最大工作方式2023/2/148由8086/8088CPU構(gòu)成的微機(jī)系統(tǒng),有最小方式和最大方式兩種系統(tǒng)配置。系統(tǒng)配置方式:最小模式(CPU的引腳MN/MX端接高電平+5V)最大模式(CPU的引腳MN/MX端接低電平地)系統(tǒng)配置特點(diǎn):最小模式為單機(jī)系統(tǒng),控制信號(hào)由CPU提供;最大模式為多處理器/協(xié)處理器系統(tǒng),控制信號(hào)由總線控制器提供。CPU的24~31引腳意義不同3.28086/8088系統(tǒng)的最小/最大工作方式
3.2.1最小方式2023/2/149最小模式系統(tǒng)組成8086CPU存儲(chǔ)器I/O接口芯片1片8284A,作為時(shí)鐘發(fā)生器3片8282/8283或74LS373,作為地址鎖存器2片8286/8287或74LS245,作為雙向數(shù)據(jù)總線收發(fā)器(可不用)3.28086/8088系統(tǒng)的最小/最大工作方式
3.2.1最小方式2023/2/1508284A時(shí)鐘發(fā)生器RESVccCLKREADYRESETRDWRM/IOALE8086CPUA19~A16AD15~AD0DENDT/RMN/MXVccSTB8282/8283OE8286/8287T地址/數(shù)據(jù)地址存儲(chǔ)器(ROM、RAM)DATAI/O芯片(外部設(shè)備)DATABHEOEBHE20位16位地址總線數(shù)據(jù)總線地址鎖存器收發(fā)器可選等待狀態(tài)產(chǎn)生電路:向8284A的RDY端提供一個(gè)信號(hào),經(jīng)同步后,向CPU的READY線發(fā)“準(zhǔn)備就緒”信號(hào),通知CPU數(shù)據(jù)傳送已完成,可推出當(dāng)前總線周期RDY3.28086/8088系統(tǒng)的最小/最大工作方式
3.2.1最小方式2023/2/151
產(chǎn)生CLK信號(hào),該CLK信號(hào)是8086CPU的內(nèi)部和外部的時(shí)間基準(zhǔn)信號(hào),可由驅(qū)動(dòng)門電路進(jìn)行功率放大。時(shí)鐘發(fā)生器82843.28086/8088系統(tǒng)的最小/最大工作方式
3.2.1最小方式2023/2/152GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15AD16/S3AD17/S4AD18/S5AD19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8086CPU40393837363534333231302928272625242322211234567891011121314151617181920引腳定義中斷響應(yīng)信號(hào)(輸出,低電平有效)CPU對(duì)外部發(fā)來的中斷請(qǐng)求信號(hào)INTR的響應(yīng)信號(hào)。在相鄰的兩個(gè)總線周期中送出兩個(gè)負(fù)脈沖,第一個(gè)負(fù)脈沖通知外設(shè)接口已響應(yīng)它的中斷請(qǐng)求,外設(shè)接口收到第二個(gè)負(fù)脈沖信號(hào)后,向數(shù)據(jù)總線上放中斷類型號(hào)。INTA3.28086/8088系統(tǒng)的最小/最大工作方式
3.2.1最小方式2023/2/153GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15AD16/S3AD17/S4AD18/S5AD19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8086CPU40393837363534333231302928272625242322211234567891011121314151617181920引腳定義地址鎖存信號(hào)(輸出,高電平有效)CPU提供給地址鎖存器8282/8283的控制信號(hào)。ALE在T1狀態(tài)為高電平時(shí),表示在當(dāng)前地址/數(shù)據(jù)復(fù)用總線上輸出的是有效地址,由地址鎖存器把它作為鎖存信號(hào)將地址所存。ALE3.28086/8088系統(tǒng)的最小/最大工作方式
3.2.2最大方式2023/2/154CPU的引腳MN/MX接地。在最大模式系統(tǒng)中需要增加總線控制器8288(或總線裁決器8289),以完成8086CPU為中心的多處理器系統(tǒng)的協(xié)調(diào)工作。CPU輸出的狀態(tài)信號(hào)S2~S0同時(shí)送給8288,由8288輸出原CPU所有的控制信號(hào):存儲(chǔ)器讀/寫控制,I/O端口讀/寫控制,中斷響應(yīng)信號(hào)等。(可以增加總線裁決器8289來裁決總線使用權(quán)賦給哪個(gè)處理器,以實(shí)現(xiàn)多主控者對(duì)總線資源的共享)3.28086/8088系統(tǒng)的最小/最大工作方式
3.2.2最大方式2023/2/155地址鎖存器收發(fā)器8284A時(shí)鐘發(fā)生器OERESVccCLKREADYRESET8086CPUA19~A16AD15~AD0MN/MXSTB8282/8283OE8286/8287T地址/數(shù)據(jù)地址BHES0S1S2地址總線數(shù)據(jù)總線S1CLKS0S2DENDT/RALEIORCIOWCMWTCMRDCINTAAENCLKS2S1S0AEN82898288多主控者系統(tǒng)總線存儲(chǔ)器(ROM、RAM)DATAI/O芯片(外部設(shè)備)DATA地址鎖存器收發(fā)器GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15AD16/S3AD17/S4AD18/S5AD19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8086CPU403938373635343332313029282726252423222112345678910111213141516171819203.28086/8088系統(tǒng)的最小/最大工作方式
兩種模式下8086CPU的24~31引腳定義2023/2/1563.38086/8088的存儲(chǔ)器2023/2/157
3.3.1存儲(chǔ)器組織
存儲(chǔ)器中任何兩個(gè)相鄰的字節(jié)被定義為一個(gè)字,每個(gè)字節(jié)都有一個(gè)地址,并且這兩個(gè)地址中的較小的一個(gè)被用來作為該字的地址。內(nèi)存地址存儲(chǔ)器說明00000H07低字節(jié),字以偶地址開始00001H6B高字節(jié),表示的數(shù)為6B07H00002H00003H00004H00005H60低字節(jié),字以奇地址開始00006H3E高字節(jié),表示的數(shù)為3E60H00007H規(guī)則存放非規(guī)則存放字在存儲(chǔ)器中的存放3.38086/8088的存儲(chǔ)器2023/2/158
3.3.1存儲(chǔ)器組織
8086中,存儲(chǔ)器采用分體結(jié)構(gòu),即1MB的存儲(chǔ)空間分成兩個(gè)512KB的存儲(chǔ)體,一個(gè)存儲(chǔ)體含偶地址,一個(gè)奇地址。存儲(chǔ)器的組成奇數(shù)地址D15—D8D7—D0偶數(shù)地址00001H00002H00003H00004H00005H00006H...512K×8奇地址存儲(chǔ)體(BHE=0)512K×8偶地址存儲(chǔ)體(A0=0)...FFFFFHFFFFEH3.38086/8088的存儲(chǔ)器2023/2/159
3.3.1存儲(chǔ)器組織
8086中,存儲(chǔ)器采用分體結(jié)構(gòu),即1MB的存儲(chǔ)空間分成兩個(gè)512KB的存儲(chǔ)體,一個(gè)存儲(chǔ)體含偶地址,一個(gè)奇地址。存儲(chǔ)器的組成BHEA0讀寫的字節(jié)00同時(shí)讀/寫高低兩個(gè)字節(jié)01只讀/寫奇數(shù)地址的高位字節(jié)10只讀/寫偶數(shù)地址的低位字節(jié)11不傳送
8088中存儲(chǔ)器為單一的存儲(chǔ)體,即1MB×8位。3.38086/8088的存儲(chǔ)器2023/2/160
3.3.2存儲(chǔ)器的分段問題的提出——存儲(chǔ)器為什么要分段使用?8086/8088CPU的寄存器都是16位,故只能直接尋址216=
64KB的地址空間。但是8086/8088設(shè)計(jì)有20根地址線,尋址范圍:220=1MB。所以,8086/8088系統(tǒng)采用分段并附以地址偏移量的方法形成20位物理地址。被劃分的存儲(chǔ)器段稱為邏輯段。3.38086/8088的存儲(chǔ)器2023/2/161
3.3.2存儲(chǔ)器的分段特點(diǎn):1、可以任意劃分段,容量不大于64KB(不小于16B);2、段之間可以重疊。代碼段附加段堆棧段數(shù)據(jù)段≤64KB≤64KB≤64KB≤64KB10000H250A0H7FFA0H8CFA0H1000H7FFAH8CFAH250AHCSSSDSES例:代碼段(CS)、附加段(ES)、堆棧段(SS)、數(shù)據(jù)段(DS)的段地址分別為1000H、250AH、7FFAH和8CFAH,它們?cè)诖鎯?chǔ)器中的分布。3.38086/8088的存儲(chǔ)器2023/2/162
3.3.2存儲(chǔ)器的分段段基址:每個(gè)段的20位起始地址。段基址是一個(gè)能被16整除的數(shù)(即后4位為0)。段地址是20位段基址的高16位。要尋址20位地址,還需要段內(nèi)的相對(duì)地址(偏移地址),由段地址和偏移地址通過計(jì)算得出實(shí)際地址(物理地址)。3.38086/8088的存儲(chǔ)器2023/2/163
3.3.3實(shí)際地址和邏輯地址邏輯地址:指在程序和指令表示中的一種地址,包括段地址和偏移地址。實(shí)際地址:指CPU對(duì)存儲(chǔ)器進(jìn)行訪問時(shí)實(shí)際尋址所使用的地址,又稱為物理地址。段地址×16偏移地址物理地址+=3.38086/8088的存儲(chǔ)器2023/2/1
3.3.3實(shí)際地址和邏輯地址實(shí)際地址表示方法:
段基值:偏移量例如,3267H:00A0H邏輯地址 1460:100、1380:F00物理地址 14700H14700H3.38086/8088的存儲(chǔ)器2023/2/165
3.3.3實(shí)際地址和邏輯地址20002000000002000H:0000H2000H:0001H2000H:0002H2000H:0003H2000H:FFFFH1FF0H0100H1FF0200000100
物理地址是唯一的,邏輯地址不是唯一的3.38086/8088的存儲(chǔ)器2023/2/166
3.3.3實(shí)際地址和邏輯地址段寄存器和其他寄存器組合指向存儲(chǔ)單元示意圖當(dāng)取指令時(shí),CPU選擇代碼段寄存器CS,再和指令指針I(yè)P的內(nèi)容一起形成指令所在單元的20位物理地址;當(dāng)進(jìn)行堆棧操作時(shí),CPU選擇堆棧段寄存器SS,再和堆棧指針SP或基址指針BP形成20位堆棧地址。3.38086/8088的存儲(chǔ)器2023/2/167
3.3.4堆棧
堆棧是用段定義語句在存儲(chǔ)器定義的一個(gè)堆棧段,與其他邏輯段一樣,可以在1MB的存儲(chǔ)空間浮動(dòng)。堆棧數(shù)目不限,最大為64KB。段地址由SS指定,棧頂由堆棧指針SP指定。
堆棧存取數(shù)據(jù)的原則是“先進(jìn)后出”,存取數(shù)據(jù)的方法是壓入(PUSH)和彈出(POP)。指針SP的變化由CPU自動(dòng)管理。
每執(zhí)行一條PUSH指令,SP=(SP)-2,SP指向新棧頂,然后將低位數(shù)據(jù)壓入(SP)單元,高位數(shù)據(jù)壓入(SP+1)單元。每執(zhí)行一條POP指令,CPU先將當(dāng)前的棧頂SP(低位數(shù)據(jù))和SP+1(高位數(shù)據(jù))中的內(nèi)容彈出,然后再自動(dòng)修改指針,SP=(SP)+2。SP指向新棧頂。3.38086/8088的存儲(chǔ)器2023/2/168
3.3.4堆棧
例題若已知當(dāng)前SS=1050H,SP=0008H,AX=1234H,則8086系統(tǒng)中堆棧的入棧和出棧操作如下圖所示。12AA…10500H10501H10502H10503H10504H10505H10506H10507H10508H棧底BB10509H段地址(SS)AX3412123434PUSHAX1050AHBBAAAABB1234BX34POPBXPOPAX12棧頂SP3.48086/8088的指令系統(tǒng)
3.4.1指令系統(tǒng)的特點(diǎn)及指令基本格式簡介
8086與8088指令系統(tǒng)由8位8080/8085指令系統(tǒng)擴(kuò)展而來,同時(shí)又能在其后續(xù)的80X86系列的CPU上正確運(yùn)行,所以具有向上兼容的特性。主要特征如下:
①可變長指令,指令格式由1~6個(gè)字節(jié)組成,比較復(fù)雜;②尋址方式多樣靈活,處理數(shù)據(jù)的能力較強(qiáng)(可處理字節(jié)、字、帶符號(hào)/無符號(hào)二進(jìn)制數(shù)據(jù)及壓縮型/非壓縮型十進(jìn)制數(shù)據(jù);③有重復(fù)指令和乘除運(yùn)算指令。擴(kuò)充了條件轉(zhuǎn)移、移位/循環(huán)指令;④有軟件中斷功能和支持多處理器系統(tǒng)工作的指令。2023/2/1693.48086/8088的指令系統(tǒng)2023/2/170
3.4.1指令系統(tǒng)的特點(diǎn)及指令基本格式簡介指令組成操作碼操作數(shù)或操作數(shù)地址操作碼:計(jì)算機(jī)所要執(zhí)行的操作類型,由一組二進(jìn)制代碼表示。在匯編語言中用助記符表示。操作數(shù):各種操作的對(duì)象,可以是具體的數(shù)值、寄存器或存儲(chǔ)器地址,可有0/1/2個(gè)。MOVAX,1000H立即數(shù)3.48086/8088的指令系統(tǒng)2023/2/171
3.4.1指令系統(tǒng)的特點(diǎn)及指令基本格式簡介指令組成操作碼操作數(shù)或操作數(shù)地址無操作數(shù):控制類指令單操作數(shù):只給出一個(gè)操作數(shù)地址,該操作數(shù)可在寄存器或存儲(chǔ)器中,也可直接指令中給出立即數(shù)。雙操作數(shù):源操作數(shù)、目的操作數(shù)。一個(gè)操作數(shù)在寄存器中,另一個(gè)在寄存器或存儲(chǔ)器中,或指令中直接給出立即數(shù)。不允許兩個(gè)都在存儲(chǔ)器中。單操作數(shù)指令I(lǐng)NC CXDEC AX無操作數(shù)指令STCCLI雙操作數(shù)指令A(yù)DD CX,1SUB AX,13.48086/8088的指令系統(tǒng)2023/2/172
3.4.1指令系統(tǒng)的特點(diǎn)及指令基本格式簡介指令格式:
3.48086/8088的指令系統(tǒng)2023/2/173
3.4.1指令系統(tǒng)的特點(diǎn)及指令基本格式簡介MOD≠11:存儲(chǔ)器方式,有一個(gè)操作數(shù)位于存儲(chǔ)器中MOD=00,沒有位移量MOD=01,只有低八位位移量MOD=10,有16位位移量MOD=11:寄存器方式,兩個(gè)操作數(shù)均在寄存器中。3.48086/8088的指令系統(tǒng)2023/2/174
3.4.1指令系統(tǒng)的特點(diǎn)及指令基本格式簡介REG用來確定某一個(gè)操作數(shù)所在寄存器的編碼;R/M受MOD制約MOD=11某操作數(shù)所在寄存器編碼;MOD≠11某操作數(shù)所在存儲(chǔ)單元有效地址EA,共24種計(jì)算方法。3.48086/8088的指令系統(tǒng)2023/2/175
3.4.2尋址方式1、固定尋址2、立即數(shù)尋址3、寄存器尋址4、存儲(chǔ)器尋址直接尋址間接尋址基址尋址變址尋址基址加變址尋址5、其它方式尋址串操作指令尋址I/O端口尋址轉(zhuǎn)移類指令尋址3.48086/8088的指令系統(tǒng)2023/2/176
3.4.2尋址方式操作數(shù)的位置操作數(shù)名稱尋址方式名稱在指令中立即數(shù)立即尋址(immediateaddressing)在寄存器中寄存器操作數(shù)寄存器尋址(registeraddressing)在存儲(chǔ)器中存儲(chǔ)器操作數(shù)存儲(chǔ)器尋址(memoryaddressing)在I/O端口中I/O操作數(shù)I/O端口尋址(I/Oportaddressing)3.48086/8088的指令系統(tǒng)2023/2/177
3.4.2尋址方式1、固定尋址例:加法的ASCII調(diào)整指令A(yù)AA,規(guī)定被調(diào)整的數(shù)總是位于AL中。(隱含使用某些寄存器)2、立即數(shù)尋址操作數(shù)就在指令中,當(dāng)執(zhí)行指令時(shí),CPU直接從指令隊(duì)列中取得該立即數(shù),而不必另外執(zhí)行總線周期去內(nèi)存取數(shù)。立即數(shù)可以是8位,也可以是16位,規(guī)定只能是整數(shù)類型的源操作數(shù)。主要用來給寄存器賦初值,指令執(zhí)行速度快。例:MOVAX,1680H;將1680H送入AX,AH中16H,AL中80H3.48086/8088的指令系統(tǒng)2023/2/178
3.4.2尋址方式3、寄存器尋址操作數(shù)放在CPU的寄存器中,指令中給出寄存器名,源操作數(shù)和目的操作數(shù)均可采用寄存器尋址方式。寄存器尋址需要使用總線周期嗎?對(duì)16位操作數(shù),寄存器可以是8個(gè)16位通用寄存器(AX、BX、CX、DX、SP、BP、SI和DI);對(duì)于8位操作數(shù)寄存器只能是AH、AL、BH、BL、CH、CL、DH和DL)3.48086/8088的指令系統(tǒng)2023/2/179
3.4.2尋址方式3、寄存器尋址例:MOVAX,SS;將SS的內(nèi)容送入AX①操作數(shù)存放在CPU內(nèi)部的某個(gè)寄存器中,指令中不出現(xiàn)操作數(shù)本身,而是給出存放操作數(shù)的寄存器的名字。②寄存器尋址既可用于源操作數(shù),也可用于目的操作數(shù)。MOV
CL,BL
;將BL中的8位寄存器操作數(shù)送寄存器CL中MOV
AX,DX
;將DX中的16位寄存器操作數(shù)送寄存器AX中MOV
DS,AX
;將AX中的16位寄存器操作數(shù)送寄存器DS中INC
SI ;將SI寄存器的內(nèi)容加1
MOVCS,AX
MOVAH,BX××并非所有寄存器都可自由使用。源、目的操作數(shù)的字長必須一致。3.48086/8088的指令系統(tǒng)2023/2/180
3.4.2尋址方式4、存儲(chǔ)器尋址①源和目的操作數(shù)之一為存儲(chǔ)器地址,兩者不能同時(shí)使用。②當(dāng)EU單元需要讀寫位于存儲(chǔ)器中的操作數(shù)時(shí),必須經(jīng)總線控制邏輯電路進(jìn)行存取。(需執(zhí)行總線周期)③用方括號(hào)[]表示對(duì)存儲(chǔ)器尋址。例:MOVAX,[1680H];把1680H和1681H兩個(gè)單元的內(nèi)容取入AX直接尋址3.48086/8088的指令系統(tǒng)2023/2/181
3.4.2尋址方式4、存儲(chǔ)器尋址有效地址計(jì)算通式(有效地址即操作數(shù)地址的偏移量)存放在基址寄存器中的內(nèi)容,常用來指向數(shù)據(jù)段中數(shù)組或字符串的首地址存放在變址寄存器中的內(nèi)容,常用來訪問數(shù)組中的某個(gè)元素或字符串中的某個(gè)字符位移量。存放在指令中的一個(gè)0位、8位、16位的數(shù),但它不是立即數(shù),而是一個(gè)地址。例:MOVAX,[BX];把數(shù)據(jù)段中以BX為有效地址的存儲(chǔ)單元中的內(nèi)容送到AX基址尋址3.48086/8088的指令系統(tǒng)2023/2/182
3.4.2尋址方式例:MOVAX,[SI];把數(shù)據(jù)段中以SI為有效地址的存儲(chǔ)單元中的內(nèi)容送到AX變址尋址例:MOVAX,[BP+SIH];把數(shù)據(jù)段中以BP+SIH為有效地址的存儲(chǔ)單元中的內(nèi)容送到AX基址加變址尋址3.48086/8088的指令系統(tǒng)2023/2/183
3.4.2尋址方式尋址方式有效地址EA默認(rèn)的段寄存器直接尋址(③)[DISP]DS寄存器間接尋址(①/②)[BX]DS[BP]SS[SI]DS[DI]DS基址尋址(①+③)[BX+DISP]DS[BP+DISP]SS變址尋址(②+③)[SI+DISP]DS[DI+DISP]DS基址加變址尋址(①+②+③)[BX+SI+DISP(或無DISP)]DS[BX+DI+DISP(或無DISP)]DS[BP+SI+DISP(或無DISP)]SS[BP+DI+DISP(或無DISP)]SSDISP:8位或16位相對(duì)位移量3.48086/8088的指令系統(tǒng)2023/2/184
3.4.2尋址方式例:設(shè)DS=1200H,BX=05A6H,SS=5000H,BP=40A0H,SI=2000H,DI=3000H,位移量DISP=1618H,試判斷下列指令的尋址方式,并求出寄存器與位移量所確定的有效地址EA和實(shí)際地址(物理地址)PA。并說明指令執(zhí)行結(jié)果。有效地址EA在指令中直接給出,默認(rèn)段是DS。可使用段跨越前綴
MOVAX,ES:[1680H]①M(fèi)OVAX,[0618H]直接尋址方式EA=0618HPA=12000HH=12618H將數(shù)據(jù)段的實(shí)際地址12618H和12619H兩單元的字內(nèi)容取出送入AX3.48086/8088的指令系統(tǒng)2023/2/185
3.4.2尋址方式例:設(shè)DS=1200H,BX=05A6H,SS=5000H,BP=40A0H,SI=2000H,DI=3000H,位移量DISP=1618H②MOVAX,[BX]基址寄存器間接尋址方式EA=05A6HPA=12000H+05A6H=125A6H將數(shù)據(jù)段的實(shí)際地址125A6H和125A7H兩單元的字內(nèi)容取出送入AX③MOVAX,[BP]堆棧段基址寄存器間接尋址方式EA=40A0HPA=50000H+40A0H=540A0H將堆棧段的540A0H和540A1H兩單元的字內(nèi)容取出送入AX3.48086/8088的指令系統(tǒng)2023/2/186
3.4.2尋址方式例:設(shè)DS=1200H,BX=05A6H,SS=5000H,BP=40A0H,SI=2000H,DI=3000H,位移量DISP=1618H④MOVAX,[DI]變址寄存器間接尋址方式EA=3000HPA=12000HH=15000H將數(shù)據(jù)段的15000H和15001H兩單元的字內(nèi)容取出送入AX⑤MOVAX,[BX+DI]基址加變址寄存器間接尋址方式EA=05A6H=35A6PA=12000H+35A6H=155A6H將堆棧段的155A6H和155A7H兩單元的字內(nèi)容取出送入AX3.48086/8088的指令系統(tǒng)2023/2/187
3.4.2尋址方式例:設(shè)DS=1200H,BX=05A6H,SS=5000H,BP=40A0H,SI=2000H,DI=3000H,位移量DISP=1618H⑥MOVAX,[BP+SI+DISP]基址加變址寄存器間接尋址EA=40A0HHH=76B8HPA=50000H+76B8H=576B8H將堆棧段的576B8H和576B9H兩單元的字內(nèi)容取出送入AX基址加變址寄存器間接尋址方式3.48086/8088的指令系統(tǒng)2023/2/188
3.4.2尋址方式基址加變址寄存器間接尋址基址加變址寄存器間接尋址方式總結(jié):帶方括號(hào)的地址表達(dá)式必須遵循下列規(guī)則:
(1)立即數(shù)可以出現(xiàn)在方括號(hào)內(nèi),表示直接地址,如[2000H]。
(2)只有BX、BP、SI、DI這四個(gè)寄存器可以出現(xiàn)在[]內(nèi),它們可以單獨(dú)出現(xiàn),也可以相加,或與常數(shù)相加,但BX和BP寄存器、SI和DI寄存器不允許出現(xiàn)在同一個(gè)[]內(nèi)。(3)不同寄存器對(duì)應(yīng)不同的隱含段基址:
SS:BP
DS:BX,SI,DI可用段超越前綴修改段基址。3.48086/8088的指令系統(tǒng)2023/2/189
3.4.2尋址方式數(shù)據(jù)串(或稱字符串)指令不能使用正常的存儲(chǔ)器尋址方式來存取數(shù)據(jù)串指令中使用的操作數(shù)。執(zhí)行數(shù)據(jù)串指令時(shí),源串操作數(shù)第1個(gè)字節(jié)或字的有效地址應(yīng)存放在源變址寄存器SI中(不允許修改),目標(biāo)串操作數(shù)第1個(gè)字節(jié)或字的有效地址應(yīng)存放在目標(biāo)變址寄存器DI中(不允許修改)。在重復(fù)串操作時(shí),8086/8088能自動(dòng)修改SI和DI的內(nèi)容,以使它們能指向后面的字節(jié)或字。因指令中不必給出SI或DI的編碼,故串操作指令采用的是隱含尋址方式。串操作指令尋址5、其他尋址方式3.48086/8088的指令系統(tǒng)2023/2/190
3.4.2尋址方式
在8086/8088指令系統(tǒng)中,輸入/輸出指令對(duì)I/O端口的尋址可采用直接或間接兩種方式。
(1)直接端口尋址:
I/O端口地址以8位立即數(shù)方式在指令中直接給出。例如INAL,n。所尋址的端口號(hào)只能在0~255范圍內(nèi)。
(2)間接端口尋址:
這類似于寄存器間接尋址,16位的I/O端口地址在DX寄存器中,即通過DX間接尋址,故可尋址的端口號(hào)為0~65535(實(shí)際為0~1023)。例如OUTDX,AL。它是將AL的內(nèi)容輸出到由(DX)指出的端口中去。I/O端口尋址5、其他尋址方式3.48086/8088的指令系統(tǒng)2023/2/191
3.4.2尋址方式
在8086/8088系統(tǒng)中,由于存儲(chǔ)器采用分段結(jié)構(gòu),所以轉(zhuǎn)移類指令有段內(nèi)轉(zhuǎn)移和段間轉(zhuǎn)移之分。所有的條件轉(zhuǎn)移指令只允許實(shí)現(xiàn)段內(nèi)轉(zhuǎn)移,而且是段內(nèi)短轉(zhuǎn)移,即只允許轉(zhuǎn)移的地址范圍在-128~+127字節(jié)內(nèi),由指令中直接給出8位地址位移量。轉(zhuǎn)移類指令尋址5、其他尋址方式3.48086/8088的指令系統(tǒng)2023/2/192
3.4.3指令的分類
在8086/8088指令系統(tǒng)中,包含133條基本指令。按功能指令可以分為6類:1、數(shù)據(jù)傳送2、算數(shù)運(yùn)算3、邏輯運(yùn)算4、串操作5、程序控制6、處理器控制3.48086/8088的指令系統(tǒng)2023/2/193
3.4.3指令的分類
1、數(shù)據(jù)傳送指令可完成寄存器與寄存器之間、寄存器與存儲(chǔ)器之間以及寄存器與I/O端口之間的字節(jié)或字傳送。特點(diǎn):不影響標(biāo)志寄存器的內(nèi)容(除SAHF和POPF)。共14小條,分為4小類通用數(shù)據(jù)傳送目標(biāo)地址傳送標(biāo)志位傳送I/O數(shù)據(jù)傳送3.48086/8088的的指令系統(tǒng)2023/2/194
3.4.3指令的分類
1、數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送指令目標(biāo)地址傳送指令MOV字節(jié)或字的傳送LEA裝入有效地址PUSH入棧指令LDS裝入數(shù)據(jù)段寄存器POP出棧指令LES裝入附加段寄存器XCHG交換字或字節(jié)標(biāo)志傳送指令XLAT表轉(zhuǎn)換LAHF標(biāo)志寄存器低字節(jié)裝入AH輸入輸出指令SAHFAH內(nèi)容裝入標(biāo)志寄存器低字節(jié)IN輸入PUSHF標(biāo)志寄存器入棧指令OUT輸出POPF出棧,并送入標(biāo)志寄存器3.48086/8088的指令系統(tǒng)2023/2/195
3.4.3指令的分類
1、數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送指令⑴MOVd,s;將由源操作數(shù)s指定的內(nèi)容送到目標(biāo)操作數(shù)d中。源操作數(shù):可以是8/16位寄存器、存儲(chǔ)器中的某個(gè)字節(jié)/字或者是8/16位立即數(shù)。目的操作數(shù):可以是8/16位寄存器、存儲(chǔ)器中的某個(gè)字節(jié)/字,不能是立即數(shù)。立即數(shù)段寄存器CSDSESSS通用寄存器AXBXCXDXBPSPS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 技術(shù)創(chuàng)新與養(yǎng)老行業(yè)的融合
- 個(gè)人固定資產(chǎn)借款合同范文
- 土方運(yùn)輸承包合同范本
- 農(nóng)產(chǎn)品經(jīng)銷合同書
- 牛羊肉購銷合同協(xié)議書模板范本
- 凈水器購銷合同模板
- 合同范本產(chǎn)品銷售合同
- 合同違約責(zé)任條款
- 煤礦井下飛行巡檢機(jī)器人的研究與應(yīng)用展望
- 安裝合同范本 標(biāo)準(zhǔn)版
- 《財(cái)務(wù)管理學(xué)(第10版)》課件 第5、6章 長期籌資方式、資本結(jié)構(gòu)決策
- 房屋永久居住權(quán)合同模板
- 醫(yī)院納入定點(diǎn)后使用醫(yī)療保障基金的預(yù)測性分析報(bào)告
- 初中英語不規(guī)則動(dòng)詞表(譯林版-中英)
- 2024年3月四川省公務(wù)員考試面試題及參考答案
- 新生兒黃疸早期識(shí)別課件
- 醫(yī)藥營銷團(tuán)隊(duì)建設(shè)與管理
- 二年級(jí)數(shù)學(xué)上冊(cè)口算題100道(全冊(cè)完整)
- 冷軋工程專業(yè)詞匯匯編注音版
- 小升初幼升小擇校畢業(yè)升學(xué)兒童簡歷
- 第一單元(金融知識(shí)進(jìn)課堂)課件
評(píng)論
0/150
提交評(píng)論