A2-18086CPU內(nèi)部各寄存器課件_第1頁
A2-18086CPU內(nèi)部各寄存器課件_第2頁
A2-18086CPU內(nèi)部各寄存器課件_第3頁
A2-18086CPU內(nèi)部各寄存器課件_第4頁
A2-18086CPU內(nèi)部各寄存器課件_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

思考從內(nèi)存取指令,送到CPU執(zhí)行。需要數(shù)據(jù)從內(nèi)存中讀取數(shù)據(jù)。

執(zhí)行指令4.把執(zhí)行結(jié)果寫入到內(nèi)存18086CPU內(nèi)部結(jié)構(gòu)圖EU(ExecutionUnit)執(zhí)行部件1.功能:負(fù)責(zé)指令執(zhí)行。執(zhí)行部件不與外部打交通,它從總線接口部件的指令隊(duì)列中取指令,這樣省去了訪問內(nèi)存取指令的所需的時(shí)間。28086CPU內(nèi)部結(jié)構(gòu)圖EU(ExecutionUnit)執(zhí)行部件2.組成:通用寄存器,ALU(算術(shù)邏輯運(yùn)算單),標(biāo)志寄存器等。38086CPU內(nèi)部結(jié)構(gòu)圖EU控制單元:負(fù)責(zé)從BIU指令隊(duì)列中取指令,分析指令,然后分析指令的結(jié)果向EU內(nèi)部各部件發(fā)出控制命令。58086CPU內(nèi)部結(jié)構(gòu)圖總線接口部件BIU(BusInterfaceUnit)功能:負(fù)責(zé)與M(存儲(chǔ)器)/IO端口之間傳送數(shù)據(jù)。具體講:1.總線接口部件要從內(nèi)存取指令送到指令隊(duì)列;2.CPU執(zhí)行指令時(shí),要配合執(zhí)行部件從指定的內(nèi)存單元或者外設(shè)端口中取數(shù)據(jù),將數(shù)據(jù)傳送給執(zhí)行部件EU;3.或把執(zhí)行部件的操作結(jié)果傳給指定的M或I/O端口。68086CPU內(nèi)部結(jié)構(gòu)圖總線接口部件BIU(BusInterfaceUnit)2.組成:段寄存器(CS,DS,ES,SS),16位指令指針寄存器,地址加法器(產(chǎn)生20位地址),6B指令隊(duì)列緩沖器71.通用寄存器91)數(shù)據(jù)寄存器DLDHCLCHBLBHALAH數(shù)據(jù)寄存器計(jì)數(shù)寄存器基址寄存器累加器DXCXBXAX10數(shù)據(jù)寄存器數(shù)據(jù)寄存器用來存放計(jì)算的結(jié)果和操作數(shù),也可以存放地址每個(gè)寄存器又有它們各自的專用目的AX--累加器,使用頻度最高,用于算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信息等;BX--基址寄存器,常用做存放存儲(chǔ)器地址;CX--計(jì)數(shù)器,作為循環(huán)和串操作等指令中的隱含計(jì)數(shù)器;DX--數(shù)據(jù)寄存器,常用來存放雙字長數(shù)據(jù)的高16位,或存放外設(shè)端口地址。113)指針寄存器指針寄存器用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù)

SP為堆棧指針寄存器,指示棧頂?shù)钠频刂?/p>

SP不能再用于其他目的,具有專用目的

BP為基址指針寄存器,表示數(shù)據(jù)在堆棧段中的基地址SP和BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲(chǔ)單元地址SI,DI,SP,BP,只能按16位進(jìn)行存取操作132.段寄存器8086有4個(gè)16位段寄存器CS(代碼段)指明代碼段的起始地址SS(堆棧段)指明堆棧段的起始地址DS(數(shù)據(jù)段)指明數(shù)據(jù)段的起始地址ES(附加段)指明附加段的起始地址每個(gè)段寄存器用來確定一個(gè)邏輯段的起始地址,每種邏輯段均有各自的用途14代碼段(CodeSegment)代碼段用來存放程序的指令序列代碼段寄存器CS存放代碼段的段地址指令指針寄存器IP指示下條指令的偏移地址處理器利用CS:IP取得下一條要執(zhí)行的指令15數(shù)據(jù)段(DataSegment)數(shù)據(jù)段存放運(yùn)行程序所用的數(shù)據(jù)數(shù)據(jù)段寄存器DS存放數(shù)據(jù)段的段地址各種主存尋址方式(有效地址EA)得到存儲(chǔ)器中操作數(shù)的偏移地址處理器利用DS:EA存取數(shù)據(jù)段中的數(shù)據(jù)17附加段(ExtraSegment)附加段是附加的數(shù)據(jù)段,也用于數(shù)據(jù)的保存:附加段寄存器ES存放附加段的段地址各種主存尋址方式(有效地址EA)得到存儲(chǔ)器中操作數(shù)的偏移地址處理器利用ES:EA存取附加段中的數(shù)據(jù)串操作指令將附加段作為其目的操作數(shù)的存放區(qū)域183.標(biāo)志寄存器標(biāo)志(Flag)用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行形式8086處理器的各種標(biāo)志形成了一個(gè)16位的標(biāo)志寄存器FR(標(biāo)志寄存器的內(nèi)容稱為程序狀態(tài)字PSW)程序設(shè)計(jì)需要利用標(biāo)志的狀態(tài)0123456789101112131415CFPFAFZFSFTFIFDFOF19標(biāo)志寄存器的設(shè)置標(biāo)志名稱設(shè)置未設(shè)置OFOV(溢出)NV(未溢出)ZFZRNZ(不等于0)AFACNA(無進(jìn)位)PFPE(偶)PO(奇)SFNG(負(fù))PL(正)CFCYNC(無進(jìn)位)DFDN(減少)UP(增加)IFEI(許可)DI(禁止)21進(jìn)位標(biāo)志CF(CarryFlag)當(dāng)運(yùn)算結(jié)果的最高有效位有進(jìn)位(加法)或借位(減法)時(shí),進(jìn)位標(biāo)志置1,即CF=1;否則CF=0。3AH+7CH=0B6H+01111100

0011101010110110結(jié)果:沒有進(jìn)位:CF=0例:字節(jié)22進(jìn)位標(biāo)志CF(CarryFlag)當(dāng)運(yùn)算結(jié)果的最高有效位有進(jìn)位(加法)或借位(減法)時(shí),進(jìn)位標(biāo)志置1,即CF=1;否則CF=0。例:字AA01H+7C80H=(1)2681H+0111110010000000

1010101000000001

10010011010000001結(jié)果:有進(jìn)位:CF=123符號(hào)標(biāo)志SF(SignFlag)運(yùn)算結(jié)果最高位為1,則SF=1;否則SF=03AH+7CH=0B6H,最高位D7=1:SF=184H+7CH=(1)00H,最高位D7=0:SF=0有符號(hào)數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號(hào),所以,最高有效位就是符號(hào)標(biāo)志的狀態(tài)。25奇偶標(biāo)志PF(ParityFlag)當(dāng)運(yùn)算結(jié)果最低字節(jié)中“1”的個(gè)數(shù)為零或偶數(shù)時(shí),PF=1;否則PF=03AH+7CH=0B6H=10110110B結(jié)果中有5個(gè)1,是奇數(shù):PF=0

PF標(biāo)志僅反映最低8位中“1”的個(gè)數(shù)是

偶或奇,即使是進(jìn)行16位字操作26溢出標(biāo)志OF(OverflowFlag)若算術(shù)運(yùn)算的結(jié)果有溢出,則OF=1;否則OF=03AH+7CH=0B6H,產(chǎn)生溢出:OF=10AAH+7CH=(1)26H,沒有溢出:OF=027問題1.什么是溢出?2.溢出和進(jìn)位有什么區(qū)別?3.處理器怎么處理,程序員如何運(yùn)用?4.如何判斷是否溢出?291.什么是溢出處理器內(nèi)部以補(bǔ)碼表示有符號(hào)數(shù)8位表達(dá)的整數(shù)范圍是:+127~-12816位表達(dá)的范圍是:+32767~-32768如果運(yùn)算結(jié)果超出這個(gè)范圍,就產(chǎn)生了溢出有溢出,說明有符號(hào)數(shù)的運(yùn)算結(jié)果不正確3AH+7CH=0B6H,就是58+124=182,已經(jīng)超出-128~+127范圍,產(chǎn)生溢出,故OF=1;另一方面,補(bǔ)碼0B6H表達(dá)真值是-74,顯然運(yùn)算結(jié)果也不正確302.溢出和進(jìn)位溢出標(biāo)志OF和進(jìn)位標(biāo)志CF是兩個(gè)意義不同的標(biāo)志進(jìn)位標(biāo)志表示無符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果仍然正確;溢出標(biāo)志表示有符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果已經(jīng)不正確。請看例子31溢出和進(jìn)位的對比例1:3AH+7CH=0B6H無符號(hào)數(shù)運(yùn)算:58+124=182 范圍內(nèi),無進(jìn)位有符號(hào)數(shù)運(yùn)算:58+124=182 范圍外,有溢出例2:0AAH+7CH=(1)26H無符號(hào)數(shù)運(yùn)算: 170+124=294 范圍外,有進(jìn)位有符號(hào)數(shù)運(yùn)算: -86+124=28 范圍內(nèi),無溢出323.如何運(yùn)用溢出和進(jìn)位處理器對兩個(gè)操作數(shù)進(jìn)行運(yùn)算時(shí),按照無符號(hào)數(shù)求得結(jié)果,并相應(yīng)設(shè)置進(jìn)位標(biāo)志CF;同時(shí),根據(jù)是否超出有符號(hào)數(shù)的范圍設(shè)置溢出標(biāo)志OF。應(yīng)該利用哪個(gè)標(biāo)志,則由程序員來決定。也就是說,如果將參加運(yùn)算的操作數(shù)認(rèn)為是無符號(hào)數(shù),就應(yīng)該關(guān)心進(jìn)位;認(rèn)為是有符號(hào)數(shù),則要注意是否溢出。334.溢出的判斷判斷運(yùn)算結(jié)果是否溢出有一個(gè)簡單的規(guī)則:只有當(dāng)兩個(gè)相同符號(hào)數(shù)相加(包括不同符號(hào)數(shù)相減),而運(yùn)算結(jié)果的符號(hào)與原數(shù)據(jù)符號(hào)相反時(shí),產(chǎn)生溢出;因?yàn)?,此時(shí)的運(yùn)算結(jié)果顯然不正確其他情況下,則不會(huì)產(chǎn)生溢出34運(yùn)算時(shí)D7,D3位(低半字節(jié))有進(jìn)位或借位時(shí),AF=1;否則AF=0。輔助進(jìn)位標(biāo)志AF(AuxiliaryCarryFlag)35AF=101110101例1:6DH+08H=75H01101101+00001000AF=1

0001000010001110例2:2110H-1082H=108EH0010000100010000-0001000010000010

這個(gè)標(biāo)志主要由處理器內(nèi)部使用,用于十進(jìn)制算術(shù)運(yùn)算調(diào)整指令中,用戶一般不必關(guān)心36方向標(biāo)志DF(DirectionFlag)用于串操作指令中,控制地址的變化方向:設(shè)置DF=0,存儲(chǔ)器地址自動(dòng)增加;設(shè)置DF=1,存儲(chǔ)器地址自動(dòng)減少。CLD指令復(fù)位方向標(biāo)志:DF=0STD指令置位方向標(biāo)志:DF=137中斷允許標(biāo)志IF(Interrupt-enableFlag)用于控制外部可屏蔽中斷是否可以被處理器響應(yīng):設(shè)置IF=1,則允許中斷;設(shè)置IF=0,則禁止中斷。CLI指令復(fù)位中斷標(biāo)志:IF=0STI指令置位中斷標(biāo)志:IF=138陷阱標(biāo)志TF(TrapFlag)用于控制處理器進(jìn)入單步操作方式:設(shè)置TF=0,處理器正常工作;設(shè)置TF=1,處理器單步執(zhí)行指令。單步執(zhí)行指令——處理器在每條指令執(zhí)行結(jié)束時(shí),便產(chǎn)生一個(gè)編號(hào)為1的內(nèi)部中斷這種內(nèi)部中斷稱為單步中斷所以TF也稱為單步標(biāo)志利用單步中斷可對程序進(jìn)行逐條指令的調(diào)試這種逐條指令調(diào)試程序的方法就是單步調(diào)試39例題CFA8+5623=?1100111110101000+0101011000100011

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論