




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第三章第三章 微處理器及其系統(tǒng)微處理器及其系統(tǒng)微型計(jì)算機(jī)原理及應(yīng)用微型計(jì)算機(jī)原理及應(yīng)用 主編:主編:李繼燦李繼燦 清華大學(xué)出版社清華大學(xué)出版社 軟件學(xué)院軟件學(xué)院2引言引言微型計(jì)算機(jī)微型計(jì)算機(jī)系統(tǒng)系統(tǒng)硬件系統(tǒng)硬件系統(tǒng)( (微機(jī)微機(jī)) )軟件系統(tǒng)軟件系統(tǒng)微處理器微處理器(CPUCPU)主存儲(chǔ)器主存儲(chǔ)器算術(shù)邏輯部件算術(shù)邏輯部件外設(shè)外設(shè)控制器控制器應(yīng)用軟件應(yīng)用軟件微型計(jì)算機(jī)系統(tǒng)的組成微型計(jì)算機(jī)系統(tǒng)的組成系統(tǒng)軟件系統(tǒng)軟件寄存器寄存器I/OI/O接口接口鍵盤、鼠標(biāo)、顯示器、鍵盤、鼠標(biāo)、顯示器、硬盤、光盤、打印機(jī)等硬盤、光盤、打印機(jī)等 軟件學(xué)院軟件學(xué)院3內(nèi)容提要內(nèi)容提要3.3 存儲(chǔ)器存儲(chǔ)器 3.2 最小最小
2、/最大工作方式最大工作方式 3.1 8086/8088微處理器微處理器3.4 指令系統(tǒng)指令系統(tǒng) 3.5 微處理器微處理器 軟件學(xué)院軟件學(xué)院43.1 80X863.1 80X86微處理器微處理器80X8680X86是是IntelIntel公司生產(chǎn)的微處理器系列。公司生產(chǎn)的微處理器系列。 微處理器:微處理器: 把運(yùn)算器和控制器集成到一個(gè)芯片。把運(yùn)算器和控制器集成到一個(gè)芯片。 微計(jì)算機(jī)系統(tǒng):微計(jì)算機(jī)系統(tǒng): 把微處理器芯片作為中央處理機(jī)(把微處理器芯片作為中央處理機(jī)(CPUCPU),配上存儲(chǔ)器、輸入輸出設(shè)備和系統(tǒng)軟件),配上存儲(chǔ)器、輸入輸出設(shè)備和系統(tǒng)軟件構(gòu)成構(gòu)成微計(jì)算機(jī)系統(tǒng)微計(jì)算機(jī)系統(tǒng)。如:由如:由8
3、038680386微處理器芯片構(gòu)成的微機(jī)稱為微處理器芯片構(gòu)成的微機(jī)稱為386386微機(jī)。微機(jī)。 由由P4P4微處理器芯片構(gòu)成的微機(jī)稱為微處理器芯片構(gòu)成的微機(jī)稱為P4P4微機(jī)微機(jī)。 軟件學(xué)院軟件學(xué)院53.1.0 Intel3.1.0 Intel微處理器發(fā)展概述微處理器發(fā)展概述 1968 年,羅伯特年,羅伯特諾伊斯(諾伊斯(Robert Noyce)、)、戈登戈登摩爾(摩爾(Gordon Moore)和安迪)和安迪格魯夫格魯夫(Andy Grove)在硅谷共同創(chuàng)立了英特爾公)在硅谷共同創(chuàng)立了英特爾公司。司。Only the Paranoid Survive!-Andy Grove了解了解 軟件學(xué)院
4、軟件學(xué)院63.1.0 Intel3.1.0 Intel微處理器發(fā)展概述微處理器發(fā)展概述 1. 1. 第第1 1代微處理器代微處理器 Intel4004/40404Intel4004/40404位微處理器位微處理器(1971)(1971)Intel8008 Intel8008 低檔低檔8 8位微處理器位微處理器(1972)(1972)2. 2. 第第2 2代微處理器代微處理器 Intel8080/8085 8Intel8080/8085 8位微處理器位微處理器(1974)(1974)指令比較完善,有了中斷與指令比較完善,有了中斷與DMADMA匯編、匯編、BASICBASIC、FORTRANFOR
5、TRANIntel 4004Intel 8085了解了解 軟件學(xué)院軟件學(xué)院73. 3. 第第3 3代微處理器代微處理器 Intel808616Intel808616位微處理器位微處理器(1978)(1978)Intel8088 Intel8088 準(zhǔn)準(zhǔn)1616位微處理器位微處理器(1979)(1979)Intel80286 Intel80286 高檔高檔1616位微處理器位微處理器(1982)(1982) 3.1.0 Intel3.1.0 Intel微處理器發(fā)展概述微處理器發(fā)展概述 了解了解 軟件學(xué)院軟件學(xué)院83.1.0 Intel3.1.0 Intel微處理器發(fā)展概述微處理器發(fā)展概述了解了解
6、 軟件學(xué)院軟件學(xué)院9IntelIntel公司生產(chǎn)的公司生產(chǎn)的80 x8680 x86:推出推出 年代年代 CPU 芯片芯片 寄存器寄存器 位位 數(shù)數(shù) 數(shù)據(jù)線數(shù)據(jù)線 寬寬 度度 地址線地址線 寬寬 度度 最大主頻最大主頻 MHz 尋址空間尋址空間 (B) 高速緩存高速緩存 1971 4004 4 4 8 0.1 256 無無 1972 8008 8 8 14 0.2 16KB 無無 1974 8080 8 8 16 2 64KB 無無 1978 8086 16 16 20 10 1MB 無無 1979 8088 16 8 20 8 1MB 無無 1982 80286 16 16 24 16 16
7、MB 無無 1986 80386 32 32 32 33 4GB 有有 1989 80486 32 32 32 66 4GB 8KB 1993 Pentium 32 64 32 100 4GB 8KB 數(shù)據(jù)數(shù)據(jù)+8KB 指令指令 1995 Pentium Pro 32 64 36 200 64GB 8KB 數(shù)據(jù)數(shù)據(jù) +8KB 指令指令256KB二級(jí)高速緩存二級(jí)高速緩存 1997 Pentium II 32 64 36 450 64GB 32KB一級(jí)一級(jí)+512KB二級(jí)二級(jí) 1999 Pentium III 32 64 36 1000 64GB 32KB一級(jí)一級(jí)+512KB二級(jí)二級(jí) 2000 P
8、entium4 32 64 64 3600 224TB 128KB一級(jí)一級(jí)512KB二級(jí)二級(jí) 2005 Pentium4 EE 64 64 64 ? 224T B 三級(jí)高速緩存三級(jí)高速緩存 軟件學(xué)院軟件學(xué)院103.1.13.1.1內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)1.1.算術(shù)邏輯部件算術(shù)邏輯部件ALUALU:執(zhí)行算術(shù)和邏輯運(yùn)算。執(zhí)行算術(shù)和邏輯運(yùn)算。2.2.控制器:控制器:負(fù)責(zé)對(duì)全機(jī)的控制。負(fù)責(zé)對(duì)全機(jī)的控制。3.3.寄存器寄存器: : 處理器中臨時(shí)存儲(chǔ)數(shù)據(jù)的基本邏輯部件。處理器中臨時(shí)存儲(chǔ)數(shù)據(jù)的基本邏輯部件。lCPUCPU的任務(wù)的任務(wù): : 執(zhí)行存放在存儲(chǔ)器中的指令序列執(zhí)行存放在存儲(chǔ)器中的指令序列l(wèi)CPUCPU的組
9、成的組成: : 運(yùn)算器運(yùn)算器+ +控制器控制器+ +高速緩存(高速緩存(386386開始)開始)lCPUCPU功能功能: : 取指令取指令 - - 分析指令分析指令 - - 執(zhí)行指令執(zhí)行指令 軟件學(xué)院軟件學(xué)院11中央處理機(jī)中央處理機(jī)CPUCPU的物理組成的物理組成8086/80888086/8088由兩部分組成由兩部分組成總線接口單元總線接口單元BIUBIU功能:取指令、取操作數(shù)、保存結(jié)果功能:取指令、取操作數(shù)、保存結(jié)果執(zhí)行單元執(zhí)行單元EUEU功能:執(zhí)行指令功能:執(zhí)行指令 總線接口單元總線接口單元地址總線地址總線數(shù)據(jù)總線數(shù)據(jù)總線系統(tǒng)系統(tǒng)總線總線主存儲(chǔ)器主存儲(chǔ)器控制總線控制總線I/O接口接口I/
10、O接口接口I/O設(shè)備設(shè)備I/O設(shè)備設(shè)備 執(zhí)行單元執(zhí)行單元 CPU 軟件學(xué)院軟件學(xué)院12內(nèi)部暫存器內(nèi)部暫存器 IP ES SS DS CS輸入輸入/ /輸出輸出控制電路控制電路外部總線外部總線執(zhí)行部分執(zhí)行部分控制電路控制電路1 2 3 4 5 6ALU標(biāo)志寄存器標(biāo)志寄存器 AH AL BH BLCH CL DH DL BP SI DI SP地址加法器地址加法器指令隊(duì)列緩沖器指令隊(duì)列緩沖器執(zhí)行部件(執(zhí)行部件(EU)EU)總線接口部件(總線接口部件(BIU)BIU)16位位20位位16位位Intel Intel 80868086處理器的內(nèi)部結(jié)構(gòu)框圖處理器的內(nèi)部結(jié)構(gòu)框圖1616位內(nèi)部數(shù)據(jù)總線位內(nèi)部數(shù)據(jù)
11、總線20位位地地址址線線8位位DBAB 軟件學(xué)院軟件學(xué)院13( (一一) )總線接口單元總線接口單元BIUBIU 總線接口單元總線接口單元BIUBIU的功能是負(fù)責(zé)完成的功能是負(fù)責(zé)完成CPUCPU與存與存儲(chǔ)器或儲(chǔ)器或I IO O設(shè)備之間的數(shù)據(jù)傳送。其具體任務(wù)是設(shè)備之間的數(shù)據(jù)傳送。其具體任務(wù)是:BIUBIU要從內(nèi)存取指令送到指令隊(duì)列緩沖器;要從內(nèi)存取指令送到指令隊(duì)列緩沖器;CPUCPU執(zhí)行指令時(shí),總線接口單元要配合執(zhí)行單元從指執(zhí)行指令時(shí),總線接口單元要配合執(zhí)行單元從指定的內(nèi)存單元或者外設(shè)端口中取數(shù)據(jù),將數(shù)據(jù)傳定的內(nèi)存單元或者外設(shè)端口中取數(shù)據(jù),將數(shù)據(jù)傳送給執(zhí)行單元,或者把執(zhí)行單元的操作結(jié)果傳送送給執(zhí)
12、行單元,或者把執(zhí)行單元的操作結(jié)果傳送到指定的內(nèi)存單元或外設(shè)端口中。到指定的內(nèi)存單元或外設(shè)端口中。 BIU BIU內(nèi)有內(nèi)有4 4個(gè)個(gè)1616位段地址寄存器位段地址寄存器CS(CS(代碼段寄代碼段寄存器存器) )、DS(DS(數(shù)據(jù)段寄存器數(shù)據(jù)段寄存器) )、SS(SS(堆棧段寄存器堆棧段寄存器) )和和ES(ES(附加段寄存器附加段寄存器) ),1616位指令指針位指令指針I(yè)PIP,6 6字節(jié)指令字節(jié)指令隊(duì)列緩沖器,隊(duì)列緩沖器,2020位地址加法器和總線控制電路。位地址加法器和總線控制電路。 軟件學(xué)院軟件學(xué)院14 1.1.指令隊(duì)列緩沖器指令隊(duì)列緩沖器: 80868086的指令隊(duì)列為的指令隊(duì)列為6
13、6個(gè)字節(jié),而個(gè)字節(jié),而80888088的指令隊(duì)列的指令隊(duì)列為為4 4個(gè)字節(jié)。在執(zhí)行指令的同時(shí),從內(nèi)存中取下面?zhèn)€字節(jié)。在執(zhí)行指令的同時(shí),從內(nèi)存中取下面1 1條或幾條指令,取來的指令依次放在指令隊(duì)列中。條或幾條指令,取來的指令依次放在指令隊(duì)列中?!跋冗M(jìn)先出先進(jìn)先出”的原則:的原則: (1) (1) 取指時(shí)當(dāng)指令隊(duì)列緩沖器中存滿取指時(shí)當(dāng)指令隊(duì)列緩沖器中存滿1 1條指令后,條指令后,EUEU執(zhí)行。執(zhí)行。 (2) (2) 指令隊(duì)列緩沖器中只要空出指令隊(duì)列緩沖器中只要空出2 2個(gè)個(gè)( (對(duì)對(duì)8086)8086)或空出或空出1 1個(gè)個(gè)( (對(duì)對(duì)8088)8088)指令字節(jié)時(shí),指令字節(jié)時(shí),BIUBIU自動(dòng)執(zhí)行
14、取指操作,自動(dòng)執(zhí)行取指操作,直到填滿。直到填滿。 軟件學(xué)院軟件學(xué)院15(3)(3)在在EUEU執(zhí)行指令的過程中,指令需要對(duì)存儲(chǔ)器或執(zhí)行指令的過程中,指令需要對(duì)存儲(chǔ)器或I IO O設(shè)備存取數(shù)據(jù)時(shí),設(shè)備存取數(shù)據(jù)時(shí),BIUBIU將在執(zhí)行完現(xiàn)行取指的存儲(chǔ)將在執(zhí)行完現(xiàn)行取指的存儲(chǔ)器周期后的下一個(gè)存儲(chǔ)器周期,對(duì)指定的內(nèi)存單元器周期后的下一個(gè)存儲(chǔ)器周期,對(duì)指定的內(nèi)存單元或或I IO O設(shè)備進(jìn)行存取操作設(shè)備進(jìn)行存取操作, ,交換的數(shù)據(jù)經(jīng)交換的數(shù)據(jù)經(jīng)BIUBIU由由EUEU進(jìn)進(jìn)行處理。行處理。(4)(4)當(dāng)當(dāng)EUEU執(zhí)行完轉(zhuǎn)移、調(diào)用和返回指令時(shí),則要清除執(zhí)行完轉(zhuǎn)移、調(diào)用和返回指令時(shí),則要清除指令隊(duì)列緩沖器,并要
15、求指令隊(duì)列緩沖器,并要求BIUBIU從新的地址重新開始從新的地址重新開始取指令,新取的第取指令,新取的第1 1條指令將直接經(jīng)指令隊(duì)列送到條指令將直接經(jīng)指令隊(duì)列送到EUEU去執(zhí)行,隨后取來的指令將填入指令隊(duì)列緩沖器去執(zhí)行,隨后取來的指令將填入指令隊(duì)列緩沖器。 軟件學(xué)院軟件學(xué)院162.2.地址加法器和段寄存器:地址加法器和段寄存器:80868086有有2020根地址線,內(nèi)部寄存器有根地址線,內(nèi)部寄存器有1616位,采位,采用了用了1616位的段寄存器與位的段寄存器與1616位的偏移地址即位的偏移地址即“段加段加偏移偏移”的技術(shù)。的技術(shù)。利用各段寄存器分別來存放確定各段的起始利用各段寄存器分別來存放
16、確定各段的起始地址的地址的1616位段地址信息,而由位段地址信息,而由IPIP提供或由提供或由EUEU按尋按尋址方式計(jì)算出尋址單元的址方式計(jì)算出尋址單元的1616位偏移地址位偏移地址( (又稱為邏又稱為邏輯地址或簡(jiǎn)稱為偏移量輯地址或簡(jiǎn)稱為偏移量) ),然后,將它與左移,然后,將它與左移4 4位位后的段寄存器的內(nèi)容同時(shí)送到地址加法器進(jìn)行相后的段寄存器的內(nèi)容同時(shí)送到地址加法器進(jìn)行相加,最后形成一個(gè)加,最后形成一個(gè)2020位的實(shí)際地址位的實(shí)際地址( (又稱為物理地又稱為物理地址址) ),以對(duì)存儲(chǔ)單元尋址。,以對(duì)存儲(chǔ)單元尋址。 軟件學(xué)院軟件學(xué)院173.3.1616位指令指針位指令指針I(yè)PIP(Inst
17、ruction Pointer)(Instruction Pointer) 其功能與其功能與8 8位位CPUCPU中的中的PCPC類類似。正常運(yùn)行時(shí)似。正常運(yùn)行時(shí),IP,IP中含有中含有BIUBIU要取的下要取的下1 1條指令條指令( (字節(jié)字節(jié)) ) 的偏的偏移地址。移地址。IPIP在程序運(yùn)行中能自在程序運(yùn)行中能自動(dòng)加動(dòng)加1 1修正修正, ,使之指向要執(zhí)行的使之指向要執(zhí)行的下下1 1條指令條指令( (字節(jié)字節(jié)) ) 。有些指令。有些指令能使能使IPIP值改變或使值改變或使IPIP值壓進(jìn)堆值壓進(jìn)堆棧,或由堆棧彈出恢復(fù)原值。棧,或由堆棧彈出恢復(fù)原值。 軟件學(xué)院軟件學(xué)院18 執(zhí)行單元執(zhí)行單元EUE
18、U并不與系統(tǒng)的總線控制電并不與系統(tǒng)的總線控制電路直接相連路直接相連, ,這使得它能與總線接口單元之這使得它能與總線接口單元之間保持既相互聯(lián)系又相互獨(dú)立的關(guān)系。間保持既相互聯(lián)系又相互獨(dú)立的關(guān)系。 功能只是負(fù)責(zé)執(zhí)行指令;執(zhí)行的指令從功能只是負(fù)責(zé)執(zhí)行指令;執(zhí)行的指令從BIUBIU的指令隊(duì)列緩沖器中取得,執(zhí)行指令的的指令隊(duì)列緩沖器中取得,執(zhí)行指令的結(jié)果或執(zhí)行指令所需要的數(shù)據(jù),都由結(jié)果或執(zhí)行指令所需要的數(shù)據(jù),都由EUEU向向BIUBIU發(fā)出請(qǐng)求,再由發(fā)出請(qǐng)求,再由BIUBIU經(jīng)總線控制電路對(duì)經(jīng)總線控制電路對(duì)存儲(chǔ)器或外設(shè)存取。存儲(chǔ)器或外設(shè)存取。EUEU由下列部分組成。由下列部分組成。( (二二) )執(zhí)行單
19、元執(zhí)行單元EUEU 軟件學(xué)院軟件學(xué)院191. 161. 16位算術(shù)邏輯單元位算術(shù)邏輯單元(ALU)(ALU): 它可以用于進(jìn)行算術(shù)、邏輯運(yùn)算,也可以按它可以用于進(jìn)行算術(shù)、邏輯運(yùn)算,也可以按指令的尋址方式計(jì)算出尋址單元的指令的尋址方式計(jì)算出尋址單元的1616位偏移量。位偏移量。2. 162. 16位標(biāo)志寄存器位標(biāo)志寄存器F F: 它用來反映它用來反映CPUCPU運(yùn)算的狀態(tài)特征或存放控制標(biāo)運(yùn)算的狀態(tài)特征或存放控制標(biāo)志。志。3. 3. 數(shù)據(jù)暫存寄存器:數(shù)據(jù)暫存寄存器: 它協(xié)助它協(xié)助ALUALU完成運(yùn)算,暫存參加運(yùn)算的數(shù)據(jù)。完成運(yùn)算,暫存參加運(yùn)算的數(shù)據(jù)。4. 4. 通用寄存器組:通用寄存器組: 它包括
20、它包括4 4個(gè)個(gè)1616位數(shù)據(jù)寄存器位數(shù)據(jù)寄存器AXAX、BXBX、CXCX、DXDX和和4 4個(gè)個(gè)1616位指針與變址寄存器位指針與變址寄存器SPSP、BPBP與與SISI、DIDI。 軟件學(xué)院軟件學(xué)院205. EU5. EU控制電路:控制電路: 它是控制、定時(shí)與狀態(tài)邏輯電路,接收從它是控制、定時(shí)與狀態(tài)邏輯電路,接收從BIUBIU中指令隊(duì)列取來的指令中指令隊(duì)列取來的指令, ,經(jīng)過指令譯碼形成各種定經(jīng)過指令譯碼形成各種定時(shí)控制信號(hào),對(duì)時(shí)控制信號(hào),對(duì)EUEU的各個(gè)部件實(shí)現(xiàn)特定的定時(shí)操的各個(gè)部件實(shí)現(xiàn)特定的定時(shí)操作。作。EUEU中所有的寄存器和數(shù)據(jù)通道中所有的寄存器和數(shù)據(jù)通道( (除隊(duì)列總線為除隊(duì)列
21、總線為8 8位外位外) )都是都是1616位的寬度,可實(shí)現(xiàn)數(shù)據(jù)的快速傳送。位的寬度,可實(shí)現(xiàn)數(shù)據(jù)的快速傳送。8088CPU8088CPU內(nèi)部結(jié)構(gòu)與內(nèi)部結(jié)構(gòu)與80868086的基本相似,只是的基本相似,只是8088BIU8088BIU中指令隊(duì)列長度為中指令隊(duì)列長度為4 4個(gè)字節(jié);個(gè)字節(jié);8088BIU8088BIU通過總通過總線控制電路與外部交換數(shù)據(jù)的總線寬度是線控制電路與外部交換數(shù)據(jù)的總線寬度是8 8位,總位,總線控制電路與專用寄存器組之間的數(shù)據(jù)總線寬度線控制電路與專用寄存器組之間的數(shù)據(jù)總線寬度也是也是8 8位。位。 軟件學(xué)院軟件學(xué)院213.1.2 80X863.1.2 80X86的寄存器結(jié)構(gòu)的
22、寄存器結(jié)構(gòu)( (重點(diǎn)重點(diǎn)) )可見寄存器可見寄存器應(yīng)用程序中由指令進(jìn)行訪問的寄存器。應(yīng)用程序中由指令進(jìn)行訪問的寄存器。通用寄存器:通用寄存器:8 8個(gè)個(gè)段寄存器:段寄存器:4 4個(gè)個(gè)專用寄存器:專用寄存器:2 2個(gè)個(gè) 軟件學(xué)院軟件學(xué)院228086/80888086/8088內(nèi)部寄存器內(nèi)部寄存器 AHAX AL 累加寄存器累加寄存器 BHBX BL 基址寄存器基址寄存器 CHCX CL 計(jì)數(shù)寄存器計(jì)數(shù)寄存器 DHDX DL 數(shù)據(jù)寄存器數(shù)據(jù)寄存器 SP堆棧指針寄存器堆棧指針寄存器 BP基址指針寄存器基址指針寄存器 SI源變址寄存器源變址寄存器 DI目的變址寄存器目的變址寄存器8個(gè)個(gè)16位位通通用用
23、寄寄存存器器4個(gè)個(gè)16位位段寄段寄存器存器CS代碼段寄存器代碼段寄存器 DS數(shù)據(jù)段寄存器數(shù)據(jù)段寄存器SS堆棧段寄存器堆棧段寄存器 ES附加段寄存器附加段寄存器2個(gè)個(gè)16位位控制控制寄存寄存器器IP指令指針寄存器指令指針寄存器 FR標(biāo)志寄存器標(biāo)志寄存器按照功能分類,將按照功能分類,將1414個(gè)內(nèi)部寄存器分為三組個(gè)內(nèi)部寄存器分為三組數(shù)數(shù)據(jù)據(jù)寄寄存存器器掌握掌握 軟件學(xué)院軟件學(xué)院231. 1. 通用寄存器通用寄存器 AX(accumulator)AX(accumulator)累加器累加器:算術(shù)運(yùn)算,乘除指令中指定:算術(shù)運(yùn)算,乘除指令中指定存放操作數(shù),存放操作數(shù),I/OI/O指令使用指令使用AXAX與
24、外設(shè)傳送信息與外設(shè)傳送信息 BX(base)BX(base)基址寄存器:基址寄存器:除通用外,計(jì)算存儲(chǔ)器地址時(shí),除通用外,計(jì)算存儲(chǔ)器地址時(shí),用作基址寄存器用作基址寄存器 CX(count)CX(count)計(jì)數(shù)器:計(jì)數(shù)器:除通用外,保存計(jì)數(shù)除通用外,保存計(jì)數(shù)( (移位、循環(huán)等移位、循環(huán)等指令中的計(jì)數(shù)器指令中的計(jì)數(shù)器) ) DX(data)DX(data)數(shù)據(jù)寄存器:數(shù)據(jù)寄存器:除通用外,在雙字長運(yùn)算中,除通用外,在雙字長運(yùn)算中,DXDX和和AXAX組合保存雙字長數(shù),組合保存雙字長數(shù),DXDX存放高存放高1616位;或存放外設(shè)端位;或存放外設(shè)端口地址口地址 特點(diǎn):特點(diǎn):可作可作1616位寄存器使
25、用,也可拆成位寄存器使用,也可拆成2 2個(gè)獨(dú)立的個(gè)獨(dú)立的8 8位寄存器位寄存器具有良好的通用性:在程序中即可存放操作數(shù),也可具有良好的通用性:在程序中即可存放操作數(shù),也可存放操作結(jié)果存放操作結(jié)果(1) 數(shù)據(jù)寄存器數(shù)據(jù)寄存器掌握掌握 軟件學(xué)院軟件學(xué)院24 數(shù)據(jù)寄存器舉例數(shù)據(jù)寄存器舉例例如:例如: 在指令中指明使用在指令中指明使用 ADD AXADD AX,BXBX MOV BL MOV BL,ALAL例如:例如: 在指令中特定使用在指令中特定使用CLCL SHL AX SHL AX,CL; CL; 邏輯左移邏輯左移(CL)(CL)位位例如:例如: 在指令中隱含使用在指令中隱含使用ALAL MUL
26、 BL MUL BL;無符號(hào)乘法;無符號(hào)乘法;(AX)=(AL);(AX)=(AL)(BL)(BL) 軟件學(xué)院軟件學(xué)院25(2) (2) 指針及變址寄存器指針及變址寄存器 變址寄存器:變址寄存器:存儲(chǔ)器尋址時(shí),與數(shù)據(jù)段寄存器聯(lián)用,提存儲(chǔ)器尋址時(shí),與數(shù)據(jù)段寄存器聯(lián)用,提供偏移地址;只能以字的形式訪問。供偏移地址;只能以字的形式訪問。SISI(Source Index) (Source Index) 源變址寄存器源變址寄存器DIDI(Destination Index) (Destination Index) 目的變址寄存器目的變址寄存器 指針寄存器指針寄存器: :SPSP(Stack Point
27、)(Stack Point)堆棧指針寄存器,存放堆棧段中棧頂單堆棧指針寄存器,存放堆棧段中棧頂單元的偏移量元的偏移量BPBP(Base Point)(Base Point)基址指針寄存器,存放堆棧段中某個(gè)單元基址指針寄存器,存放堆棧段中某個(gè)單元的全部的全部/ /部分偏移量,也可存放部分偏移量,也可存放1616位操作數(shù)或結(jié)果位操作數(shù)或結(jié)果. . 也可用于存放操作數(shù),但只能作為也可用于存放操作數(shù),但只能作為1616位位R R使用使用掌握掌握 軟件學(xué)院軟件學(xué)院263.1.2.2 3.1.2.2 段寄存器段寄存器CSCS:代碼段寄存器:代碼段寄存器對(duì)應(yīng)的段存放指令代碼對(duì)應(yīng)的段存放指令代碼DSDS:數(shù)據(jù)
28、段寄存器:數(shù)據(jù)段寄存器對(duì)應(yīng)的段存放數(shù)據(jù)或變量對(duì)應(yīng)的段存放數(shù)據(jù)或變量SSSS:堆棧段寄存器:堆棧段寄存器對(duì)應(yīng)的段存放棧操作的數(shù)據(jù)對(duì)應(yīng)的段存放棧操作的數(shù)據(jù)ESES:附加段寄存器:附加段寄存器對(duì)應(yīng)的段存放數(shù)據(jù)或變量對(duì)應(yīng)的段存放數(shù)據(jù)或變量w存儲(chǔ)器是按段進(jìn)行組織的,段寄存器就是用存儲(chǔ)器是按段進(jìn)行組織的,段寄存器就是用來存放段基值的(段起始地址的高來存放段基值的(段起始地址的高1616位)。位)。掌握掌握 軟件學(xué)院軟件學(xué)院27需執(zhí)行的程序通常分為需執(zhí)行的程序通常分為4個(gè)段:個(gè)段:代碼段代碼段、數(shù)據(jù)段數(shù)據(jù)段、堆棧段堆棧段、附加段附加段00000代碼段代碼段FFFFF HCSDSSSES1616位段寄存器位段
29、寄存器代碼段寄存器代碼段寄存器數(shù)據(jù)段寄存器數(shù)據(jù)段寄存器堆棧段寄存器堆棧段寄存器附加段寄存器附加段寄存器注意:段寄存器的功能不能互換!注意:段寄存器的功能不能互換!數(shù)據(jù)段數(shù)據(jù)段堆棧段堆棧段段基址段基址段基址段基址段基址段基址段基址段基址附加段附加段 軟件學(xué)院軟件學(xué)院283 3. .1 1.2.2.3 3 專用寄存器專用寄存器 8086/8088/802868086/8088/80286: 1616位寄存器位寄存器l指令指針寄存器指令指針寄存器IPIPl標(biāo)志寄存器標(biāo)志寄存器F F8038680386及其后繼機(jī)型(了解)及其后繼機(jī)型(了解) 3232位寄存器位寄存器l指令指針寄存器指令指針寄存器EI
30、PEIPl標(biāo)志寄存器標(biāo)志寄存器EFLAGESEFLAGES 軟件學(xué)院軟件學(xué)院29 軟件學(xué)院軟件學(xué)院303 3. .1 1.2.2.3 3 專用寄存器專用寄存器IPIP或或EIPEIP IP (Instruction Pointer)IP (Instruction Pointer)指令指針寄存器指令指針寄存器IP IP n指示代碼段中指令的偏移地址指示代碼段中指令的偏移地址n它與代碼段寄存器它與代碼段寄存器CSCS聯(lián)用,確定下一條指令的物理地址聯(lián)用,確定下一條指令的物理地址物理地址物理地址=(CS)=(CS)16D + (IP)16D + (IP)n計(jì)算機(jī)通過計(jì)算機(jī)通過 CS:IP CS:IP
31、寄存器來控制指令序列的執(zhí)行流程寄存器來控制指令序列的執(zhí)行流程n不能對(duì)不能對(duì)IPIP指針直接進(jìn)行訪問指針直接進(jìn)行訪問CSIP0000CPU+00000HFFFFFH代碼段段基址代碼段段基址偏移量偏移量IP0101001000010010正在執(zhí)行的指令正在執(zhí)行的指令下一條指令下一條指令掌握掌握 軟件學(xué)院軟件學(xué)院313.1.2.3 3.1.2.3 專用寄存器專用寄存器標(biāo)志寄存器標(biāo)志寄存器F F標(biāo)志標(biāo)志(FlagFlag)用于反映)用于反映指令執(zhí)行結(jié)果的情況指令執(zhí)行結(jié)果的情況或或控制指令的執(zhí)行控制指令的執(zhí)行方式方式又稱又稱程序狀態(tài)字寄存器程序狀態(tài)字寄存器(program status word,PSW
32、)program status word,PSW)。 軟件學(xué)院軟件學(xué)院32(1 1)條件(狀態(tài))標(biāo)志)條件(狀態(tài))標(biāo)志記錄程序運(yùn)行結(jié)果的狀態(tài)信息。主要包含:記錄程序運(yùn)行結(jié)果的狀態(tài)信息。主要包含:符號(hào)標(biāo)志符號(hào)標(biāo)志SF SF 零標(biāo)志零標(biāo)志ZFZF輔助進(jìn)位輔助進(jìn)位AF AF 奇偶標(biāo)志奇偶標(biāo)志PFPF進(jìn)位標(biāo)志進(jìn)位標(biāo)志CF CF 溢出標(biāo)志溢出標(biāo)志OFOF(2 2)控制標(biāo)志)控制標(biāo)志 方向標(biāo)志方向標(biāo)志DFDF:用于串處理指令:用于串處理指令(3 3)系統(tǒng)標(biāo)志)系統(tǒng)標(biāo)志 中斷允許標(biāo)志中斷允許標(biāo)志IFIF:IF=1,CPUIF=1,CPU允許中斷,否則關(guān)閉中斷允許中斷,否則關(guān)閉中斷 陷阱陷阱( (或跟蹤或跟蹤
33、) )標(biāo)志標(biāo)志TFTF:TF=1TF=1,機(jī)器進(jìn)入單步工作方式;,機(jī)器進(jìn)入單步工作方式; TF=0TF=0,機(jī)器處于連續(xù)工作方式,機(jī)器處于連續(xù)工作方式3.1.2.3 3.1.2.3 標(biāo)志寄存器標(biāo)志寄存器 OF DF IF TF SF ZF AF PF CF掌握掌握 軟件學(xué)院軟件學(xué)院33例例 某某CPU內(nèi)含內(nèi)含 8位運(yùn)算器位運(yùn)算器,則:,則:參加運(yùn)算的數(shù)及結(jié)果均以參加運(yùn)算的數(shù)及結(jié)果均以 8位位 表示表示, ,最高位產(chǎn)生的進(jìn)位或借位在最高位產(chǎn)生的進(jìn)位或借位在8位運(yùn)算器位運(yùn)算器中不保存,中不保存,而將其保存到而將其保存到標(biāo)志寄存器標(biāo)志寄存器中。中。 1 0 1 1 0 1 0 1 被加數(shù)被加數(shù)8位位
34、 + + 1 0 0 0 1 1 1 1 加數(shù)加數(shù)8位位進(jìn)位進(jìn)位 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 和和8位位PSW標(biāo)志寄存器標(biāo)志寄存器運(yùn)運(yùn)算算器器標(biāo)志標(biāo)志寄存器寄存器運(yùn)運(yùn)算算器器被加數(shù)被加數(shù)加數(shù)加數(shù)和和進(jìn)位進(jìn)位掌握掌握 軟件學(xué)院軟件學(xué)院34l進(jìn)位標(biāo)志進(jìn)位標(biāo)志CFCF(Carry FlagCarry Flag)記錄運(yùn)算時(shí)從記錄運(yùn)算時(shí)從最高有效位最高有效位( (字節(jié)第字節(jié)第7 7位,字第位,字第1515位位) )產(chǎn)生產(chǎn)生的進(jìn)的進(jìn)/ /借位值借位值例如:執(zhí)行指令:例如:執(zhí)行指令:ADD AL,ADD AL,BLBL3AH + 7CH3AH + 7CHB6HB6H,沒有進(jìn)位
35、:,沒有進(jìn)位:CF = 0CF = 0AAH + 7CHAAH + 7CH(1 1)26H26H,有進(jìn)位:,有進(jìn)位:CF = 1CF = 10NC沒有產(chǎn)生進(jìn)沒有產(chǎn)生進(jìn)/借位借位1CY有進(jìn)有進(jìn)/借位產(chǎn)生借位產(chǎn)生CF= OF DF IF TF SF ZF AF PF CF掌握掌握 軟件學(xué)院軟件學(xué)院35l溢出標(biāo)志溢出標(biāo)志OFOF(Overflow FlagOverflow Flag)算術(shù)運(yùn)算中,帶符號(hào)數(shù)的運(yùn)算結(jié)果超出了算術(shù)運(yùn)算中,帶符號(hào)數(shù)的運(yùn)算結(jié)果超出了8 8位或位或1616位帶符位帶符號(hào)數(shù)能表達(dá)的范圍,則號(hào)數(shù)能表達(dá)的范圍,則OF=1OF=1,否則,否則OF=0OF=0。8 8位(字節(jié))運(yùn)算位(字節(jié)
36、)運(yùn)算 -128 +127-128 +1271616位(字)位(字) 運(yùn)算運(yùn)算 -32768 +32767-32768 +32767即即: :表明補(bǔ)碼的運(yùn)算結(jié)果是否有溢出表明補(bǔ)碼的運(yùn)算結(jié)果是否有溢出0NV 沒有溢出沒有溢出1OV 溢出溢出OF=OF=例:例:執(zhí)行指令:執(zhí)行指令: ADD AL,ADD AL,BLBL3AH + 7CH3AH + 7CHB6HB6H,產(chǎn)生溢出:,產(chǎn)生溢出:OF = 1OF = 1AAH + 7CHAAH + 7CH(1 1)26H26H,沒有溢出:,沒有溢出:OF = 0OF = 0掌握掌握 軟件學(xué)院軟件學(xué)院36l溢出和進(jìn)位的比較溢出和進(jìn)位的比較 溢出標(biāo)志溢出標(biāo)志
37、OFOF和進(jìn)位標(biāo)志和進(jìn)位標(biāo)志CFCF是兩個(gè)意義不同的標(biāo)志是兩個(gè)意義不同的標(biāo)志 進(jìn)位標(biāo)志表示進(jìn)位標(biāo)志表示無符號(hào)數(shù)運(yùn)算無符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果仍然正確;結(jié)果仍然正確; 溢出標(biāo)志表示溢出標(biāo)志表示有符號(hào)數(shù)運(yùn)算有符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,如溢結(jié)果是否超出范圍,如溢出,運(yùn)算結(jié)果已經(jīng)不正確。出,運(yùn)算結(jié)果已經(jīng)不正確。掌握掌握 軟件學(xué)院軟件學(xué)院37l如何運(yùn)用溢出和進(jìn)位如何運(yùn)用溢出和進(jìn)位處理器對(duì)兩個(gè)操作數(shù)進(jìn)行運(yùn)算時(shí),按照無符號(hào)數(shù)求得結(jié)果處理器對(duì)兩個(gè)操作數(shù)進(jìn)行運(yùn)算時(shí),按照無符號(hào)數(shù)求得結(jié)果,并相應(yīng)設(shè)置進(jìn)位標(biāo)志,并相應(yīng)設(shè)置進(jìn)位標(biāo)志CFCF;同時(shí),根據(jù)是否超出有符號(hào)數(shù);同時(shí),根據(jù)是否
38、超出有符號(hào)數(shù)的范圍設(shè)置溢出標(biāo)志的范圍設(shè)置溢出標(biāo)志OFOF。( (規(guī)則規(guī)則1)1)當(dāng)同號(hào)操作數(shù)相加并且結(jié)果符號(hào)與加數(shù)相反時(shí),當(dāng)同號(hào)操作數(shù)相加并且結(jié)果符號(hào)與加數(shù)相反時(shí),OF=1OF=1正正+ +正正= =負(fù)負(fù) 負(fù)負(fù)+ +負(fù)負(fù)= =正正當(dāng)同號(hào)操作數(shù)相減時(shí),當(dāng)同號(hào)操作數(shù)相減時(shí),OF=0OF=0當(dāng)異號(hào)操作數(shù)數(shù)相加時(shí),當(dāng)異號(hào)操作數(shù)數(shù)相加時(shí),OF=0OF=0當(dāng)異號(hào)操作數(shù)相減時(shí),可看作同號(hào)操作數(shù)相加,根據(jù)規(guī)則當(dāng)異號(hào)操作數(shù)相減時(shí),可看作同號(hào)操作數(shù)相加,根據(jù)規(guī)則1 1判斷判斷應(yīng)該利用哪個(gè)標(biāo)志,則由程序員來決定。應(yīng)該利用哪個(gè)標(biāo)志,則由程序員來決定。操作數(shù)是無符號(hào)數(shù),應(yīng)該關(guān)心進(jìn)位標(biāo)志操作數(shù)是無符號(hào)數(shù),應(yīng)該關(guān)心進(jìn)位標(biāo)志
39、CFCF;操作數(shù)是有符號(hào)數(shù),要注意溢出標(biāo)志操作數(shù)是有符號(hào)數(shù),要注意溢出標(biāo)志OF OF 。掌握掌握 軟件學(xué)院軟件學(xué)院38例例1 1:8 8位加法位加法3AH + 7CH3AH + 7CH? ?CF=0OF=1l溢出和進(jìn)位的比較溢出和進(jìn)位的比較 00111010 (3AH) 00111010 (3AH) + 01111100 (7CH) + 01111100 (7CH) 1011011010110110 B6HB6H無符號(hào)數(shù)運(yùn)算無符號(hào)數(shù)運(yùn)算 58D58D 124D124D 182D182D B6HB6H 無進(jìn)位無進(jìn)位 范圍內(nèi)范圍內(nèi) 結(jié)果正確結(jié)果正確有符號(hào)數(shù)運(yùn)算有符號(hào)數(shù)運(yùn)算 58D58D 124D1
40、24D 182D182DB6H=-01001001BB6H=-01001001B =-73D =-73D 有溢出有溢出結(jié)果不正確結(jié)果不正確 軟件學(xué)院軟件學(xué)院39例例2 2:AAH + 7CH =AAH + 7CH =?AAH = 10011001AAH = 100110017CH = 011111007CH = 01111100 和和 =(1)00010101=(1)00010101 = 26H = 26HCF=1OF=0l溢出和進(jìn)位的比較溢出和進(jìn)位的比較無符號(hào)數(shù)運(yùn)算無符號(hào)數(shù)運(yùn)算 170170 124124 294294(126H)(126H) 有進(jìn)位有進(jìn)位 范圍外范圍外結(jié)果需要修正結(jié)果需要修
41、正有符號(hào)數(shù)運(yùn)算有符號(hào)數(shù)運(yùn)算 8686 124124 3838 26H26H 無溢出無溢出 范圍內(nèi)范圍內(nèi) 結(jié)果正確結(jié)果正確 軟件學(xué)院軟件學(xué)院40若運(yùn)算結(jié)果為若運(yùn)算結(jié)果為0 0,則,則ZF = 1ZF = 1;否則;否則ZF = 0ZF = 00NZ結(jié)果非零結(jié)果非零1ZR結(jié)果為零結(jié)果為零ZF=例:(執(zhí)行指令:例:(執(zhí)行指令: ADD AL,ADD AL,BLBL)3AH + 7CH3AH + 7CHB6HB6H,結(jié)果不是零:,結(jié)果不是零:ZF =0ZF =084H + 7CH84H + 7CH(1 1)00H00H,結(jié)果是零:,結(jié)果是零:ZF=1ZF=1 注意:注意:ZF=1ZF=1表示結(jié)果表示結(jié)
42、果=0=0 OF DF IF TF SF ZF AF PF CFl零標(biāo)志零標(biāo)志ZFZF(Zero FlagZero Flag)掌握掌握 軟件學(xué)院軟件學(xué)院41符號(hào)標(biāo)志符號(hào)標(biāo)志SFSF(Sign FlagSign Flag)表明有符號(hào)數(shù)運(yùn)算結(jié)果的正負(fù)表明有符號(hào)數(shù)運(yùn)算結(jié)果的正負(fù)0PL結(jié)果為正結(jié)果為正1NG結(jié)果為負(fù)結(jié)果為負(fù)SF= 有符號(hào)數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號(hào)。有符號(hào)數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號(hào)。所以,最高有效位就是符號(hào)標(biāo)志的狀態(tài)所以,最高有效位就是符號(hào)標(biāo)志的狀態(tài)3AH + 7CH3AH + 7CHB6HB6H,最高位,最高位D D7 71 1:SF = 1SF = 184H + 7CH84H
43、 + 7CH(1 1)00H00H,最高位,最高位D D7 70 0:SF = 0SF = 0 OF DF IF TF SF ZF AF PF CF掌握掌握 軟件學(xué)院軟件學(xué)院42l奇偶標(biāo)志奇偶標(biāo)志PFPF(Parity FlagParity Flag)表明運(yùn)算結(jié)果表明運(yùn)算結(jié)果最低字節(jié)最低字節(jié)中中1 1的個(gè)數(shù)的奇偶的個(gè)數(shù)的奇偶0 0POPO 1 1的個(gè)數(shù)為奇數(shù)的個(gè)數(shù)為奇數(shù)1 1PEPE 1 1的個(gè)數(shù)為偶數(shù)的個(gè)數(shù)為偶數(shù)PF=PF=例:例:3AH + 7CH3AH + 7CHB6HB6H10110110B10110110B結(jié)果中有結(jié)果中有5 5個(gè)個(gè)1 1,是奇數(shù):是奇數(shù):PF = 0PF = 0即使
44、進(jìn)行即使進(jìn)行1616位字操作,位字操作,PFPF標(biāo)志僅反映標(biāo)志僅反映最低最低8 8位中位中“1”1”的個(gè)數(shù)是偶或奇。的個(gè)數(shù)是偶或奇。 OF DF IF TF SF ZF AF PF CF掌握掌握 軟件學(xué)院軟件學(xué)院43l輔助進(jìn)位標(biāo)志輔助進(jìn)位標(biāo)志AFAF記錄運(yùn)算時(shí)低記錄運(yùn)算時(shí)低8 8位中低位中低4 4位(低半字節(jié))向高位(低半字節(jié))向高4 4位有無進(jìn)位位有無進(jìn)位或借位或借位0NA D3未產(chǎn)生進(jìn)未產(chǎn)生進(jìn)/借位借位1AC D3產(chǎn)生進(jìn)產(chǎn)生進(jìn)/借位借位AF=3AH + 7CH3AH + 7CHB6HB6H,D D3 3有進(jìn)位有進(jìn)位? ? AFAF標(biāo)志主要由處理器內(nèi)部使用,用于十進(jìn)制算術(shù)運(yùn)標(biāo)志主要由處理器內(nèi)
45、部使用,用于十進(jìn)制算術(shù)運(yùn)算調(diào)整指令中,用戶一般不必關(guān)心算調(diào)整指令中,用戶一般不必關(guān)心 OF DF IF TF SF ZF AF PF CF 0011 10100011 1010+ 0111 1100+ 0111 1100 1011 0110 1011 01101掌握掌握 軟件學(xué)院軟件學(xué)院44l方向標(biāo)志方向標(biāo)志DFDF(Direction FlagDirection Flag)用于串操作指令中,控制地址的變化方向用于串操作指令中,控制地址的變化方向0 0UPUP存儲(chǔ)器地址自動(dòng)增量修改存儲(chǔ)器地址自動(dòng)增量修改1 1DNDN存儲(chǔ)器地址自動(dòng)減量修改存儲(chǔ)器地址自動(dòng)減量修改DF=DF=當(dāng)當(dāng)DF=1DF=1時(shí)
46、,每次操作后變址寄存器時(shí),每次操作后變址寄存器SISI和和DIDI減小減小當(dāng)當(dāng)DF=0DF=0時(shí),每次操作后變址寄存器時(shí),每次操作后變址寄存器SISI和和DIDI增大增大CLDCLD指令復(fù)位方向標(biāo)志:指令復(fù)位方向標(biāo)志:DFDF0 0STDSTD指令置位方向標(biāo)志:指令置位方向標(biāo)志:DFDF1 1 OF DF IF TF SF ZF AF PF CF掌握掌握 軟件學(xué)院軟件學(xué)院45l中斷允許標(biāo)志中斷允許標(biāo)志IFIF用于開中斷或屏蔽中斷用于開中斷或屏蔽中斷0 0DIDI關(guān)中斷,禁止響應(yīng)中斷關(guān)中斷,禁止響應(yīng)中斷1 1EIEI開中斷,允許響應(yīng)中斷開中斷,允許響應(yīng)中斷IF=IF=CLICLI指令復(fù)位中斷標(biāo)志
47、:指令復(fù)位中斷標(biāo)志:IFIF0 0STISTI指令置位中斷標(biāo)志:指令置位中斷標(biāo)志:IFIF1 1 OF DF IF TF SF ZF AF PF CF掌握掌握 軟件學(xué)院軟件學(xué)院46l陷阱標(biāo)志陷阱標(biāo)志TFTF(Trap FlagTrap Flag)用于控制處理器進(jìn)入單步操作方式用于控制處理器進(jìn)入單步操作方式單步執(zhí)行指令單步執(zhí)行指令處理器在每條指令執(zhí)行結(jié)束時(shí),處理器在每條指令執(zhí)行結(jié)束時(shí),便產(chǎn)生一個(gè)編號(hào)為便產(chǎn)生一個(gè)編號(hào)為1 1的內(nèi)部中斷的內(nèi)部中斷這種內(nèi)部中斷稱為單步中斷這種內(nèi)部中斷稱為單步中斷所以所以TFTF也稱為單步標(biāo)志也稱為單步標(biāo)志n利用單步中斷可對(duì)程序進(jìn)行逐條指令的調(diào)試?yán)脝尾街袛嗫蓪?duì)程序進(jìn)行
48、逐條指令的調(diào)試n這種逐條指令調(diào)試程序的方法就是單步調(diào)試這種逐條指令調(diào)試程序的方法就是單步調(diào)試 OF DF IF TF SF ZF AF PF CF0 0處理器正常工作處理器正常工作1 1處理器單步執(zhí)行指令處理器單步執(zhí)行指令TF=TF= 軟件學(xué)院軟件學(xué)院47在調(diào)試程序時(shí),在調(diào)試程序時(shí),DEBUGDEBUG提供了測(cè)試標(biāo)志位的手段,提供了測(cè)試標(biāo)志位的手段,用符號(hào)表示標(biāo)志位的值,用符號(hào)表示標(biāo)志位的值,每種標(biāo)志位的符號(hào)如下表:每種標(biāo)志位的符號(hào)如下表:標(biāo)志名標(biāo)志名標(biāo)志為1標(biāo)志為1 標(biāo)志為0標(biāo)志為0OF溢出(是/否)OF溢出(是/否)OVOVNVNVDF方向(減量/加量)DF方向(減量/加量)DNDNUPU
49、PIF中斷(允許/關(guān)閉)IF中斷(允許/關(guān)閉)EIEIDIDISF符號(hào)(負(fù)/正)SF符號(hào)(負(fù)/正)NGNGPLPLZF零(是/否)ZF零(是/否)ZRZRNZNZAF輔助進(jìn)位(是/否)AF輔助進(jìn)位(是/否)ACACNANAPF奇偶標(biāo)志( 偶/奇)PF奇偶標(biāo)志( 偶/奇)PEPEPOPOCF進(jìn)位標(biāo)志(是/否)CF進(jìn)位標(biāo)志(是/否)CYCYNCNCDEBUG不提供不提供TF的符號(hào)的符號(hào),用于單步方式操作。用于單步方式操作。 軟件學(xué)院軟件學(xué)院48例題例題m=00111011B,n=01001010B,完成下列運(yùn)算后,完成下列運(yùn)算后,SF、ZF、PF、CF、AF、OF標(biāo)志位的狀態(tài)。標(biāo)志位的狀態(tài)。 (1
50、)m+n (2) m-n (1)m+n 00111011 +01001010 10000101符號(hào)符號(hào)SF=零零ZF=奇偶奇偶PF=進(jìn)位進(jìn)位CF=輔助進(jìn)位輔助進(jìn)位AF=溢出溢出OF=100011 (2)m-n 00111011 - 01001010 11110001SF=ZF=PF=CF=AF=OF=100100 軟件學(xué)院軟件學(xué)院49AH ALBH BLCH CLDH DLSPBPDISIIPFLAGSCSDSESSSFSGS32位位16位位32位名稱位名稱16位名稱位名稱 通用名稱通用名稱AX 累加器累加器BX 基址變址基址變址CX 計(jì)數(shù)計(jì)數(shù) 堆棧指針堆棧指針DX 數(shù)據(jù)數(shù)據(jù) 基址指針基址指針
51、 目的變址目的變址 源變址源變址指令指針指令指針標(biāo)志標(biāo)志代碼段代碼段數(shù)據(jù)段數(shù)據(jù)段附加段附加段堆棧段堆棧段EAXEBXECXEDXESPEBPEDIESIEIPEFLAGS注:注:1. 8086/80881. 8086/8088或或80286CPU80286CPU,圖中,圖中陰影區(qū)寄存器不存在;陰影區(qū)寄存器不存在;2. FS2. FS和和GSGS寄存器無專用名稱。寄存器無專用名稱。 小結(jié)小結(jié)無專用名稱無專用名稱80 x86的程序的程序可見寄存器組可見寄存器組 軟件學(xué)院軟件學(xué)院50 對(duì)任何一個(gè)微處理器來說對(duì)任何一個(gè)微處理器來說, , 為了從存儲(chǔ)器中取為了從存儲(chǔ)器中取得指令或者與之傳送數(shù)據(jù)得指令或者
52、與之傳送數(shù)據(jù), ,都需要它的總線接口單都需要它的總線接口單元執(zhí)行一個(gè)總線周期。同時(shí)元執(zhí)行一個(gè)總線周期。同時(shí), ,以后我們會(huì)知道,在以后我們會(huì)知道,在微機(jī)系統(tǒng)中,當(dāng)選擇一個(gè)存儲(chǔ)器或微機(jī)系統(tǒng)中,當(dāng)選擇一個(gè)存儲(chǔ)器或I/OI/O設(shè)備與微處設(shè)備與微處理器接口之前理器接口之前, , 也必須了解系統(tǒng)總線的所謂時(shí)序也必須了解系統(tǒng)總線的所謂時(shí)序, ,而這些時(shí)序也是以總線周期為基準(zhǔn)來描述的。因此而這些時(shí)序也是以總線周期為基準(zhǔn)來描述的。因此, ,在這里有必要介紹一下有關(guān)總線周期的概念。在這里有必要介紹一下有關(guān)總線周期的概念。 通常,包括通常,包括808680868088 CPU8088 CPU在內(nèi)在內(nèi), ,一個(gè)最基
53、本一個(gè)最基本的總線周期由的總線周期由4 4個(gè)時(shí)鐘周期組成個(gè)時(shí)鐘周期組成, ,時(shí)鐘周期是時(shí)鐘周期是CPUCPU的的基本時(shí)間計(jì)量單位,它由基本時(shí)間計(jì)量單位,它由CPUCPU的主頻決定。在一個(gè)的主頻決定。在一個(gè)最基本的總線周期中最基本的總線周期中, ,習(xí)慣上將習(xí)慣上將4 4個(gè)時(shí)鐘周期分別稱個(gè)時(shí)鐘周期分別稱為為4 4個(gè)狀態(tài),即個(gè)狀態(tài),即T T、T T、T T與與T T這這4 4個(gè)狀態(tài)。個(gè)狀態(tài)。3.1.3 3.1.3 總線周期的概念總線周期的概念 軟件學(xué)院軟件學(xué)院51下面以下面以808680868088CPU8088CPU為例,簡(jiǎn)要說明為例,簡(jiǎn)要說明CPUCPU在在4 4個(gè)狀態(tài)中的基本個(gè)狀態(tài)中的基本作用
54、。作用。 在在T T狀態(tài),狀態(tài),CPUCPU往多路復(fù)用總線上發(fā)送地址信息,以選往多路復(fù)用總線上發(fā)送地址信息,以選中所要尋址的存儲(chǔ)單元或外設(shè)端口的地址。中所要尋址的存儲(chǔ)單元或外設(shè)端口的地址。在在T T狀態(tài),狀態(tài),CPUCPU從總線上撤消地址從總線上撤消地址, ,并使總線的低并使總線的低1616位浮位浮置成高阻狀態(tài),為傳送數(shù)據(jù)做準(zhǔn)備??偩€的高置成高阻狀態(tài),為傳送數(shù)據(jù)做準(zhǔn)備??偩€的高4 4位(位(A AA A)用來輸出本總線周期狀態(tài)信息。這些狀態(tài)信息用來表)用來輸出本總線周期狀態(tài)信息。這些狀態(tài)信息用來表示示CPUCPU是否允許中斷、當(dāng)前正在使用什么段寄存器等。是否允許中斷、當(dāng)前正在使用什么段寄存器等
55、。在在T T狀態(tài),多路總線的高狀態(tài),多路總線的高4 4位繼續(xù)提供狀態(tài)信息位繼續(xù)提供狀態(tài)信息, ,而其低而其低1616位(對(duì)位(對(duì)8088 CPU8088 CPU則為低則為低8 8位)上將出現(xiàn)由位)上將出現(xiàn)由CPUCPU寫出的數(shù)據(jù)寫出的數(shù)據(jù)或者或者CPUCPU從存儲(chǔ)器或端口讀入的數(shù)據(jù)。從存儲(chǔ)器或端口讀入的數(shù)據(jù)。 軟件學(xué)院軟件學(xué)院52 在有些情況下,由于外設(shè)或存儲(chǔ)器的速度較慢,不能在有些情況下,由于外設(shè)或存儲(chǔ)器的速度較慢,不能 及時(shí)地配合及時(shí)地配合CPUCPU傳送數(shù)據(jù)。這時(shí),外設(shè)或存儲(chǔ)器就會(huì)通傳送數(shù)據(jù)。這時(shí),外設(shè)或存儲(chǔ)器就會(huì)通 過過 “READY”READY”的信號(hào)線在的信號(hào)線在T T3 3狀態(tài)啟
56、動(dòng)之前向狀態(tài)啟動(dòng)之前向CPUCPU發(fā)一個(gè)發(fā)一個(gè) “數(shù)據(jù)未準(zhǔn)備好數(shù)據(jù)未準(zhǔn)備好”信號(hào),表示它們還來不及同信號(hào),表示它們還來不及同CPUCPU之間之間傳傳 送數(shù)據(jù),于是,送數(shù)據(jù),于是,CPUCPU會(huì)在會(huì)在T T3 3之后自動(dòng)插入之后自動(dòng)插入1 1個(gè)或多個(gè)附個(gè)或多個(gè)附 加的時(shí)鐘周期加的時(shí)鐘周期T Tw w,這個(gè),這個(gè)T Tw w就叫就叫等待狀態(tài)等待狀態(tài),它表示此時(shí),它表示此時(shí) CPUCPU在總線上的信息情況和在總線上的信息情況和T T3 3狀態(tài)時(shí)的信息情況一樣。狀態(tài)時(shí)的信息情況一樣。 只有在指定的存儲(chǔ)器或外設(shè)已經(jīng)完成數(shù)據(jù)傳送時(shí),它只有在指定的存儲(chǔ)器或外設(shè)已經(jīng)完成數(shù)據(jù)傳送時(shí),它 們又通過們又通過“REA
57、DY”READY”的信號(hào)線向的信號(hào)線向CPUCPU發(fā)出一個(gè)發(fā)出一個(gè)“準(zhǔn)備好準(zhǔn)備好”信信 號(hào),當(dāng)號(hào),當(dāng)CPUCPU接收到這一信號(hào)后,才會(huì)自動(dòng)脫離接收到這一信號(hào)后,才會(huì)自動(dòng)脫離T Tw w狀態(tài)而狀態(tài)而 進(jìn)入進(jìn)入T T4 4狀態(tài)。狀態(tài)。 在在T T狀態(tài),總線周期結(jié)束。狀態(tài),總線周期結(jié)束。 軟件學(xué)院軟件學(xué)院53 只有當(dāng)只有當(dāng)CPUCPU和存儲(chǔ)器或和存儲(chǔ)器或I/0I/0接口之間傳送數(shù)接口之間傳送數(shù)據(jù)時(shí)據(jù)時(shí), ,或者它正在填充指令隊(duì)列緩沖器時(shí)或者它正在填充指令隊(duì)列緩沖器時(shí),CPU,CPU才執(zhí)才執(zhí)行總線周期。如果行總線周期。如果CPUCPU在執(zhí)行一個(gè)總線周期之后在執(zhí)行一個(gè)總線周期之后, ,并不立即執(zhí)行下一個(gè)
58、總線周期并不立即執(zhí)行下一個(gè)總線周期, ,那么那么, ,系統(tǒng)總線就系統(tǒng)總線就會(huì)處于空閑狀態(tài)會(huì)處于空閑狀態(tài), ,此時(shí),此時(shí),CPUCPU將執(zhí)行空閑周期。將執(zhí)行空閑周期。 在空閑周期中在空閑周期中, ,可以包含可以包含1 1個(gè)或多個(gè)時(shí)鐘周期個(gè)或多個(gè)時(shí)鐘周期。在此期間,。在此期間,CPUCPU在總線的高在總線的高4 4位上仍將驅(qū)動(dòng)前一位上仍將驅(qū)動(dòng)前一個(gè)總線周期的狀態(tài)信息,而且,如果前一個(gè)總線個(gè)總線周期的狀態(tài)信息,而且,如果前一個(gè)總線周期為寫周期周期為寫周期, ,則則CPUCPU會(huì)在總線的低會(huì)在總線的低1616位上繼續(xù)驅(qū)位上繼續(xù)驅(qū)動(dòng)數(shù)據(jù)信息;如果前一個(gè)總線周期為讀周期,則動(dòng)數(shù)據(jù)信息;如果前一個(gè)總線周期為
59、讀周期,則在空閑周期中,總線低在空閑周期中,總線低1616位會(huì)處于高阻狀態(tài)。位會(huì)處于高阻狀態(tài)。 軟件學(xué)院軟件學(xué)院543.1.4 8086/80883.1.4 8086/8088的引腳信號(hào)和功能的引腳信號(hào)和功能 軟件學(xué)院軟件學(xué)院55( (一一) )地址數(shù)據(jù)總線地址數(shù)據(jù)總線ADAD1515ADAD0 0 軟件學(xué)院軟件學(xué)院56這是分時(shí)復(fù)用的存儲(chǔ)器或端口的這是分時(shí)復(fù)用的存儲(chǔ)器或端口的地址和數(shù)據(jù)總線地址和數(shù)據(jù)總線。傳送地址時(shí)為單向的三態(tài)輸出,傳送地址時(shí)為單向的三態(tài)輸出,而傳送數(shù)據(jù)時(shí)可雙向三態(tài)輸入輸出。而傳送數(shù)據(jù)時(shí)可雙向三態(tài)輸入輸出。正是利用分時(shí)復(fù)用的方法才能使正是利用分時(shí)復(fù)用的方法才能使80868086
60、80888088用用4040條條引腳實(shí)現(xiàn)引腳實(shí)現(xiàn)2020位地址、位地址、1616位數(shù)據(jù)及眾多的控制信號(hào)和位數(shù)據(jù)及眾多的控制信號(hào)和狀態(tài)信號(hào)的傳輸。狀態(tài)信號(hào)的傳輸。不過在不過在80888088中,由于只能傳輸中,由于只能傳輸8 8位數(shù)據(jù)位數(shù)據(jù), ,所以,只有所以,只有ADAD7 7ADAD0 0 8 8條地址數(shù)據(jù)線,條地址數(shù)據(jù)線,A A1515A A8 8只用來輸出地只用來輸出地址。址。 軟件學(xué)院軟件學(xué)院57 作為復(fù)用引腳,在總線周期的作為復(fù)用引腳,在總線周期的T T1 1狀態(tài)用來輸出要尋址的存儲(chǔ)器或狀態(tài)用來輸出要尋址的存儲(chǔ)器或I IO O端口地址;端口地址;在在T T2 2狀態(tài)浮置成高阻狀態(tài),為
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 借款合同具有哪些法律特征
- 2025年云南b2貨運(yùn)資格證全題
- 人事代理招聘與委托培養(yǎng)合同協(xié)議
- 在線教育平臺(tái)建設(shè)和運(yùn)營指南
- 建設(shè)工程勞務(wù)大清合同
- 售后技術(shù)支持服務(wù)協(xié)議
- 華爾產(chǎn)權(quán)交易所網(wǎng)站使用協(xié)議模板6篇
- 奶牛養(yǎng)殖售賣合同范本
- 柬埔寨qc合同范本
- 雙方土地買賣合同范本
- 2025年黑龍江民族職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫附答案
- 年產(chǎn)60萬噸摻混肥項(xiàng)目可行性研究報(bào)告申請(qǐng)立項(xiàng)
- 2025年2月《公共安全視頻圖像信息系統(tǒng)管理?xiàng)l例》學(xué)習(xí)解讀課件
- 山東省聊城市冠縣2024-2025學(xué)年八年級(jí)上學(xué)期期末地理試卷(含答案)
- 2025年江蘇省中職《英語》學(xué)業(yè)水平考試高頻必練考試題庫400題(含答案)
- 2025年濰坊工程職業(yè)學(xué)院高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年濟(jì)寧職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 高三一?!吧媾c強(qiáng)弱關(guān)系思辨”審題立意及范文
- 2025年湖南工程職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫含答案解析
- 2025年江西青年職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫含答案解析
- 2024年七臺(tái)河職業(yè)學(xué)院高職單招數(shù)學(xué)歷年參考題庫含答案解析
評(píng)論
0/150
提交評(píng)論