




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2.1 8086CPU編程結(jié)構(gòu)編程結(jié)構(gòu)2.2 8086存儲(chǔ)器結(jié)微機(jī)構(gòu)存儲(chǔ)器結(jié)微機(jī)構(gòu)2.3 8086的的I/O接口接口 8086/8088微處理器是微處理器是Intel公司推出的第三代公司推出的第三代CPU芯芯片,它們的內(nèi)部結(jié)構(gòu)基本相同,內(nèi)部數(shù)據(jù)總線都是片,它們的內(nèi)部結(jié)構(gòu)基本相同,內(nèi)部數(shù)據(jù)總線都是16位,位,都采用都采用16位結(jié)構(gòu)進(jìn)行操作及存儲(chǔ)器尋址,但外部性能有所位結(jié)構(gòu)進(jìn)行操作及存儲(chǔ)器尋址,但外部性能有所差異,差異,8086是是16為微型處理器,為微型處理器,CPU與外部進(jìn)行數(shù)據(jù)交與外部進(jìn)行數(shù)據(jù)交換數(shù)據(jù)總線采用換數(shù)據(jù)總線采用16位,而位,而8088是準(zhǔn)是準(zhǔn)16為微型處理器,為微型處理器,CPU
2、與外部進(jìn)行數(shù)據(jù)交換數(shù)據(jù)總線采用與外部進(jìn)行數(shù)據(jù)交換數(shù)據(jù)總線采用16位,最大尋找空位,最大尋找空間為間為1M。兩者具有類(lèi)似的體系結(jié)構(gòu),指令系統(tǒng)、指令編。兩者具有類(lèi)似的體系結(jié)構(gòu),指令系統(tǒng)、指令編碼格式、尋址方式完全相同,兩種處理器都封裝在相同的碼格式、尋址方式完全相同,兩種處理器都封裝在相同的40腳雙列直插組件腳雙列直插組件(DIP)中。中。 8086/8088CPU編程結(jié)構(gòu)是指從程序員和使用者的角度看到編程結(jié)構(gòu)是指從程序員和使用者的角度看到的結(jié)構(gòu),亦可稱(chēng)為功能結(jié)構(gòu),其內(nèi)部結(jié)構(gòu)如圖所示。的結(jié)構(gòu),亦可稱(chēng)為功能結(jié)構(gòu),其內(nèi)部結(jié)構(gòu)如圖所示。AHALBHBLCHCLDHDL通用寄存器SPBPSIDI數(shù) 據(jù)寄存
3、器指針和變址寄存器內(nèi)部數(shù)據(jù)總線(16位)運(yùn)算寄存器EU控制電路AXBXCXDX標(biāo)志寄存器執(zhí)行單元(EU)總線接口單元(BIU)1 2 3 4 5 6指令隊(duì)列緩沖器(8位)內(nèi)部寄存器IPESSSDSCSALUDB(16位)AB(20位)輸入輸出控制電 路8086總線DB(16位)20位地址加法器 按功能可分為兩部分:執(zhí)行單元按功能可分為兩部分:執(zhí)行單元EU(Execution Unit)和總和總線接口單元線接口單元BIU(Bus Interface Unit)。 2.1.1執(zhí)行單元執(zhí)行單元EU 執(zhí)行單元包括算術(shù)邏輯單元執(zhí)行單元包括算術(shù)邏輯單元(ALU),狀態(tài)標(biāo)志寄存器,狀態(tài)標(biāo)志寄存器(FLAGS
4、),一組通用寄存器組和相應(yīng)的控制電路,所有寄,一組通用寄存器組和相應(yīng)的控制電路,所有寄存器都是存器都是16位的,執(zhí)行單元不直接與外設(shè)交換信息,它通位的,執(zhí)行單元不直接與外設(shè)交換信息,它通過(guò)總線接口單元接收指令和數(shù)據(jù),可以進(jìn)行過(guò)總線接口單元接收指令和數(shù)據(jù),可以進(jìn)行8位和位和16位算位算術(shù)運(yùn)算、邏輯運(yùn)算和移位操作等。術(shù)運(yùn)算、邏輯運(yùn)算和移位操作等。 2.1.2總線接口單元總線接口單元BIU 總線接口單元總線接口單元BIU的功能是負(fù)責(zé)的功能是負(fù)責(zé)CPU與存儲(chǔ)器、與存儲(chǔ)器、I/O的信息的信息傳送。具體功能是根據(jù)段寄存器傳送。具體功能是根據(jù)段寄存器CS和指令指針和指令指針I(yè)P形成的形成的20位物理地址從存
5、儲(chǔ)器中取出指令,并暫存在指令隊(duì)列中,位物理地址從存儲(chǔ)器中取出指令,并暫存在指令隊(duì)列中,等待執(zhí)行單元等待執(zhí)行單元EU取走并執(zhí)行。取走并執(zhí)行。 總線接口單元由一個(gè)指令隊(duì)列,一組段寄存器總線接口單元由一個(gè)指令隊(duì)列,一組段寄存器(DS、CS、ES、SS),一個(gè)指令指針寄存器,一個(gè)指令指針寄存器(IP),地址加法器組成。,地址加法器組成。地址加法器根據(jù)地址加法器根據(jù)EU的請(qǐng)求,形成的請(qǐng)求,形成20位的實(shí)際物理地址,位的實(shí)際物理地址,完成完成CPU與存儲(chǔ)器或與存儲(chǔ)器或I/O接口的數(shù)據(jù)交換。接口的數(shù)據(jù)交換。8086CPU的指的指令隊(duì)列為令隊(duì)列為6個(gè)字節(jié)個(gè)字節(jié)(8088為為4字節(jié)字節(jié)),在執(zhí)行指令的同時(shí),可,
6、在執(zhí)行指令的同時(shí),可從內(nèi)存中取出后續(xù)的指令代碼,放在指令隊(duì)列中,可以提從內(nèi)存中取出后續(xù)的指令代碼,放在指令隊(duì)列中,可以提高高CPU的工作效率。的工作效率。 BIU與與EU的動(dòng)作協(xié)調(diào)原則:的動(dòng)作協(xié)調(diào)原則: 總線接口部件總線接口部件(BIU)和執(zhí)行部件和執(zhí)行部件(EU)按以下流水線技術(shù)原按以下流水線技術(shù)原則協(xié)調(diào)工作,共同完成所要求的信息處理任務(wù):則協(xié)調(diào)工作,共同完成所要求的信息處理任務(wù): (1)每當(dāng))每當(dāng)8086的指令隊(duì)列中有兩個(gè)空字節(jié),或的指令隊(duì)列中有兩個(gè)空字節(jié),或8088的指的指令隊(duì)列中有一個(gè)空字節(jié)時(shí),令隊(duì)列中有一個(gè)空字節(jié)時(shí),BIU就會(huì)自動(dòng)把指令取到指令就會(huì)自動(dòng)把指令取到指令隊(duì)列中。其取指的順
7、序是按指令在程序中出現(xiàn)的前后順序。隊(duì)列中。其取指的順序是按指令在程序中出現(xiàn)的前后順序。 (2)每當(dāng))每當(dāng)EU準(zhǔn)備執(zhí)行一條指令時(shí),它會(huì)從準(zhǔn)備執(zhí)行一條指令時(shí),它會(huì)從BIU部件的指部件的指令隊(duì)列前部取出指令的代碼,然后用幾個(gè)時(shí)鐘周期去執(zhí)行令隊(duì)列前部取出指令的代碼,然后用幾個(gè)時(shí)鐘周期去執(zhí)行指令。在執(zhí)行指令的過(guò)程中,如果必須訪問(wèn)存儲(chǔ)器或者指令。在執(zhí)行指令的過(guò)程中,如果必須訪問(wèn)存儲(chǔ)器或者IO端口,那么端口,那么EU就會(huì)請(qǐng)求就會(huì)請(qǐng)求BIU,進(jìn)入總線周期,完成訪問(wèn),進(jìn)入總線周期,完成訪問(wèn)內(nèi)存或者內(nèi)存或者IO端口的操作;如果此時(shí)端口的操作;如果此時(shí)BIU正好處于空閑狀正好處于空閑狀態(tài),會(huì)立即響應(yīng)態(tài),會(huì)立即響應(yīng)E
8、U的總線請(qǐng)求。如的總線請(qǐng)求。如BIU正將某個(gè)指令字節(jié)正將某個(gè)指令字節(jié)取到指令隊(duì)列中,則取到指令隊(duì)列中,則BIU將首先完成這個(gè)取指令的總線周將首先完成這個(gè)取指令的總線周期,然后再去響應(yīng)期,然后再去響應(yīng)EU發(fā)出的訪問(wèn)總線的請(qǐng)求。發(fā)出的訪問(wèn)總線的請(qǐng)求。 (3)當(dāng)指令隊(duì)列已滿(mǎn),且)當(dāng)指令隊(duì)列已滿(mǎn),且EU又沒(méi)有總線訪問(wèn)請(qǐng)求時(shí),又沒(méi)有總線訪問(wèn)請(qǐng)求時(shí),BIU便進(jìn)入空閑狀態(tài)。便進(jìn)入空閑狀態(tài)。 (4)在執(zhí)行轉(zhuǎn)移指令、調(diào)用指令和返回指令時(shí),由于待)在執(zhí)行轉(zhuǎn)移指令、調(diào)用指令和返回指令時(shí),由于待執(zhí)行指令的順序發(fā)生了變化,則指令隊(duì)列中已經(jīng)裝入的字執(zhí)行指令的順序發(fā)生了變化,則指令隊(duì)列中已經(jīng)裝入的字節(jié)被自動(dòng)消除,節(jié)被自動(dòng)消
9、除,BIU會(huì)接著往指令隊(duì)列裝入轉(zhuǎn)向的另一程會(huì)接著往指令隊(duì)列裝入轉(zhuǎn)向的另一程序段中的指令代碼。序段中的指令代碼。 總線接口單元由一個(gè)指令隊(duì)列,一組段寄存器總線接口單元由一個(gè)指令隊(duì)列,一組段寄存器(DS、CS、ES、SS),一個(gè)指令指針寄存器,一個(gè)指令指針寄存器(IP),地址加法器組成。,地址加法器組成。地址加法器根據(jù)地址加法器根據(jù)EU的請(qǐng)求,形成的請(qǐng)求,形成20位的實(shí)際物理地址,位的實(shí)際物理地址,完成完成CPU與存儲(chǔ)器或與存儲(chǔ)器或I/O接口的數(shù)據(jù)交換。接口的數(shù)據(jù)交換。8086CPU的指的指令隊(duì)列為令隊(duì)列為6個(gè)字節(jié)個(gè)字節(jié)(8088為為4字節(jié)字節(jié)),在執(zhí)行指令的同時(shí),可,在執(zhí)行指令的同時(shí),可從內(nèi)存中
10、取出后續(xù)的指令代碼,放在指令隊(duì)列中,可以提從內(nèi)存中取出后續(xù)的指令代碼,放在指令隊(duì)列中,可以提高高CPU的工作效率。的工作效率。 2.1.3 8086/8088內(nèi)部寄存器內(nèi)部寄存器 8086/8088內(nèi)部的寄存器可以分為通用寄存器和專(zhuān)用寄存內(nèi)部的寄存器可以分為通用寄存器和專(zhuān)用寄存器兩大類(lèi),專(zhuān)用寄存器包括器兩大類(lèi),專(zhuān)用寄存器包括IP、SP和和FLAGS三個(gè)三個(gè)16位寄位寄存器。存器。 1通用寄存器通用寄存器 數(shù)據(jù)寄存器、指針寄存器和變址寄存器統(tǒng)稱(chēng)為通用寄存器。數(shù)據(jù)寄存器、指針寄存器和變址寄存器統(tǒng)稱(chēng)為通用寄存器。數(shù)據(jù)寄存器主要用于保存操作數(shù)運(yùn)算結(jié)果等信息,有四個(gè)數(shù)據(jù)寄存器主要用于保存操作數(shù)運(yùn)算結(jié)果等
11、信息,有四個(gè)16位的數(shù)據(jù)寄存器位的數(shù)據(jù)寄存器AX,BX,CX,DX可分解成八個(gè)獨(dú)立可分解成八個(gè)獨(dú)立的的8位寄存器,這八個(gè)位寄存器,這八個(gè)8位的寄存器有各自的名稱(chēng),分別稱(chēng)位的寄存器有各自的名稱(chēng),分別稱(chēng)為為AH,AL,BH,BL,CH,CL,DH,DL,并且均可以,并且均可以獨(dú)立存取。名稱(chēng)中的字母獨(dú)立存取。名稱(chēng)中的字母H表示高,表示高,L表示低。如表示低。如AL表示表示低低8位,位,AH表示高表示高8位,位,AH寄存器和寄存器和AL寄存器的合并就寄存器的合并就是是AX寄存器,其他寄存器類(lèi)推。即低位字節(jié)的寄存器分寄存器,其他寄存器類(lèi)推。即低位字節(jié)的寄存器分別稱(chēng)作別稱(chēng)作AL、BL、CL和和DL,高位字
12、節(jié)的寄存器分別稱(chēng)作,高位字節(jié)的寄存器分別稱(chēng)作AH、BH、CH和和DH。 AX和和AL寄存器又稱(chēng)為累加寄存器寄存器又稱(chēng)為累加寄存器(Accumulator)。一般。一般通過(guò)累加器進(jìn)行的操作所用的時(shí)間可能最少,此外累加器通過(guò)累加器進(jìn)行的操作所用的時(shí)間可能最少,此外累加器還有許多專(zhuān)門(mén)的用途,所以累加器使用的最普遍。還有許多專(zhuān)門(mén)的用途,所以累加器使用的最普遍。 BX寄存器成為基寄存器成為基(Base)地址寄存器。他是四個(gè)寄存器中地址寄存器。他是四個(gè)寄存器中唯一可作為存儲(chǔ)器基址指針使用的寄存器。唯一可作為存儲(chǔ)器基址指針使用的寄存器。 CX寄存器稱(chēng)為計(jì)數(shù)寄存器稱(chēng)為計(jì)數(shù)(Count)寄存器。在字符串操作和循
13、環(huán)寄存器。在字符串操作和循環(huán)操作時(shí),用它來(lái)控制重復(fù)循環(huán)操作次數(shù)。在一位操作時(shí),操作時(shí),用它來(lái)控制重復(fù)循環(huán)操作次數(shù)。在一位操作時(shí),CL寄存器用于保存移位的位數(shù)。寄存器用于保存移位的位數(shù)。 DX寄存器稱(chēng)為數(shù)據(jù)寄存器稱(chēng)為數(shù)據(jù)(Data)寄存器。在進(jìn)行寄存器。在進(jìn)行32位的乘除法位的乘除法操作時(shí),用它存放被除數(shù)的高操作時(shí),用它存放被除數(shù)的高16位或余數(shù)。它也用于存放位或余數(shù)。它也用于存放I/O端口地址。端口地址。變址寄存器變址寄存器(SI、DI)和指針寄存器和指針寄存器(BP、SP)主要用于存放主要用于存放某個(gè)存儲(chǔ)單元的偏移地址,或某組存儲(chǔ)單元開(kāi)始地址的偏移某個(gè)存儲(chǔ)單元的偏移地址,或某組存儲(chǔ)單元開(kāi)始地
14、址的偏移量,即作為存儲(chǔ)器量,即作為存儲(chǔ)器(短短)指針使用。作為通用寄存器,它們也指針使用。作為通用寄存器,它們也可以保存可以保存16位算術(shù)邏輯運(yùn)算中的操作數(shù)和運(yùn)算結(jié)果,有時(shí)運(yùn)位算術(shù)邏輯運(yùn)算中的操作數(shù)和運(yùn)算結(jié)果,有時(shí)運(yùn)算結(jié)果就是需要的存儲(chǔ)單元地址的偏移量。注意,算結(jié)果就是需要的存儲(chǔ)單元地址的偏移量。注意,16位的變位的變址寄存器和指針寄存器不能分解成址寄存器和指針寄存器不能分解成8位寄存器使用。位寄存器使用。SI和和DI寄存器在字符串操作中,規(guī)定由寄存器在字符串操作中,規(guī)定由SI給出源串指針,由給出源串指針,由DI給出給出目的串指針,所以目的串指針,所以SI也稱(chēng)為源變址也稱(chēng)為源變址(Source
15、 Index)寄存器,寄存器,DI也稱(chēng)為目的變址也稱(chēng)為目的變址(Destination Index)寄存器。寄存器。BP和和SP寄存器在對(duì)堆棧操作時(shí),寄存器在對(duì)堆棧操作時(shí),BP主要用于給出堆棧中主要用于給出堆棧中數(shù)據(jù)區(qū)基址的偏移地址,從而方便的實(shí)現(xiàn)直接存取堆棧中的數(shù)據(jù)區(qū)基址的偏移地址,從而方便的實(shí)現(xiàn)直接存取堆棧中的數(shù)據(jù),所以數(shù)據(jù),所以BP也稱(chēng)為基指針也稱(chēng)為基指針(Base Pointer)寄存器。正常寄存器。正常情況下,情況下,SP只作為堆棧指針只作為堆棧指針(Stack Pointer)使用,即保存使用,即保存堆棧棧頂?shù)刂返钠?。堆棧棧頂?shù)刂返钠啤?段寄存器段寄存器8086/8088CPU
16、依賴(lài)其內(nèi)部的四個(gè)段寄存器實(shí)現(xiàn)尋址依賴(lài)其內(nèi)部的四個(gè)段寄存器實(shí)現(xiàn)尋址1M字節(jié)的物理地字節(jié)的物理地址空間。址空間。8086/8088把把1M字節(jié)地址空間分成若干邏輯段,當(dāng)前使用段的字節(jié)地址空間分成若干邏輯段,當(dāng)前使用段的起始地址起始地址(段基址段基址)存放在段寄存器中。由段基址和段內(nèi)偏移地址形成存放在段寄存器中。由段基址和段內(nèi)偏移地址形成20位地址,我們將在下節(jié)詳細(xì)介紹形成位地址,我們將在下節(jié)詳細(xì)介紹形成20位地址的具體方法。位地址的具體方法。8086/8088CPU的四個(gè)段寄存器均是的四個(gè)段寄存器均是16位的,分別稱(chēng)為代碼段位的,分別稱(chēng)為代碼段(Code Segment)寄存器寄存器CS,數(shù)據(jù)段,
17、數(shù)據(jù)段(Data Segment)寄存器寄存器DS,堆棧段,堆棧段(Stack Segment)寄存器寄存器SS,附加段,附加段(Extra Segment)寄存器寄存器ES。段寄。段寄存器主要解決存器主要解決20位地址形成和程序中指令代碼與數(shù)據(jù)分開(kāi)存放,除位地址形成和程序中指令代碼與數(shù)據(jù)分開(kāi)存放,除CS是是用于指示指令代碼的地址空間之外,其它段寄存器都用于指示數(shù)據(jù)的地用于指示指令代碼的地址空間之外,其它段寄存器都用于指示數(shù)據(jù)的地址空間。址空間。3指令指針寄存器指令指針寄存器IP8086/8088CPU中的指令指針寄存器中的指令指針寄存器IP(Instruction Pointer)也是也是1
18、6位位的,它給出將要從主存中取出指令在代碼段中的偏移地址,其值為該指的,它給出將要從主存中取出指令在代碼段中的偏移地址,其值為該指令到所在段基址的字節(jié)距離。令到所在段基址的字節(jié)距離。 OF DF IF TF SF ZF AF PF CF進(jìn)進(jìn)借借位位標(biāo)標(biāo)志志奇奇偶偶標(biāo)標(biāo)志志半半進(jìn)進(jìn)借借位位標(biāo)標(biāo)志志零零標(biāo)標(biāo)志志符符號(hào)號(hào)標(biāo)標(biāo)志志單單步步中中斷斷中中斷斷允允許許方方向向標(biāo)標(biāo)志志溢溢出出標(biāo)標(biāo)志志1-有進(jìn)、借位有進(jìn)、借位0-無(wú)進(jìn)、借位無(wú)進(jìn)、借位1-低低4位向高位向高4位有進(jìn)、借位位有進(jìn)、借位0-低低4位向高位向高4位無(wú)進(jìn)、借位位無(wú)進(jìn)、借位1-結(jié)果為結(jié)果為00-結(jié)果不為結(jié)果不為04標(biāo)志寄存器標(biāo)志寄存器FLA
19、GS標(biāo)志寄存器又稱(chēng)為程序狀態(tài)字寄存器標(biāo)志寄存器又稱(chēng)為程序狀態(tài)字寄存器(program status word, PSW)。各標(biāo)志在標(biāo)志寄存器中的位置如下所示:。各標(biāo)志在標(biāo)志寄存器中的位置如下所示:有些指令的執(zhí)行受某些標(biāo)志的影響,有些指令的執(zhí)行不受標(biāo)志的有些指令的執(zhí)行受某些標(biāo)志的影響,有些指令的執(zhí)行不受標(biāo)志的影響。所以,程序員要充分注意指令與標(biāo)志的關(guān)系。影響。所以,程序員要充分注意指令與標(biāo)志的關(guān)系。9個(gè)標(biāo)志可分成兩組,第一組個(gè)標(biāo)志可分成兩組,第一組6個(gè)標(biāo)志主要受算術(shù)運(yùn)算和邏輯運(yùn)算個(gè)標(biāo)志主要受算術(shù)運(yùn)算和邏輯運(yùn)算結(jié)果的影響,稱(chēng)為運(yùn)算結(jié)果標(biāo)志,第二組標(biāo)志不受運(yùn)算結(jié)果的影結(jié)果的影響,稱(chēng)為運(yùn)算結(jié)果標(biāo)志,第
20、二組標(biāo)志不受運(yùn)算結(jié)果的影響,稱(chēng)為狀態(tài)控制標(biāo)志。響,稱(chēng)為狀態(tài)控制標(biāo)志。(1)運(yùn)算結(jié)果(狀態(tài))標(biāo)志位)運(yùn)算結(jié)果(狀態(tài))標(biāo)志位OF(Overflow Flag)溢出標(biāo)志:在運(yùn)算過(guò)程中,如操作數(shù)超出了溢出標(biāo)志:在運(yùn)算過(guò)程中,如操作數(shù)超出了機(jī)器能表示的范圍,則稱(chēng)為溢出。此時(shí)機(jī)器能表示的范圍,則稱(chēng)為溢出。此時(shí)OF位置位置1,否則置,否則置0。SF(Sign Flag)符號(hào)標(biāo)志:記錄運(yùn)算結(jié)果的符號(hào),結(jié)果為負(fù)時(shí)置符號(hào)標(biāo)志:記錄運(yùn)算結(jié)果的符號(hào),結(jié)果為負(fù)時(shí)置1,否則置否則置0。ZF(Zero Flag)零標(biāo)志:運(yùn)算結(jié)果為零標(biāo)志:運(yùn)算結(jié)果為0時(shí)時(shí)ZF位置位置1,否則置,否則置0。CF(Carry Flag)進(jìn)位標(biāo)志
21、:記錄運(yùn)算時(shí)有效位產(chǎn)生的進(jìn)位值。例進(jìn)位標(biāo)志:記錄運(yùn)算時(shí)有效位產(chǎn)生的進(jìn)位值。例如,執(zhí)行加法指令時(shí),最高有效位有進(jìn)位時(shí)置如,執(zhí)行加法指令時(shí),最高有效位有進(jìn)位時(shí)置1,否則置,否則置0。AF(Auxiliary carry Falg)輔助進(jìn)位標(biāo)志:記錄運(yùn)算時(shí)第輔助進(jìn)位標(biāo)志:記錄運(yùn)算時(shí)第3位位(半個(gè)半個(gè)字節(jié)字節(jié))產(chǎn)生的進(jìn)位值。例如,執(zhí)行加法指令時(shí)第產(chǎn)生的進(jìn)位值。例如,執(zhí)行加法指令時(shí)第3位有進(jìn)位時(shí)置位有進(jìn)位時(shí)置1,否則置否則置0。PF(Parity Flag)奇偶標(biāo)志:用來(lái)為機(jī)器中傳送信息時(shí)可能產(chǎn)生的奇偶標(biāo)志:用來(lái)為機(jī)器中傳送信息時(shí)可能產(chǎn)生的代碼出錯(cuò)情況提供檢驗(yàn)條件。當(dāng)結(jié)果操作數(shù)中代碼出錯(cuò)情況提供檢驗(yàn)條件
22、。當(dāng)結(jié)果操作數(shù)中1的個(gè)數(shù)為偶數(shù)時(shí)置的個(gè)數(shù)為偶數(shù)時(shí)置1,否則置,否則置0。2)控制標(biāo)志位)控制標(biāo)志位DF(Direction Flag)方向標(biāo)志:在串處理指令中控制處理信方向標(biāo)志:在串處理指令中控制處理信息的方向用。當(dāng)息的方向用。當(dāng)DF位為位為1時(shí),每次操作后是變址寄存器時(shí),每次操作后是變址寄存器SI和和DI減量,這樣就是串處理從高地址向低地址方向處理。當(dāng)減量,這樣就是串處理從高地址向低地址方向處理。當(dāng)DF為為0時(shí),則使時(shí),則使SI和和DI增量,使串處理從低地址向高地址方增量,使串處理從低地址向高地址方向處理。向處理。8086/8088提供的專(zhuān)門(mén)用于設(shè)置方向標(biāo)志提供的專(zhuān)門(mén)用于設(shè)置方向標(biāo)志DF的指
23、令的指令是是STF,專(zhuān)門(mén)用于清除,專(zhuān)門(mén)用于清除DF的指令時(shí)的指令時(shí)CLD。IF(Interrupt Flag)中斷向量:當(dāng)中斷向量:當(dāng)IF為為1時(shí),允許中斷,否則時(shí),允許中斷,否則關(guān)閉中斷。關(guān)閉中斷。8086/8088提供的專(zhuān)門(mén)用于設(shè)置中斷允許標(biāo)志提供的專(zhuān)門(mén)用于設(shè)置中斷允許標(biāo)志IF的指令是的指令是STI,專(zhuān)門(mén)用于清,專(zhuān)門(mén)用于清IF的指令是的指令是CLI。TF(Trap Flag)追蹤標(biāo)志:用于單步操作方式,當(dāng)追蹤標(biāo)志追蹤標(biāo)志:用于單步操作方式,當(dāng)追蹤標(biāo)志TF被置被置1后,后,CPU進(jìn)入單步方式。所謂單步方式是指在一條進(jìn)入單步方式。所謂單步方式是指在一條指令執(zhí)行后,產(chǎn)生一個(gè)單步中斷,這主要用于程
24、序的調(diào)試。指令執(zhí)行后,產(chǎn)生一個(gè)單步中斷,這主要用于程序的調(diào)試。8086/8088沒(méi)有專(zhuān)門(mén)設(shè)置和清除沒(méi)有專(zhuān)門(mén)設(shè)置和清除TF標(biāo)志的指令,用通過(guò)其他標(biāo)志的指令,用通過(guò)其他方法設(shè)置或清除方法設(shè)置或清除TF。2.2.1 存儲(chǔ)單元的地址和內(nèi)容存儲(chǔ)單元的地址和內(nèi)容計(jì)算機(jī)存儲(chǔ)器以字節(jié)為單位存儲(chǔ)信息,計(jì)算機(jī)存儲(chǔ)器以字節(jié)為單位存儲(chǔ)信息,為了正確的存放或取得信息,每一個(gè)為了正確的存放或取得信息,每一個(gè)字節(jié)單元給以一個(gè)存儲(chǔ)器地址。地址字節(jié)單元給以一個(gè)存儲(chǔ)器地址。地址從從0開(kāi)始編號(hào),順序地每次加開(kāi)始編號(hào),順序地每次加1。在。在機(jī)器里,地址也是用二進(jìn)制數(shù)來(lái)表示機(jī)器里,地址也是用二進(jìn)制數(shù)來(lái)表示的的,它是無(wú)符號(hào)整數(shù),為了書(shū)寫(xiě)
25、和編它是無(wú)符號(hào)整數(shù),為了書(shū)寫(xiě)和編程方便地址格式一般采用十六進(jìn)制數(shù)程方便地址格式一般采用十六進(jìn)制數(shù)表示。從圖中可以看到,表示。從圖中可以看到, 地址為地址為1001H的字節(jié)存儲(chǔ)單元中的內(nèi)容是的字節(jié)存儲(chǔ)單元中的內(nèi)容是34H,而地址為,而地址為200AH的字節(jié)存儲(chǔ)單的字節(jié)存儲(chǔ)單元中的內(nèi)容是元中的內(nèi)容是78H。分別記為:。分別記為:(1000H)=33H(200AH)=78H存儲(chǔ)器地址33H1000H34H1001H35H1002H36H10033H78H200AH89H200BH8086微機(jī)的字長(zhǎng)為微機(jī)的字長(zhǎng)為16位,由位,由2個(gè)字節(jié)組成一個(gè)字,分成低位個(gè)字節(jié)組成一個(gè)字,分成低位字節(jié)和高位字節(jié)。一個(gè)
26、字存放到存儲(chǔ)器要占用連續(xù)的兩個(gè)字字節(jié)和高位字節(jié)。一個(gè)字存放到存儲(chǔ)器要占用連續(xù)的兩個(gè)字節(jié)單元,系統(tǒng)規(guī)定,當(dāng)把一個(gè)字節(jié)存放到存儲(chǔ)器時(shí),其低字節(jié)單元,系統(tǒng)規(guī)定,當(dāng)把一個(gè)字節(jié)存放到存儲(chǔ)器時(shí),其低字節(jié)存放在低地址的字節(jié)單元中,其高字節(jié)存放在高地址的字節(jié)存放在低地址的字節(jié)單元中,其高字節(jié)存放在高地址的字節(jié)單元中。這樣二個(gè)連續(xù)的字節(jié)單元就構(gòu)成了一個(gè)字單元,節(jié)單元中。這樣二個(gè)連續(xù)的字節(jié)單元就構(gòu)成了一個(gè)字單元,字單元的地址采用它的低地址表示。例如,圖中地址字單元的地址采用它的低地址表示。例如,圖中地址1000H的字單元的內(nèi)容是的字單元的內(nèi)容是3433H,而地址為,而地址為200AH單元的內(nèi)容是單元的內(nèi)容是898
27、7H。分別記為:。分別記為:(1000H)=3433H(200AH)=8978H上述存儲(chǔ)原則稱(chēng)為上述存儲(chǔ)原則稱(chēng)為“高高低低高高低低”原則。在以字節(jié)方式存取字原則。在以字節(jié)方式存取字時(shí)需要特別注意該原則,當(dāng)以字方式存取字時(shí),處理器自動(dòng)時(shí)需要特別注意該原則,當(dāng)以字方式存取字時(shí),處理器自動(dòng)采用該原則。采用該原則。2.2.2 存儲(chǔ)器的分段技術(shù)存儲(chǔ)器的分段技術(shù) 8086/8088CPU有有20根地址線,可直接尋址的物理地址空根地址線,可直接尋址的物理地址空間為間為1M字節(jié)字節(jié)(=220)。系統(tǒng)存儲(chǔ)器由以字節(jié)為單位的存儲(chǔ)單元組。系統(tǒng)存儲(chǔ)器由以字節(jié)為單位的存儲(chǔ)單元組成,存儲(chǔ)單元的物理地址由成,存儲(chǔ)單元的物理
28、地址由20位二進(jìn)制數(shù)表示,范圍是位二進(jìn)制數(shù)表示,范圍是00000H至至FFFFFH。而。而8086/8088內(nèi)部的內(nèi)部的ALU每次最多進(jìn)行每次最多進(jìn)行16位運(yùn)算,位運(yùn)算,存放存儲(chǔ)單元地址偏移量的指針寄存器存放存儲(chǔ)單元地址偏移量的指針寄存器(如如IP、SP以及以及BP、SI、DI和和BX)都是都是16位,為了尋址位,為了尋址1M的所有單元,的所有單元,8086/8088通過(guò)通過(guò)對(duì)存儲(chǔ)器采用分段技術(shù)的方法有效地實(shí)現(xiàn)了尋址對(duì)存儲(chǔ)器采用分段技術(shù)的方法有效地實(shí)現(xiàn)了尋址1M字節(jié)物理地字節(jié)物理地址空間。址空間。 所謂分段技術(shù)就是根據(jù)需要把所謂分段技術(shù)就是根據(jù)需要把1M字節(jié)地址空間劃分成若干字節(jié)地址空間劃分成
29、若干邏輯段。每個(gè)邏輯段必須滿(mǎn)足如下兩個(gè)條件:邏輯段。每個(gè)邏輯段必須滿(mǎn)足如下兩個(gè)條件:第一,邏輯段的開(kāi)始地址必須是第一,邏輯段的開(kāi)始地址必須是16的倍數(shù)的倍數(shù) ;第二,邏輯段的最大長(zhǎng)度為第二,邏輯段的最大長(zhǎng)度為64K,最多有,最多有16個(gè)邏輯段。個(gè)邏輯段。按照這兩個(gè)條件,按照這兩個(gè)條件,1M字節(jié)地址空間最多可劃有字節(jié)地址空間最多可劃有64K個(gè)邏輯段的個(gè)邏輯段的起始地址。第一個(gè)條件與段寄存器長(zhǎng)起始地址。第一個(gè)條件與段寄存器長(zhǎng)16位有關(guān);第二個(gè)條件與位有關(guān);第二個(gè)條件與指針寄存器長(zhǎng)指針寄存器長(zhǎng)16位相關(guān)。根據(jù)編程的需要,由計(jì)算機(jī)為每一個(gè)位相關(guān)。根據(jù)編程的需要,由計(jì)算機(jī)為每一個(gè)段規(guī)定一個(gè)起始地址,即該
30、段的首地址,稱(chēng)為段基址。位于段段規(guī)定一個(gè)起始地址,即該段的首地址,稱(chēng)為段基址。位于段起始單元的地址應(yīng)被起始單元的地址應(yīng)被16整除,它的整除,它的20位二進(jìn)制表示的地址的最位二進(jìn)制表示的地址的最低低4位一定為位一定為0,高,高16位地址放在段寄存器中。位地址放在段寄存器中。每個(gè)邏輯段的段內(nèi)地址是連續(xù)的,邏輯段與邏輯段可以相每個(gè)邏輯段的段內(nèi)地址是連續(xù)的,邏輯段與邏輯段可以相連,也可以不相連,還可以部分重疊。一個(gè)程序使用的存儲(chǔ)連,也可以不相連,還可以部分重疊。一個(gè)程序使用的存儲(chǔ)空間可以是一個(gè)邏輯段,也可以是多個(gè)邏輯段??臻g可以是一個(gè)邏輯段,也可以是多個(gè)邏輯段。一般為數(shù)據(jù)段、代碼段、堆棧段和附加段。每
31、個(gè)段的起始一般為數(shù)據(jù)段、代碼段、堆棧段和附加段。每個(gè)段的起始地址地址(段的首地址、段的基本地址、段基址段的首地址、段的基本地址、段基址)放在對(duì)應(yīng)的段寄放在對(duì)應(yīng)的段寄存器存器(DS、CS、SS、ES)中。中。段寄存器段寄存器(DS、SS、ES)的內(nèi)容可以在程序中用數(shù)據(jù)傳送指的內(nèi)容可以在程序中用數(shù)據(jù)傳送指令設(shè)置初值或改變其值,令設(shè)置初值或改變其值,CS的初值不允許用傳送指令賦值,的初值不允許用傳送指令賦值,CS值的改變只能在段間調(diào)用、段間返回、段間轉(zhuǎn)移、中斷值的改變只能在段間調(diào)用、段間返回、段間轉(zhuǎn)移、中斷指令或發(fā)生中斷時(shí)由計(jì)算機(jī)系統(tǒng)改變。指令或發(fā)生中斷時(shí)由計(jì)算機(jī)系統(tǒng)改變。2.2.3 物理地址的形成
32、物理地址的形成由于段的起始地址必須是由于段的起始地址必須是16的倍數(shù),所以的倍數(shù),所以20位段起始地址位段起始地址有如下形式:有如下形式:xxxx xxxx xxxx xxxx 0000(二進(jìn)制二進(jìn)制)用用16進(jìn)制可表示成進(jìn)制可表示成XXXX0(十六進(jìn)制十六進(jìn)制)。我們把。我們把20位段起始位段起始地址的高地址的高16位位XXXX(十六進(jìn)制十六進(jìn)制)稱(chēng)為段基址。顯然,段起始稱(chēng)為段基址。顯然,段起始地址等于段基址乘地址等于段基址乘16(即左移即左移4位位)。要訪問(wèn)的某一個(gè)存儲(chǔ)單。要訪問(wèn)的某一個(gè)存儲(chǔ)單元總是屬于某個(gè)段。我們把存儲(chǔ)單元的地址與所在段的起元總是屬于某個(gè)段。我們把存儲(chǔ)單元的地址與所在段的
33、起始地址的差稱(chēng)為段內(nèi)偏移地址,簡(jiǎn)稱(chēng)偏移地址始地址的差稱(chēng)為段內(nèi)偏移地址,簡(jiǎn)稱(chēng)偏移地址(偏移量偏移量)。在。在一個(gè)段內(nèi),通過(guò)偏移量可指定要訪問(wèn)的存儲(chǔ)單元。在整個(gè)一個(gè)段內(nèi),通過(guò)偏移量可指定要訪問(wèn)的存儲(chǔ)單元。在整個(gè)1M地址空間中,存儲(chǔ)單元的物理地址等于段的起始地址加地址空間中,存儲(chǔ)單元的物理地址等于段的起始地址加上偏移量。于是,存儲(chǔ)單元的邏輯地址由段基址和偏移量上偏移量。于是,存儲(chǔ)單元的邏輯地址由段基址和偏移量?jī)刹糠纸M成,用如下形式表示:兩部分組成,用如下形式表示:邏輯地址邏輯地址=段基址段基址:偏移量偏移量例如:例如:2000H:0080H。根據(jù)邏輯地址可方便地得到存儲(chǔ)單元的物理地址根據(jù)邏輯地址可方
34、便地得到存儲(chǔ)單元的物理地址(實(shí)際地址實(shí)際地址),計(jì)算公式如下:計(jì)算公式如下:物理地址物理地址=段基址段基址16+偏移量偏移量通過(guò)移位和算術(shù)加法可容易地實(shí)現(xiàn)上述公式,通過(guò)移位和算術(shù)加法可容易地實(shí)現(xiàn)上述公式,例例2.1 寫(xiě)出邏輯地址寫(xiě)出邏輯地址2BH:23H和邏輯地址和邏輯地址2CH:13H所對(duì)應(yīng)所對(duì)應(yīng)的物理地址的物理地址 邏輯地址邏輯地址2BH:23H的物理地址為:的物理地址為: 2B0H + 23H = 2D3H 邏輯地址邏輯地址2CH:13H的物理地址為:的物理地址為: 2C0H + 13H = 2D3H指令中不使用物理地址,而是使用邏輯地址。指令中不使用物理地址,而是使用邏輯地址。2.3.
35、1 輸入輸入/輸出輸出(I/O)接口接口主機(jī)與外界交換信息稱(chēng)為輸入輸出主機(jī)與外界交換信息稱(chēng)為輸入輸出(I/O)。主機(jī)與外界的。主機(jī)與外界的信息交換是通過(guò)輸入信息交換是通過(guò)輸入/輸出設(shè)備進(jìn)行的。一般的輸入輸出設(shè)備進(jìn)行的。一般的輸入/輸出設(shè)輸出設(shè)備都是機(jī)械的或機(jī)電相結(jié)合的產(chǎn)物,比如常規(guī)的外設(shè)有鍵備都是機(jī)械的或機(jī)電相結(jié)合的產(chǎn)物,比如常規(guī)的外設(shè)有鍵盤(pán)、顯示器、打印機(jī)、掃描儀、磁盤(pán)機(jī)、鼠標(biāo)器等,它們盤(pán)、顯示器、打印機(jī)、掃描儀、磁盤(pán)機(jī)、鼠標(biāo)器等,它們相對(duì)于高速的中央處理器來(lái)說(shuō),速度要慢得多。此外,不相對(duì)于高速的中央處理器來(lái)說(shuō),速度要慢得多。此外,不同外設(shè)的信號(hào)形式、數(shù)據(jù)格式也各不相同。因此,外部設(shè)同外設(shè)的信號(hào)形式、數(shù)據(jù)格式也各不相同。因此,外部設(shè)備不能與備不能與CPU直接相連,需要通過(guò)相應(yīng)的電路來(lái)完成它們直接相連,需要通過(guò)相應(yīng)的電路來(lái)完成它們之間的速度匹配、信號(hào)轉(zhuǎn)換,并完成某些控制功能。通常之間的速度匹配、信號(hào)轉(zhuǎn)換,并完成某些控制功能。通常把介于主機(jī)和外設(shè)之間的一種緩沖電路稱(chēng)為把介于主機(jī)和外設(shè)之間的一種緩沖電路稱(chēng)為I/O接口電路,接口電路,簡(jiǎn)稱(chēng)簡(jiǎn)稱(chēng)I/O接口接口(Interface)。 2.3.2
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 林業(yè)病蟲(chóng)害防治原理與技術(shù)考核試卷
- 珠海市高三月質(zhì)量監(jiān)測(cè)(二模)數(shù)學(xué)理試題
- 佳木斯職業(yè)學(xué)院《土木工程材料雙語(yǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東省臨沭一中2025屆高考前適應(yīng)性練習(xí)英語(yǔ)試題含解析
- 南京視覺(jué)藝術(shù)職業(yè)學(xué)院《高等代數(shù)上》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇省揚(yáng)州市廣陵區(qū)竹西中學(xué)2025屆初三第一次模擬(5月)生物試題含解析
- 綿陽(yáng)市梓潼縣2024-2025學(xué)年數(shù)學(xué)三下期末檢測(cè)試題含解析
- 邵陽(yáng)學(xué)院《交通工程經(jīng)濟(jì)與管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 偏關(guān)縣2025屆三年級(jí)數(shù)學(xué)第二學(xué)期期末考試模擬試題含解析
- 江蘇省蘇州市第五中學(xué)2024-2025學(xué)年高考語(yǔ)文試題目標(biāo)測(cè)試卷(1)含解析
- 知識(shí)產(chǎn)權(quán)法(四川師范大學(xué))智慧樹(shù)知到答案2024年四川師范大學(xué)
- 2024-2030年中國(guó)羊絨市場(chǎng)銷(xiāo)售格局與未來(lái)發(fā)展動(dòng)向追蹤報(bào)告
- 北京市昌平區(qū)2023-2024學(xué)年高二下學(xué)期期末考試政治試題
- 古代詩(shī)人名人韓愈人物介紹課件
- 建筑用砂石料采購(gòu) 投標(biāo)方案(技術(shù)方案)
- 《1.4莖和葉》說(shuō)課稿、教案、教學(xué)設(shè)計(jì)和同步練習(xí)
- 人教版初中化學(xué)實(shí)驗(yàn)?zāi)夸?總表)
- 國(guó)家開(kāi)放大學(xué)《現(xiàn)代教育原理》形考任務(wù)1-5參考答案
- 監(jiān)控工程驗(yàn)收單-范本模板
- 消防演練中的常見(jiàn)問(wèn)題與應(yīng)對(duì)措施
- 消防設(shè)施安全檢查表
評(píng)論
0/150
提交評(píng)論