匯編語(yǔ)言與接口技術(shù)(第二章)_第1頁(yè)
匯編語(yǔ)言與接口技術(shù)(第二章)_第2頁(yè)
匯編語(yǔ)言與接口技術(shù)(第二章)_第3頁(yè)
匯編語(yǔ)言與接口技術(shù)(第二章)_第4頁(yè)
匯編語(yǔ)言與接口技術(shù)(第二章)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1匯編語(yǔ)言與接口技術(shù)匯編語(yǔ)言與接口技術(shù) 主講教師主講教師張玉琢張玉琢2教學(xué)目標(biāo)及要求教學(xué)目標(biāo)及要求:80 x86cpu的內(nèi)部結(jié)構(gòu);存儲(chǔ)器結(jié)構(gòu)、存儲(chǔ)地址,存儲(chǔ)分段及物理地址的生成。教學(xué)重點(diǎn)和難點(diǎn):教學(xué)重點(diǎn)和難點(diǎn):熟練掌握80 x86/80 x88cpu各寄存器的作用存儲(chǔ)器分段及存儲(chǔ)單元物理地址的計(jì)算教學(xué)時(shí)數(shù):教學(xué)時(shí)數(shù):23預(yù)取緩沖存儲(chǔ)器指令譯碼256控制ROM控制部件地址生成(U流水線)地址生成(U流水線)整數(shù)寄存器組ALU(U流水線)ALU(U流水線)筒型移位器8KB數(shù)據(jù)Cache浮點(diǎn)部件控制寄存器組加法器除法器乘法器80808KB代碼Cache分支目標(biāo)緩沖器預(yù)取地址指令指針轉(zhuǎn)移校驗(yàn)和目標(biāo)地址

2、分頁(yè)部件323232323232總線部件6464位讀總線64位數(shù)據(jù)總線36位地址總線控制TLBTLB32位地址總線2.1 Pentium2.1 Pentium微處理器的功能結(jié)構(gòu)微處理器的功能結(jié)構(gòu) 4 總線接口單元總線接口單元 實(shí)現(xiàn)微處理器與系統(tǒng)總線的連接,包括實(shí)現(xiàn)微處理器與系統(tǒng)總線的連接,包括6464位數(shù)據(jù)位數(shù)據(jù)線,線,3232位地址線和眾多信號(hào)線,實(shí)現(xiàn)微處理器與外位地址線和眾多信號(hào)線,實(shí)現(xiàn)微處理器與外部的信息交換。部的信息交換。分段單元和分頁(yè)單元分段單元和分頁(yè)單元 分段單元將程序提供的邏輯地址轉(zhuǎn)換為線性地址,分段單元將程序提供的邏輯地址轉(zhuǎn)換為線性地址,分頁(yè)單元將線性地址轉(zhuǎn)換為物理地址。分頁(yè)單

3、元將線性地址轉(zhuǎn)換為物理地址。U U流水線和流水線和V V流水線流水線指令指令CacheCache與數(shù)據(jù)與數(shù)據(jù)CacheCache減少指令預(yù)取和數(shù)據(jù)存取操作之間發(fā)生的沖突減少指令預(yù)取和數(shù)據(jù)存取操作之間發(fā)生的沖突 2.1.1 2.1.1 內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)5指令預(yù)取單元、指令譯碼單元和控制指令預(yù)取單元、指令譯碼單元和控制ROMROM 指令預(yù)取單元從指令指令預(yù)取單元從指令CasheCashe中預(yù)取兩條指令;經(jīng)指中預(yù)取兩條指令;經(jīng)指令譯碼單元譯碼后(若是復(fù)雜指令,轉(zhuǎn)換為一條或令譯碼單元譯碼后(若是復(fù)雜指令,轉(zhuǎn)換為一條或多條微指令后多條微指令后) ),分別送到,分別送到U U和和V V流水線執(zhí)行。流水線執(zhí)

4、行??刂茊卧刂茊卧?控制控制U U和和V V兩條流水線、浮點(diǎn)處理單元的正常運(yùn)行。兩條流水線、浮點(diǎn)處理單元的正常運(yùn)行。分支轉(zhuǎn)移目標(biāo)緩沖器分支轉(zhuǎn)移目標(biāo)緩沖器預(yù)測(cè)分支轉(zhuǎn)移指令是否發(fā)生轉(zhuǎn)移預(yù)測(cè)分支轉(zhuǎn)移指令是否發(fā)生轉(zhuǎn)移浮點(diǎn)處理單元浮點(diǎn)處理單元 2.1.1 2.1.1 內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)61 1、超標(biāo)量流水線、超標(biāo)量流水線 2.1.2 Petium2.1.2 Petium微處理器的先進(jìn)技術(shù)微處理器的先進(jìn)技術(shù)超標(biāo)量:配置多個(gè)執(zhí)行部件和指令譯碼電路,能同時(shí)執(zhí)行超標(biāo)量:配置多個(gè)執(zhí)行部件和指令譯碼電路,能同時(shí)執(zhí)行 多條指令。多條指令。PentiumPentium由三個(gè)執(zhí)行單元組織而成,一個(gè)執(zhí)行浮點(diǎn)指由三個(gè)執(zhí)行單元

5、組織而成,一個(gè)執(zhí)行浮點(diǎn)指令,另兩個(gè)執(zhí)行整型指令(令,另兩個(gè)執(zhí)行整型指令(U U流水線和流水線和V V流水線),流水線),這意味著這意味著PentiumPentium同時(shí)可以執(zhí)三條指令。同時(shí)可以執(zhí)三條指令。PentiumPentium的的整數(shù)運(yùn)算流水線含整數(shù)運(yùn)算流水線含5 5個(gè)流水線級(jí),浮點(diǎn)運(yùn)個(gè)流水線級(jí),浮點(diǎn)運(yùn)算流水線含算流水線含8 8個(gè)流水線級(jí)。個(gè)流水線級(jí)。2 2、分支轉(zhuǎn)移的動(dòng)態(tài)預(yù)測(cè)、分支轉(zhuǎn)移的動(dòng)態(tài)預(yù)測(cè) 可加速程序的執(zhí)行。可加速程序的執(zhí)行。73 3、獨(dú)立的指令、獨(dú)立的指令CasheCashe和數(shù)據(jù)和數(shù)據(jù)CasheCashe 2.1.2 Petium2.1.2 Petium微處理器的先進(jìn)技術(shù)微處

6、理器的先進(jìn)技術(shù)能迅速地將指令或數(shù)據(jù)的線性地址轉(zhuǎn)換為物理地址能迅速地將指令或數(shù)據(jù)的線性地址轉(zhuǎn)換為物理地址4 4、重新設(shè)計(jì)的浮點(diǎn)單元、重新設(shè)計(jì)的浮點(diǎn)單元 81. 寄存器結(jié)構(gòu)寄存器結(jié)構(gòu)0151631015015163178ALBLCLDLAXBXCXDXAHBHCHDHEAXEBXECXEDXIPCSDSSSESFSGSSPBPSIDIESPEBPESIEDIFLAGSCR0指令指針指令指針I(yè)P段寄存器段寄存器CS,DS,SS,ES,FS,GS通用寄存器通用寄存器EAX,EBX,ECX,EDX變址寄存器變址寄存器ESI,EDI指針寄存器指針寄存器EBP,ESP標(biāo)志寄存器標(biāo)志寄存器FLAGS控制寄存器

7、控制寄存器0(CR0)CR0的第的第0位叫保護(hù)允許位位叫保護(hù)允許位(PE),PE用于對(duì)實(shí)模式和保護(hù)模式進(jìn)行用于對(duì)實(shí)模式和保護(hù)模式進(jìn)行切換,切換,PE置置0時(shí)選擇實(shí)模式運(yùn)行時(shí)選擇實(shí)模式運(yùn)行2.2 pentium 2.2 pentium 的寄存器的寄存器9l通用寄存器共通用寄存器共8 8個(gè):個(gè):AX,BX,CX,DX,SP,BP,SI,DIAX,BX,CX,DX,SP,BP,SI,DI,均,均為為1616位。位。lAX,BX,CX,DXAX,BX,CX,DX均可分成高均可分成高8 8位和低位和低8 8位,作為獨(dú)立的位,作為獨(dú)立的8 8位寄存器使用:位寄存器使用:AH,AL,BH,BL,CH,CL,

8、DH,DLAH,AL,BH,BL,CH,CL,DH,DLlAXAX累加器,累加器,BXBX基址寄存器基址寄存器 CX CX計(jì)數(shù)寄存器,計(jì)數(shù)寄存器,DXDX數(shù)據(jù)寄存器數(shù)據(jù)寄存器 SP SP堆棧指示器,堆棧指示器,BPBP基址指示器基址指示器 SI SI源變址寄存器,源變址寄存器,DIDI目的變址寄存器目的變址寄存器 1. 1.通用寄存器通用寄存器參與算術(shù)與邏輯運(yùn)算參與算術(shù)與邏輯運(yùn)算10EIP EIP 硬件電路,能自動(dòng)跟蹤指令地址。硬件電路,能自動(dòng)跟蹤指令地址。 在開(kāi)始執(zhí)行程序時(shí)在開(kāi)始執(zhí)行程序時(shí), ,賦給賦給EIPEIP第一條指令的地址第一條指令的地址, ,然然后每取一條指令后每取一條指令,EIP

9、,EIP的值就自動(dòng)指向下一條將要的值就自動(dòng)指向下一條將要執(zhí)行的指令的地址執(zhí)行的指令的地址。2. 2.指令指示器指令指示器EIP(instruction point)EIP(instruction point)EIPEIP的低的低1616位是位是IPIP,可單獨(dú)使用,可單獨(dú)使用當(dāng)微處理器工作在實(shí)地址方式下,當(dāng)微處理器工作在實(shí)地址方式下,EIPEIP就是就是1616位的位的IPIP119 9個(gè)個(gè)標(biāo)志位,其中標(biāo)志位,其中6 6個(gè)狀態(tài)標(biāo)志,個(gè)狀態(tài)標(biāo)志,3 3個(gè)控制標(biāo)志個(gè)控制標(biāo)志3. 3.狀態(tài)標(biāo)志寄存器狀態(tài)標(biāo)志寄存器(status flags)(status flags)(p28p28圖圖1-131-1

10、3)12l進(jìn)位標(biāo)志位進(jìn)位標(biāo)志位CF CF 加減運(yùn)算執(zhí)行后,加減運(yùn)算執(zhí)行后,最高位最高位有進(jìn)位或借位,有進(jìn)位或借位,CF=1CF=1;無(wú)進(jìn)位或借位,無(wú)進(jìn)位或借位,CF=0CF=0 主要用于多字節(jié)加減運(yùn)算主要用于多字節(jié)加減運(yùn)算l輔助進(jìn)位標(biāo)志位輔助進(jìn)位標(biāo)志位AF AF 最低最低4 4位位D3D3D0D0位位有進(jìn)位或借位,有進(jìn)位或借位,AF=1AF=1;無(wú)進(jìn)位;無(wú)進(jìn)位或借位,或借位,AF=0AF=0 用于用于BCDBCD數(shù)的算術(shù)運(yùn)算數(shù)的算術(shù)運(yùn)算( (調(diào)整調(diào)整) )指令指令 (1 1)狀態(tài)標(biāo)志)狀態(tài)標(biāo)志反映反映cpucpu執(zhí)行算術(shù)或邏輯運(yùn)算后的結(jié)果執(zhí)行算術(shù)或邏輯運(yùn)算后的結(jié)果13l溢出標(biāo)志位溢出標(biāo)志位OF

11、 OF 運(yùn)算結(jié)果超出了機(jī)器數(shù)所能表示的數(shù)的范圍運(yùn)算結(jié)果超出了機(jī)器數(shù)所能表示的數(shù)的范圍OF=1OF=1;反之,;反之,OF=0OF=0 該標(biāo)志表示運(yùn)算結(jié)果是否產(chǎn)生了溢出該標(biāo)志表示運(yùn)算結(jié)果是否產(chǎn)生了溢出 l符號(hào)標(biāo)志位符號(hào)標(biāo)志位SF SF 結(jié)果為負(fù)數(shù),結(jié)果為負(fù)數(shù),SF=1SF=1;結(jié)果為正數(shù),;結(jié)果為正數(shù),SF=0SF=0l零標(biāo)志位零標(biāo)志位ZFZF 結(jié)果為結(jié)果為0 0,ZF=1ZF=1;結(jié)果不為;結(jié)果不為0 0,ZF=0 ZF=0 l奇偶標(biāo)志位奇偶標(biāo)志位PFPF 結(jié)果低八位中結(jié)果低八位中1 1的個(gè)數(shù)為偶數(shù),的個(gè)數(shù)為偶數(shù),PF=1PF=1;為奇數(shù),;為奇數(shù),PF=0PF=0。用于檢查數(shù)據(jù)在傳送過(guò)程中是

12、否發(fā)生錯(cuò)誤。用于檢查數(shù)據(jù)在傳送過(guò)程中是否發(fā)生錯(cuò)誤 14l方向標(biāo)志位方向標(biāo)志位DFDF 控制數(shù)據(jù)串操作指令的步進(jìn)方向控制數(shù)據(jù)串操作指令的步進(jìn)方向 DF=1,DF=1,地址增址地址增址;DF=0,;DF=0,地址減址地址減址l中斷允許標(biāo)志位中斷允許標(biāo)志位IF IF 控制控制CPUCPU是否開(kāi)中斷是否開(kāi)中斷. IF=1,. IF=1, CPUCPU開(kāi)中斷開(kāi)中斷 IF=0, IF=0, CPUCPU關(guān)中斷關(guān)中斷l(xiāng)追蹤標(biāo)志位追蹤標(biāo)志位TFTF(陷阱標(biāo)志位)(陷阱標(biāo)志位) TF=1 TF=1,CPUCPU單步執(zhí)行程序,常用于程序的調(diào)試單步執(zhí)行程序,常用于程序的調(diào)試 TF=0 TF=0,CPUCPU正常執(zhí)行

13、程序正常執(zhí)行程序 (2 2)控制標(biāo)志)控制標(biāo)志用于控制用于控制CPUCPU的操作。的操作。 15狀態(tài)標(biāo)志寄存器狀態(tài)標(biāo)志寄存器(status flags)(status flags) 匯編程序調(diào)試軟件匯編程序調(diào)試軟件DEBUGDEBUG中提供了測(cè)試標(biāo)中提供了測(cè)試標(biāo)志位的方法,標(biāo)志位志位的方法,標(biāo)志位0 0或或1 1是用兩個(gè)字母來(lái)是用兩個(gè)字母來(lái)表示的。表示的。標(biāo)志位標(biāo)志位OFDFIFSFZFAFPFCF1/0OV/NVDN/UPEI/DING/PLZR/NZAC/NAPE/POCY/NC16用來(lái)存放段地址用來(lái)存放段地址 存儲(chǔ)器分段管理,段的起始地址的高存儲(chǔ)器分段管理,段的起始地址的高1616位稱該

14、段位稱該段的的段地址段地址, ,偏離段首址的字節(jié)數(shù)為偏離段首址的字節(jié)數(shù)為偏移地址偏移地址( (1616位位).).lCS-CS-代碼段寄存器代碼段寄存器-存放代碼段的段地址存放代碼段的段地址lSS-SS-堆棧段寄存器堆棧段寄存器-存放堆棧段的段地址存放堆棧段的段地址lDS-DS-數(shù)據(jù)段寄存器數(shù)據(jù)段寄存器-存放數(shù)據(jù)段的段地址存放數(shù)據(jù)段的段地址lES-ES-附加數(shù)據(jù)段寄存器附加數(shù)據(jù)段寄存器-存放附加數(shù)據(jù)段的段存放附加數(shù)據(jù)段的段地址地址 4. 4.段寄存器段寄存器段地址和偏移地址段地址和偏移地址17l存儲(chǔ)器段的劃分如圖所示:存儲(chǔ)器段的劃分如圖所示: 8086/8088 8086/8088可尋址可尋址

15、2 22020=1M=1M字字節(jié),分為節(jié),分為2 21616=64K=64K個(gè)段,每個(gè)段,每一段最多可尋址一段最多可尋址2 21616=64K=64K個(gè)個(gè)單元單元存儲(chǔ)器的分段并不是惟一的存儲(chǔ)器的分段并不是惟一的每個(gè)段地址的低每個(gè)段地址的低4 4位全為位全為0 0 實(shí)地址下存儲(chǔ)器分段和物理地址的生成實(shí)地址下存儲(chǔ)器分段和物理地址的生成實(shí)地址下存儲(chǔ)器分段實(shí)地址下存儲(chǔ)器分段18l存儲(chǔ)單元地址的兩種表示形式存儲(chǔ)單元地址的兩種表示形式: : 物理地址物理地址-用用唯一唯一的的2020位二進(jìn)制數(shù)表示位二進(jìn)制數(shù)表示.CPU.CPU訪訪問(wèn)時(shí)用物理地址問(wèn)時(shí)用物理地址 邏輯地址邏輯地址-段地址段地址: :偏移地址偏

16、移地址 程序中使用邏輯地址程序中使用邏輯地址l物理地址的形成物理地址的形成:段地址左移段地址左移4 4位位( (* *10H)+1610H)+16位偏移地址位偏移地址例:例:0001H0001H:0010H0010H對(duì)應(yīng)的對(duì)應(yīng)的物理地址為物理地址為00010H+0010H=00020H00010H+0010H=00020H實(shí)地址下物理地址的生成實(shí)地址下物理地址的生成19主要用于存放程序和數(shù)據(jù)主要用于存放程序和數(shù)據(jù)l存儲(chǔ)單元存儲(chǔ)單元 l單元地址單元地址存儲(chǔ)器存儲(chǔ)器(memory)(memory)【補(bǔ)充補(bǔ)充】 存儲(chǔ)器編址存儲(chǔ)器編址 20 8086/8088 8086/8088系統(tǒng)中的存儲(chǔ)器是以系統(tǒng)

17、中的存儲(chǔ)器是以8 8位位( (一個(gè)字一個(gè)字節(jié)節(jié)) )為一個(gè)存儲(chǔ)單元編址的。每一個(gè)存儲(chǔ)單元用唯為一個(gè)存儲(chǔ)單元編址的。每一個(gè)存儲(chǔ)單元用唯一的一個(gè)地址碼來(lái)表示。一個(gè)字即一的一個(gè)地址碼來(lái)表示。一個(gè)字即1616位的數(shù)據(jù)占位的數(shù)據(jù)占據(jù)連續(xù)的兩個(gè)單元。這兩個(gè)單元都有各自的地址,據(jù)連續(xù)的兩個(gè)單元。這兩個(gè)單元都有各自的地址,處于低地址的字節(jié)的地址為這個(gè)處于低地址的字節(jié)的地址為這個(gè)字的地址字的地址。在存。在存儲(chǔ)器中,任何連續(xù)存放的兩個(gè)字節(jié)都可以稱為一儲(chǔ)器中,任何連續(xù)存放的兩個(gè)字節(jié)都可以稱為一個(gè)個(gè)字字。將偶數(shù)地址的字稱為。將偶數(shù)地址的字稱為規(guī)則字規(guī)則字,奇數(shù)地址的,奇數(shù)地址的字稱為字稱為非規(guī)則字非規(guī)則字。高地址的字節(jié)為高位字節(jié),低。高地址的字節(jié)為高位字節(jié),低地址的字節(jié)為低位字節(jié)。地址的字節(jié)為低位字節(jié)?!狙a(bǔ)充補(bǔ)充】 存儲(chǔ)器編址存儲(chǔ)器編址 21如:如:00000H00000H地址中存放一個(gè)字地址中存放一個(gè)字2301H2301H,則則00000H00000H單元中存放單元中存放01H01H,00001H00001H單元中存放單元中存放23H2

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論