第二章 80868088尋址方式和指令系統(tǒng)._第1頁
第二章 80868088尋址方式和指令系統(tǒng)._第2頁
第二章 80868088尋址方式和指令系統(tǒng)._第3頁
第二章 80868088尋址方式和指令系統(tǒng)._第4頁
第二章 80868088尋址方式和指令系統(tǒng)._第5頁
已閱讀5頁,還剩101頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 CH CL DH DL IP 指令指針指令指針 控制寄存器控制寄存器 FLAG 標(biāo)志寄存器標(biāo)志寄存器 CS 代碼段代碼段 DS 數(shù)據(jù)段數(shù)據(jù)段 段寄存器段寄存器 SS 堆棧段堆棧段 ES 附加段附加段 8086/8088CPU中的指令指針中的指令指針I(yè)P也是也是16位的。位的。指令指針指令指針I(yè)P給出接著要執(zhí)行的指令在代碼段中的偏移。給出接著要執(zhí)行的指令在代碼段中的偏移。8086/8088CPU中有一個中有一個16位的標(biāo)志寄存器,包含了位的標(biāo)志寄存器,包含了9個標(biāo)志,主要用于反映處理器的狀態(tài)和個標(biāo)志,主要用于反映處理器的狀態(tài)和運算結(jié)果的某些特征。各標(biāo)志在標(biāo)志寄存器中的位置如下所示。運算結(jié)果的某

2、些特征。各標(biāo)志在標(biāo)志寄存器中的位置如下所示。 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 O D I T S Z A P C F F F F F F F F F 主要用于反映運算是否產(chǎn)生進位或借位。主要用于反映運算是否產(chǎn)生進位或借位。 用于反映運算結(jié)果是否為用于反映運算結(jié)果是否為0。如果運算結(jié)果為。如果運算結(jié)果為0,則,則ZF被置被置1,否則置,否則置0。用于反映運算結(jié)果的符號位。用于反映運算結(jié)果的符號位。SF與運算結(jié)果的最高位相同,如果運算結(jié)果的最高位為與運算結(jié)果的最高位相同,如果運算結(jié)果的最高位為1,則,則SF被置被置1,否則,否則SF被置被置0。用于反映有

3、符號數(shù)加減運算是否引出溢出。如運算結(jié)果超出了用于反映有符號數(shù)加減運算是否引出溢出。如運算結(jié)果超出了8位或位或16位有符號數(shù)的表示范圍,位有符號數(shù)的表示范圍,即在字節(jié)運算時大于即在字節(jié)運算時大于127或小于或小于128,在字運算時大于,在字運算時大于32767或小于或小于 32768,稱為溢出。如,稱為溢出。如溢出,則溢出,則OF被置被置1,否則被置,否則被置0。用于反映運算結(jié)果中用于反映運算結(jié)果中“1”的個數(shù)。如果的個數(shù)。如果“1”的個數(shù)為偶數(shù),則的個數(shù)為偶數(shù),則OF被置被置1,否則,否則OF被清被清0。 在字節(jié)操作時,如發(fā)生低半字節(jié)向高半字節(jié)進位或借位;在字操作時,如發(fā)生低字節(jié)向高字在字節(jié)操

4、作時,如發(fā)生低半字節(jié)向高半字節(jié)進位或借位;在字操作時,如發(fā)生低字節(jié)向高字節(jié)進位或借位,則輔助進位標(biāo)志節(jié)進位或借位,則輔助進位標(biāo)志AF被置被置1,否則,否則AF被清被清0。方向標(biāo)志決定著串操作指令執(zhí)行時,有關(guān)指針寄存器調(diào)整方向。方向標(biāo)志決定著串操作指令執(zhí)行時,有關(guān)指針寄存器調(diào)整方向。當(dāng)當(dāng)DF為為1時,串操作指令按減方式改變有關(guān)的存儲器指針值,時,串操作指令按減方式改變有關(guān)的存儲器指針值,當(dāng)當(dāng)DF為為0時,串操作指令按加方式時,串操作指令按加方式改變有關(guān)的存儲器指針值。改變有關(guān)的存儲器指針值。 中斷允許標(biāo)志決定著中斷允許標(biāo)志決定著CPU是否響應(yīng)外部可屏蔽中斷請求,當(dāng)是否響應(yīng)外部可屏蔽中斷請求,當(dāng)I

5、F為為1時,時,CPU能夠響應(yīng)外部的能夠響應(yīng)外部的可屏蔽中斷請求;當(dāng)可屏蔽中斷請求;當(dāng)IF為為0時,則不響應(yīng)外部的可屏蔽中斷請求。時,則不響應(yīng)外部的可屏蔽中斷請求。當(dāng)當(dāng)TF被置被置1后,后,CPU進入單步方式。所謂單步方式是指在一條指令執(zhí)行后,產(chǎn)生一個單步中進入單步方式。所謂單步方式是指在一條指令執(zhí)行后,產(chǎn)生一個單步中斷。主要用于程序的調(diào)試。斷。主要用于程序的調(diào)試。 一個存儲單元中存放的信息稱為該存儲單元的內(nèi)容。一個存儲單元中存放的信息稱為該存儲單元的內(nèi)容。如下圖表示了存儲器里存放信息的情況??梢钥闯觯喝缦聢D表示了存儲器里存放信息的情況。可以看出:但是機器字長是但是機器字長是16位,大部分?jǐn)?shù)據(jù)

6、都是以字為單元表示的。位,大部分?jǐn)?shù)據(jù)都是以字為單元表示的。 0000H 0001H 66H 0002H 如左圖存儲器如左圖存儲器 45H 0003H 34H 0004H 上述原則稱為上述原則稱為“高高低低高高低低”原則。原則。 12H 0005H 四個連續(xù)的字節(jié)單元就構(gòu)成了一個雙字單元,四個連續(xù)的字節(jié)單元就構(gòu)成了一個雙字單元, 1EH 0006H 12H 1234H (0004H)=1234H 1AH 1235H (1234H)=1A12H 1236H 所以:所以: (0004)=1A12H 1237H 程序員在編制程序時要把存儲器劃分成段,每個段的大小可達程序員在編制程序時要把存儲器劃分成段

7、,每個段的大小可達64K,這樣段內(nèi)地址可以用這樣段內(nèi)地址可以用16位表示。位表示。機器規(guī)定:機器規(guī)定:第一列就是每個小段的首地址。其特征是:第一列就是每個小段的首地址。其特征是:在在1M字節(jié)的地址空間里,共有字節(jié)的地址空間里,共有64K個小段首地址,可表示如下:個小段首地址,可表示如下: 00000H 00010H 41230H 41240H FFFE0H FFFF0H在在1M字節(jié)的存儲器里,字節(jié)的存儲器里,每一個存儲單元都有一個唯一的每一個存儲單元都有一個唯一的20位地址。稱為:位地址。稱為: CPU訪問存儲器時,必須先確定所要訪問的存儲單元的物理地址才能取得訪問存儲器時,必須先確定所要訪問

8、的存儲單元的物理地址才能取得(或存入或存入)該單元中該單元中的內(nèi)容。的內(nèi)容。 要訪問的某一個存儲單元總是屬于某個段。要訪問的某一個存儲單元總是屬于某個段。在一個段內(nèi),通過偏移可指定要訪問的存儲單元,或者說要訪問的存儲單元可由偏移來指定。在一個段內(nèi),通過偏移可指定要訪問的存儲單元,或者說要訪問的存儲單元可由偏移來指定。在整個在整個1M地址空間中地址空間中,存儲單元的物理地址等于段起始地址加上偏移。存儲單元的物理地址等于段起始地址加上偏移。 存儲單元的邏輯地址由:段值和偏移兩部分組成存儲單元的邏輯地址由:段值和偏移兩部分組成用如下形式表示:用如下形式表示:根據(jù)邏輯地址可方便地得到存儲單元的物理地址

9、,公式如下:根據(jù)邏輯地址可方便地得到存儲單元的物理地址,公式如下:所以所以20位物理地址由:位物理地址由:16位段地址和位段地址和16位偏移地址組成。位偏移地址組成。 19 0 段段 值值 0000 15 0 偏偏 移移 + 19 0 物理地址物理地址 存儲器存儲器 10020H 12330H 2325H 15H 12345H由于段可以重疊,所以一個物理地址可用多個邏輯地址表示。如:上圖由于段可以重疊,所以一個物理地址可用多個邏輯地址表示。如:上圖其中:其中:標(biāo)出的:標(biāo)出的:采用段值和偏移構(gòu)成邏輯地址后,段值由段寄存器給出,偏移可由指令指針采用段值和偏移構(gòu)成邏輯地址后,段值由段寄存器給出,偏移

10、可由指令指針I(yè)P、堆棧指針、堆棧指針SP和其他可作為存儲器指針使用的寄存器(和其他可作為存儲器指針使用的寄存器(SI、DI、BX和和BP)給出,偏移還可直接用)給出,偏移還可直接用16位數(shù)給位數(shù)給出。出。 指令中不使用物理地址,而是使用邏輯地址,由總線接口單元指令中不使用物理地址,而是使用邏輯地址,由總線接口單元BIU按需要根據(jù)段值和偏移自動按需要根據(jù)段值和偏移自動形成形成20位物理址。位物理址。 當(dāng)涉及到一個堆棧操作時,則自動引用堆棧寄存器當(dāng)涉及到一個堆棧操作時,則自動引用堆棧寄存器SS,再加上由,再加上由SP所給出的所給出的16位偏移,得到位偏移,得到堆棧操作所需要的物理地址。當(dāng)偏移涉及堆

11、棧操作所需要的物理地址。當(dāng)偏移涉及BP寄存器時,缺省引用段寄存器寄存器時,缺省引用段寄存器SS。 在不改變段寄存器值的情況下,尋址的最大范圍是在不改變段寄存器值的情況下,尋址的最大范圍是64K字節(jié)。字節(jié)。若某個程序使用的總的存儲長度(包括代碼、堆棧和數(shù)據(jù)區(qū))不超過若某個程序使用的總的存儲長度(包括代碼、堆棧和數(shù)據(jù)區(qū))不超過64K 字節(jié),則整個程序字節(jié),則整個程序可以合用一個可以合用一個64K字節(jié)的段。字節(jié)的段。假如某個程序的數(shù)據(jù)區(qū)長度超過假如某個程序的數(shù)據(jù)區(qū)長度超過64K字節(jié),那么就要在兩個或多個數(shù)據(jù)段中存取數(shù)據(jù)字節(jié),那么就要在兩個或多個數(shù)據(jù)段中存取數(shù)據(jù) 在匯編語言指令中,可以用符號地址代替數(shù)

12、值地址在匯編語言指令中,可以用符號地址代替數(shù)值地址如: 此時此時VALUE為存放操作數(shù)單元的符號地址。為存放操作數(shù)單元的符號地址。 如如VALUE在附加段中,則應(yīng)指定段超越前綴如下:在附加段中,則應(yīng)指定段超越前綴如下:操作數(shù)在存儲器中操作數(shù)在存儲器中,操作數(shù)有效地址在操作數(shù)有效地址在SI、DI、BX、BP這四個寄存器之一中。在一般情況下,如果有效地址在這四個寄存器之一中。在一般情況下,如果有效地址在SI、DI和和BX中,中,如果有效地址在如果有效地址在BP中,中,物理地址物理地址16d(DS)()(BX)8 或(或(SI)或)或16位位移量位位移量 或或 (DI) (BX)(BP)(SI)(DI) 下面指令中,目的操作數(shù)采用基址加變址尋址,下面指令中,目的操作數(shù)采用基址加變址尋址, 下面指令中,源操作數(shù)采用基址加變址尋址,下面指令中,源操作數(shù)采用基址加變址尋址, 這種尋址方式適用于數(shù)組或表格處理。這種尋址方式適用于數(shù)組或表格處理。用基址寄存器存放數(shù)組首地址,用基址寄存器存放數(shù)組首地址,而用變址寄存器來定位數(shù)組中的各元素,而用變址寄存器來定位數(shù)組中的各

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論