匯編語言程序設計第二章80X86計算機組織_第1頁
匯編語言程序設計第二章80X86計算機組織_第2頁
匯編語言程序設計第二章80X86計算機組織_第3頁
匯編語言程序設計第二章80X86計算機組織_第4頁
匯編語言程序設計第二章80X86計算機組織_第5頁
已閱讀5頁,還剩101頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、ibm-pc匯編語言程序設計 第二章第二章 80x86計算機組織計算機組織 任課教師:陶雪麗任課教師:陶雪麗 xueli_ ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院2 2021-5-8 本章內容提要本章內容提要 80x8680x86微處理器微處理器 基于微處理器的計算機系統(tǒng)構成基于微處理器的計算機系統(tǒng)構成 中央處理機中央處理機 存儲器存儲器 外部設備外部設備 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院3 2021-5-8 2.1 80x862.1 80x86微處理器微處理器 教材教材p15

2、p15表表2.12.1給出了給出了intelintel公司生產的公司生產的80x8680x86微處理器系列的一些主要微處理器系列的一些主要 技術數據。技術數據。 幾個名詞術語:幾個名詞術語: 晶體管數:是指芯片中所包含的晶體管數,它說明器件的集成度。晶體管數:是指芯片中所包含的晶體管數,它說明器件的集成度。 主頻:是指芯片所用的主時鐘頻率,它直接影響計算機的運行速度,是反主頻:是指芯片所用的主時鐘頻率,它直接影響計算機的運行速度,是反 映計算機速度的一個重要指標。映計算機速度的一個重要指標。 數據總線寬度:數據總線負責計算機中數據在各組成部分之間的傳送,數數據總線寬度:數據總線負責計算機中數據

3、在各組成部分之間的傳送,數 據總線寬度是指在芯片內部數據傳送的寬度。據總線寬度是指在芯片內部數據傳送的寬度。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院4 2021-5-8 2.1 80x862.1 80x86微處理器微處理器 幾個名詞術語:幾個名詞術語: 外部數據總線寬度:是指芯片內和芯片外交換數據的寬度。外部數據總線寬度:是指芯片內和芯片外交換數據的寬度。 地址總線寬度:是指專用于傳送地址的總線寬度,根據這一數值可確定地址總線寬度:是指專用于傳送地址的總線寬度,根據這一數值可確定 處理機可以訪問的存儲器的最大范圍(尋址空間)。如處理機可以

4、訪問的存儲器的最大范圍(尋址空間)。如8086cpu8086cpu有有2020位地位地 址總線,可訪問址總線,可訪問2 220 20個存儲單元,即 個存儲單元,即1mb1mb空間;空間;80286cpu80286cpu有有2424位地址總線,位地址總線, 可訪問可訪問2 224 24個存儲單元,即 個存儲單元,即16mb16mb空間??臻g。80386cpu80386cpu有有3232位地址總線,可訪問位地址總線,可訪問 2 232 32個存儲單元,即 個存儲單元,即4gb4gb空間??臻g。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院5 202

5、1-5-8 2.1 80x862.1 80x86微處理器微處理器 層次結構的存儲器組織層次結構的存儲器組織 目的:為了使存儲器匹配處理器的速度。目的:為了使存儲器匹配處理器的速度。 層次結構組成:層次結構組成: 高速緩沖存儲器高速緩沖存儲器cachecache:比主存速度更高,但容量小。:比主存速度更高,但容量小。 主存儲器:為中間層。主存儲器:為中間層。 外存儲器:比主存速度慢,但容量大。外存儲器:比主存速度慢,但容量大。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院6 2021-5-8 2.1 80x862.1 80x86微處理器微處理器

6、為提高計算機的可用性而開發(fā)的一些措施:為提高計算機的可用性而開發(fā)的一些措施: 提高計算機的工作速度是微處理器芯片發(fā)展的核心問題。提高計算機的工作速度是微處理器芯片發(fā)展的核心問題。 從從8048680486起,芯片中集成了起,芯片中集成了協處理器協處理器,提高了浮點處理速度;,提高了浮點處理速度; 字長的增加字長的增加提高了計算機運算的精度。提高了計算機運算的精度。 從從8028680286開始,除了開始,除了80868086提供的提供的實模式實模式外,增加了外,增加了保護模式保護模式的工作的工作 方式。實現了方式。實現了虛擬存儲虛擬存儲(使計算機可以運行程序空間大于主存空間的(使計算機可以運行

7、程序空間大于主存空間的 用戶程序)和用戶程序)和多任務管理多任務管理(允許多個用戶可以同時在機器上工作)。(允許多個用戶可以同時在機器上工作)。 從從8038680386開始,又增加了開始,又增加了虛擬虛擬8686的工作模式。在此模式下,一臺機的工作模式。在此模式下,一臺機 器可同時模擬多個器可同時模擬多個80868086處理器的工作。處理器的工作。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院7 2021-5-8 2.2 2.2 基于微處理器的計算機系統(tǒng)構成基于微處理器的計算機系統(tǒng)構成 軟件軟件 硬件硬件 ibm-pc匯編語言程序設計 河南師

8、范大學計算機與信息技術學院河南師范大學計算機與信息技術學院8 2021-5-8 2.2.1 2.2.1 硬件硬件 計算機的硬件分為五大組成部分:運算器、控制器、計算機的硬件分為五大組成部分:運算器、控制器、存儲器存儲器、輸入設、輸入設 備和輸出設備。(備和輸出設備。(如圖所示如圖所示) 運算器和控制器是計算機的核心,合成運算器和控制器是計算機的核心,合成中央處理單元中央處理單元cpucpu(central central processing unitprocessing unit)或處理機、處理器()或處理機、處理器(processorprocessor)。)。 輸入設備和輸出設備往往通稱為

9、輸入設備和輸出設備往往通稱為外部設備外部設備(peripheralperipheral),簡稱外設),簡稱外設 或或i/oi/o設備。設備。 在微型計算機中,在微型計算機中,cpucpu由一個大規(guī)模集成電路芯片構成,被稱為微處理由一個大規(guī)模集成電路芯片構成,被稱為微處理 器(器(microprocessormicroprocessor)。)。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院9 2021-5-8 2.2.1 2.2.1 硬件硬件 運算器執(zhí)行所有的算術和邏輯運算。運算器執(zhí)行所有的算術和邏輯運算。 中央處理單元中央處理單元 控制器負責把

10、指令逐條從存儲器中取出,經譯碼分析后向機器發(fā)出控制器負責把指令逐條從存儲器中取出,經譯碼分析后向機器發(fā)出 各種控制命令。各種控制命令。 cpucpu內部還有一些高速存儲單元,稱為內部還有一些高速存儲單元,稱為寄存器(寄存器(registerregister)。它們?yōu)?。它們?yōu)?處理單元提供各種操作所需的數據。處理單元提供各種操作所需的數據。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院10 2021-5-8 2.2.1 2.2.1 硬件硬件 存儲器是計算機的記憶部件。存儲器是計算機的記憶部件。 存儲器存儲器 它用來存放程序以及程序中所涉及的數據。

11、它用來存放程序以及程序中所涉及的數據。 按所在位置,存儲器可以分為主存儲器(主存、內存)和輔助存按所在位置,存儲器可以分為主存儲器(主存、內存)和輔助存 儲器(輔存、外存)。儲器(輔存、外存)。(二者區(qū)別)(二者區(qū)別) 按讀寫能力,存儲器可以分為隨機存儲器按讀寫能力,存儲器可以分為隨機存儲器ramram(讀寫存儲器)(讀寫存儲器) 和只讀存儲器和只讀存儲器romrom。(二者區(qū)別)(二者區(qū)別) 存儲器地址(存儲器地址(addressaddress)、存儲器容量)、存儲器容量。 主存與寄存器的區(qū)別主存與寄存器的區(qū)別。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算

12、機與信息技術學院11 2021-5-8 2.2.1 2.2.1 硬件硬件 外部設備是實現人機交互和機間通信的一些機電設備。外部設備是實現人機交互和機間通信的一些機電設備。 外部設備外部設備 輸入設備輸入設備用來接受用戶輸入的原始數據和程序,并將它們轉化為計用來接受用戶輸入的原始數據和程序,并將它們轉化為計 算機可識別的形式存放到內存中。常用的輸入設備有鍵盤、鼠標等。算機可識別的形式存放到內存中。常用的輸入設備有鍵盤、鼠標等。 輸出設備輸出設備用來將存放在內存中由計算機處理的結果轉變?yōu)槿藗兯苡脕韺⒋娣旁趦却嬷杏捎嬎銠C處理的結果轉變?yōu)槿藗兯?接受的形式。常用的輸出設備有顯示器、打印機等。接受的

13、形式。常用的輸出設備有顯示器、打印機等。 每個外設必須通過每個外設必須通過輸入輸出接口電路(輸入輸出接口電路(i/oi/o接口)接口)與系統(tǒng)連接。與系統(tǒng)連接。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院12 2021-5-8 2.2.1 2.2.1 硬件硬件 數據寄存器:數據寄存器:用來存放要在外設和主機間傳送的數據,實際起用來存放要在外設和主機間傳送的數據,實際起 了緩沖器的作用。了緩沖器的作用。 外部設備外部設備 狀態(tài)寄存器:狀態(tài)寄存器:用來保存外設或接口的狀態(tài)信息,以便用來保存外設或接口的狀態(tài)信息,以便cpucpu在必要在必要 時檢測外

14、設的狀態(tài),了解外設的工作情況。時檢測外設的狀態(tài),了解外設的工作情況。 命令寄存器:命令寄存器:又稱控制寄存器,又稱控制寄存器,cpucpu給外設或接口的控制命令通給外設或接口的控制命令通 過此寄存器送給外設。過此寄存器送給外設。 程序員所見的程序員所見的i/oi/o接口由一組寄存器組成。接口由一組寄存器組成。一般說來,這些寄存器有一般說來,這些寄存器有 三種不同的用途:三種不同的用途: ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院13 2021-5-8 2.2.1 2.2.1 硬件硬件 各種外部設備都有以上三種類型的寄存器,只是每個接口所配各種

15、外部設備都有以上三種類型的寄存器,只是每個接口所配 備的寄存器數量是根據設備的需要確定的。備的寄存器數量是根據設備的需要確定的。 外部設備外部設備 為了區(qū)別這些寄存器,各個寄存器進行了編號,形成為了區(qū)別這些寄存器,各個寄存器進行了編號,形成i/oi/o地址,地址, 通常被稱作通常被稱作i/oi/o端口(端口(portport)。這樣就組成了一個獨立于內存儲器的。這樣就組成了一個獨立于內存儲器的 i/oi/o地址空間。地址空間。 實際上,系統(tǒng)就是通過這些端口與外設進行通信的。實際上,系統(tǒng)就是通過這些端口與外設進行通信的。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學

16、計算機與信息技術學院14 2021-5-8 2.2.1 2.2.1 硬件硬件 系統(tǒng)總線把系統(tǒng)總線把cpucpu、存儲器和、存儲器和i/oi/o設備連接起來,用來傳送各部分之設備連接起來,用來傳送各部分之 間的信息。間的信息。 系統(tǒng)總線系統(tǒng)總線 系統(tǒng)總線包括系統(tǒng)總線包括數據線、地址線數據線、地址線和和控制線控制線三組。三組。 數據線:數據線:雙向的,用來傳送信息。雙向的,用來傳送信息。 地址線:地址線:單向的,用來指出信息的來源和目的地。單向的,用來指出信息的來源和目的地。 控制線:控制線:雙向的,用來規(guī)定總線的動作,如方向等。雙向的,用來規(guī)定總線的動作,如方向等。 系統(tǒng)總線的工作由總線控制邏輯

17、負責指揮。系統(tǒng)總線的工作由總線控制邏輯負責指揮。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院15 2021-5-8 2.2.2 2.2.2 軟件軟件 一個完整的計算機系統(tǒng)分為硬件和軟件兩大部分。一個完整的計算機系統(tǒng)分為硬件和軟件兩大部分。 硬件(硬件(hardwarehardware)是計算機系統(tǒng)的機器部分,是計算機工作的物)是計算機系統(tǒng)的機器部分,是計算機工作的物 質基礎。質基礎。 軟件(軟件(softwaresoftware)是為了運行、管理和維護計算機而編制的各種)是為了運行、管理和維護計算機而編制的各種 程序的總和,廣義的軟件還應該包

18、括與程序有關的文檔。程序的總和,廣義的軟件還應該包括與程序有關的文檔。 軟件可以分為軟件可以分為系統(tǒng)軟件系統(tǒng)軟件和和應用軟件應用軟件。 見圖見圖2.2 2.2 計算機軟件層次圖。計算機軟件層次圖。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院16 2021-5-8 2.2.2 2.2.2 軟件軟件 系統(tǒng)軟件是指為了方便使用、維護和管理計算機系統(tǒng)而編制的系統(tǒng)軟件是指為了方便使用、維護和管理計算機系統(tǒng)而編制的 一類軟件及其文檔。一類軟件及其文檔。 系統(tǒng)軟件系統(tǒng)軟件 操作系統(tǒng)(操作系統(tǒng)(operating systemoperating system

19、)是系統(tǒng)軟件的核心。)是系統(tǒng)軟件的核心。 操作系統(tǒng)是系統(tǒng)程序的集合。它負責管理系統(tǒng)的軟硬件資源,操作系統(tǒng)是系統(tǒng)程序的集合。它負責管理系統(tǒng)的軟硬件資源, 向用戶提供方便、有效和可靠的工作環(huán)境。向用戶提供方便、有效和可靠的工作環(huán)境。 操作系統(tǒng)的主要部分是常駐內存監(jiān)督程序(操作系統(tǒng)的主要部分是常駐內存監(jiān)督程序(monitormonitor),只要一),只要一 開機它就存在于內存中,它可以從用戶接收命令,并使操作系統(tǒng)執(zhí)開機它就存在于內存中,它可以從用戶接收命令,并使操作系統(tǒng)執(zhí) 行相應的動作。行相應的動作。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院1

20、7 2021-5-8 2.2.2 2.2.2 軟件軟件 i/o i/o驅動程序(驅動程序(i/o driveri/o driver)用來對)用來對i/oi/o設備進行控制或管理。設備進行控制或管理。 系統(tǒng)軟件系統(tǒng)軟件 文件管理程序(文件管理程序(file managementfile management)用來處理存儲在外存中的大)用來處理存儲在外存中的大 量信息,對其中的信息以文件(量信息,對其中的信息以文件(filefile)的形式進行存取、復制及其)的形式進行存取、復制及其 他操作。他操作。 文本編輯程序(文本編輯程序(text editortext editor)用來建立、輸入或修改文

21、本,)用來建立、輸入或修改文本, 并使它存入內存或大容量存儲器中。并使它存入內存或大容量存儲器中。 翻譯程序(翻譯程序(translatortranslator):系統(tǒng)程序中的翻譯程序包括匯編程:系統(tǒng)程序中的翻譯程序包括匯編程 序、解釋程序和編譯程序。序、解釋程序和編譯程序。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院18 2021-5-8 2.2.2 2.2.2 軟件軟件 系統(tǒng)軟件系統(tǒng)軟件 連接程序(連接程序(linkerlinker)用來把要執(zhí)行的程序與庫文件或其他已經翻用來把要執(zhí)行的程序與庫文件或其他已經翻 譯好的子程序(能完成獨立功能

22、的程序模塊)連接在一起,形成機器譯好的子程序(能完成獨立功能的程序模塊)連接在一起,形成機器 能執(zhí)行的程序。能執(zhí)行的程序。 裝入程序(裝入程序(loaderloader)用來把程序從外存?zhèn)魉偷絻却?,以便機器執(zhí)行。用來把程序從外存?zhèn)魉偷絻却?,以便機器執(zhí)行。 調試程序(調試程序(debugdebug)是系統(tǒng)提供給用戶的能監(jiān)督和控制用戶程序是系統(tǒng)提供給用戶的能監(jiān)督和控制用戶程序 的一種工具。的一種工具。 系統(tǒng)程序庫(系統(tǒng)程序庫(systersyster library library)和用戶程序庫()和用戶程序庫(user libraryuser library),), 各種標準程序、子程序和一些文

23、件的集合稱為程序庫,它可以被系統(tǒng)各種標準程序、子程序和一些文件的集合稱為程序庫,它可以被系統(tǒng) 程序或用戶程序調用。程序或用戶程序調用。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院19 2021-5-8 2.2.2 2.2.2 軟件軟件 應用軟件應用軟件 應用軟件是解決某一問題的程序及其文檔。應用軟件是解決某一問題的程序及其文檔。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院20 2021-5-8 進行匯編語言程序設計所需要的軟件進行匯編語言程序設計所需要的軟件 系統(tǒng)軟件系統(tǒng)軟件 dosdos平

24、臺平臺 windowswindows的虛擬的虛擬ms-dosms-dos環(huán)境環(huán)境 應用軟件應用軟件 文本編輯器:文本編輯器:用來錄入、修改源程序。常用的有:用來錄入、修改源程序。常用的有: dosdos的的editedit全屏幕編輯器;全屏幕編輯器; ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院21 2021-5-8 進行匯編語言程序設計所需要的軟件進行匯編語言程序設計所需要的軟件 應用軟件應用軟件 windowswindows的的notepadnotepad計事本;計事本; 程序開發(fā)系統(tǒng)中的程序編輯器,例如你熟悉的程序開發(fā)系統(tǒng)中的程序編輯器,

25、例如你熟悉的turbo cturbo c編輯器;編輯器; masmmasm集成開發(fā)環(huán)境集成開發(fā)環(huán)境pwbpwb的編輯器。的編輯器。 匯編程序:匯編程序:將匯編源程序翻譯成目標程序。微機的匯編程序有多種版將匯編源程序翻譯成目標程序。微機的匯編程序有多種版 本,如本,如masmmasm、tasmtasm等。本書采用微軟的等。本書采用微軟的masm 6.xmasm 6.x。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院22 2021-5-8 進行匯編語言程序設計所需要的軟件進行匯編語言程序設計所需要的軟件 應用軟件應用軟件 連接程序連接程序link.

26、exelink.exe:將目標程序轉換成可執(zhí)行程序。將目標程序轉換成可執(zhí)行程序。 調試程序:調試程序:進行程序排錯。常用的有:進行程序排錯。常用的有: dosdos的的debugdebug程序;程序;(建議使用)(建議使用) masmmasm的的code viewcode view; turbo debuggerturbo debugger等。等。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院23 2021-5-8 進行匯編語言程序設計所需要的軟件進行匯編語言程序設計所需要的軟件 應用軟件應用軟件 集編輯、匯編、連接和調試為一體的綜合開發(fā)環(huán)境。

27、如集編輯、匯編、連接和調試為一體的綜合開發(fā)環(huán)境。如masmmasm的程的程 序員平臺序員平臺pwbpwb。 源程序源程序可執(zhí)行文件可執(zhí)行文件目標模塊目標模塊 文本編輯器文本編輯器匯編程序匯編程序連接程序連接程序調試程序調試程序 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院24 2021-5-8 2.3 2.3 中央處理機中央處理機 中央處理機中央處理機cpucpu的組成的組成 80x8680x86寄存器組寄存器組 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院25 2021-5-8 2.3.1 2

28、.3.1 中央處理機中央處理機cpucpu的組成的組成 內部暫存器內部暫存器 ip es ss ds cs 輸入輸入/輸出輸出 控制電路控制電路 外部總線外部總線 執(zhí)行部分執(zhí)行部分 控制電路控制電路 1 2 3 4 5 6 alu 標志寄存器標志寄存器 ah al bh bl ch cl dh dl sp bp si di 通用寄存器通用寄存器 地址加法器地址加法器 指令隊列緩沖器指令隊列緩沖器 執(zhí)行部件執(zhí)行部件 (eu) 總線接口部件總線接口部件 (biu) 16位位 20位位 16位位 8位位 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院2

29、6 2021-5-8 2.3.1 2.3.1 中央處理機中央處理機cpucpu的組成的組成 總線接口單元總線接口單元biubiu(bus interface unitbus interface unit):管理著:管理著80868086與外部總線的與外部總線的 接口,負責接口,負責cpucpu對存儲器和外設進行訪問。對存儲器和外設進行訪問。 執(zhí)行單元執(zhí)行單元eueu(execution unitexecution unit):負責指令的譯碼、執(zhí)行和數據的運:負責指令的譯碼、執(zhí)行和數據的運 算。算。 完成一條指令的功能可以分成兩個主要階段:完成一條指令的功能可以分成兩個主要階段:取指和執(zhí)行取指和

30、執(zhí)行。 取指取指是從主存中取出指令代碼進入是從主存中取出指令代碼進入cpucpu。biubiu負責從存儲器中取出指令負責從存儲器中取出指令 代碼,送入指令隊列。代碼,送入指令隊列。 執(zhí)行執(zhí)行是將指令翻譯成它代表的功能(被稱為譯碼),并發(fā)出有關控制是將指令翻譯成它代表的功能(被稱為譯碼),并發(fā)出有關控制 信號實現這個功能。指令執(zhí)行過程中需要的操作數有些來自信號實現這個功能。指令執(zhí)行過程中需要的操作數有些來自cpucpu內部內部 的寄存器,有些來自指令隊列,還有些來自存儲器和外設(此時,的寄存器,有些來自指令隊列,還有些來自存儲器和外設(此時,eueu 控制總線接口單元控制總線接口單元biubiu

31、從外部獲?。?。從外部獲?。?。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院27 2021-5-8 2.3.2 80x862.3.2 80x86寄存器組寄存器組 通用寄存器通用寄存器 知識要點知識要點 專用寄存器專用寄存器 段寄存器段寄存器 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院28 2021-5-8 2.3.2 80x862.3.2 80x86寄存器組寄存器組 寄存器分為:寄存器分為: 程序可見的寄存器程序可見的寄存器:在匯編語言程序設計中用到的寄存器,它:在匯編語言程序設計中用到的寄存器

32、,它 們可以由指令來指定。們可以由指令來指定。 程序不可見的寄存器:一般應用程序中不用而由系統(tǒng)所用的寄程序不可見的寄存器:一般應用程序中不用而由系統(tǒng)所用的寄 存器。存器。 程序可見的寄存器分為程序可見的寄存器分為通用寄存器通用寄存器、專用寄存器專用寄存器和和段寄存器段寄存器三類。三類。 如圖如圖2.32.3所示所示。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院29 2021-5-8 2.3.2 80x862.3.2 80x86寄存器組寄存器組 ahal bhbl chcl dhdl sp bp di si ip flags cs ds es

33、ss fs gs ax bx cx dx eax ebx ecx edx esp ebp edi esi eip eflags 32位名稱位名稱 16位名稱位名稱 32位位 16位位 名稱名稱 累加器累加器 基址變址基址變址 計數計數 數據數據 堆棧指針堆棧指針 基址指針基址指針 目的變址目的變址 源變址源變址 指令指針指令指針 標志標志 代碼代碼 數據數據 附加附加 堆棧堆棧 對于對于80868086、80888088或或8028680286, 陰影區(qū)域是不可用的。陰影區(qū)域是不可用的。 fsfs和和gsgs寄存器無專用名稱。寄存器無專用名稱。 圖圖2.3 80x862.3 80x86的程序可

34、見寄存器組的程序可見寄存器組 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院30 2021-5-8 1. 1. 通用寄存器通用寄存器 8086/8088、80286所具有的寄存器所具有的寄存器 圖中陰影部分除外的寄存器,它們都是圖中陰影部分除外的寄存器,它們都是1616位寄存器。位寄存器。 數據寄存器:數據寄存器:包括包括axax、bxbx、cxcx、dxdx,用來暫時存放計算過程中所用到,用來暫時存放計算過程中所用到 的操作數、結果或其他信息。它們都可以分成高的操作數、結果或其他信息。它們都可以分成高8 8位和低位和低8 8位兩個獨立位兩個獨立

35、 的寄存器;即它們既可以以字(的寄存器;即它們既可以以字(1616位)形式訪問,又可以以字節(jié)(位)形式訪問,又可以以字節(jié)(8 8 位)形式訪問。位)形式訪問。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院31 2021-5-8 1. 1. 通用寄存器通用寄存器 8086/8088、80286所具有的寄存器所具有的寄存器 axax(accumulatoraccumulator)稱為)稱為累加器累加器,用于算數、邏輯運算以及與外設傳送,用于算數、邏輯運算以及與外設傳送 信息(信息(in/outin/out指令中)等。指令中)等。 bxbx(base

36、base)稱為)稱為基址寄存器基址寄存器,常用做存放存儲器地址。,常用做存放存儲器地址。 cxcx(countcount)稱為)稱為計數器計數器,常用來保存計數值,作為循環(huán)和串操作等指,常用來保存計數值,作為循環(huán)和串操作等指 令中的隱含計數器。令中的隱含計數器。 dxdx(datadata)稱為)稱為數據寄存器數據寄存器,常用來存放雙字長數據的高,常用來存放雙字長數據的高1616位,或存位,或存 放外設端口地址。放外設端口地址。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院32 2021-5-8 1. 1. 通用寄存器通用寄存器 8086/80

37、88、80286所具有的寄存器所具有的寄存器 指針及變址寄存器指針及變址寄存器 包括包括sisi(source indexsource index)、)、didi(destination indexdestination index)、)、bpbp (base pointerbase pointer)、)、spsp(stack pointerstack pointer)四個)四個1616位寄存器,常位寄存器,常 用于存儲器尋址時提供地址。用于存儲器尋址時提供地址。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院33 2021-5-8 1. 1.

38、通用寄存器通用寄存器 8086/8088、80286所具有的寄存器所具有的寄存器 sisi是源變址寄存器,是源變址寄存器,didi是目的變址寄存器;是目的變址寄存器; 一般與一般與dsds聯用,聯用, 用來確定數據段中某一存儲單元的地址;用來確定數據段中某一存儲單元的地址; 在串指令中,在串指令中,sisi與與dsds聯用、聯用、didi與與eses聯用,分別尋址數據段聯用,分別尋址數據段 和附加段;和附加段; 在串指令中,在串指令中,sisi與與didi還具有自動增量或減量的功能。還具有自動增量或減量的功能。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與

39、信息技術學院34 2021-5-8 1. 1. 通用寄存器通用寄存器 8086/8088、80286所具有的寄存器所具有的寄存器 spsp為堆棧指針寄存器,為堆棧指針寄存器,bpbp為基址指針寄存器;為基址指針寄存器; 二者均可以與二者均可以與ssss聯用來確定堆棧段中的某一存儲單元的地址;聯用來確定堆棧段中的某一存儲單元的地址; spsp用來指示棧頂的偏移地址,用來指示棧頂的偏移地址,bpbp表示堆棧段中的基地址。表示堆棧段中的基地址。 堆棧(堆棧(stackstack)是主存中一個特殊的區(qū)域,采用先進后出)是主存中一個特殊的區(qū)域,采用先進后出 filofilo(first in last

40、outfirst in last out)或后進先出)或后進先出lifolifo(last in first last in first outout)的操作方式。)的操作方式。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院35 2021-5-8 1. 1. 通用寄存器通用寄存器 它們都是它們都是3232位寄存器,包括位寄存器,包括eaxeax、ebxebx、ecxecx、edxedx、ebpebp、ediedi、esiesi。 這這8 8個寄存器可以以雙字(個寄存器可以以雙字(1616位)的形式或對其低位)的形式或對其低1616位以字的形式被

41、位以字的形式被 訪問。訪問。 eaxeax、ebxebx、ecxecx和和edxedx的低的低1616位還可以以字節(jié)的形式被訪問。位還可以以字節(jié)的形式被訪問。 在在8038680386及其后繼機型中,所有及其后繼機型中,所有3232位通用寄存器既可以存放數據,位通用寄存器既可以存放數據, 也可以存放地址。也可以存放地址。 這這8 8個通用寄存器的專用特性與個通用寄存器的專用特性與8086/80888086/8088和和8028680286的的axax、bxbx、cxcx、dxdx、 spsp、bpbp、didi、sisi是一一對應的。是一一對應的。 80386及其后繼機型所具有的寄存器及其后繼

42、機型所具有的寄存器 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院36 2021-5-8 2. 2. 專用寄存器專用寄存器 包括包括ipip、spsp、flagsflags三個三個1616位寄存器。位寄存器。 ipip(instruction pointerinstruction pointer)指令指針寄存器)指令指針寄存器 它用來指示代碼段中指令的偏移地址,它與代碼段寄存器它用來指示代碼段中指令的偏移地址,它與代碼段寄存器cscs聯用,聯用, 以確定下一條指令的物理地址;以確定下一條指令的物理地址; 處理器利用處理器利用cscs:ipip取得

43、下一條要執(zhí)行的指令,然后修改取得下一條要執(zhí)行的指令,然后修改ipip內容,使內容,使 之指向下一條指令的存儲器地址;之指向下一條指令的存儲器地址; 計算機就是通過計算機就是通過cscs:ipip寄存器來控制指令序列的執(zhí)行流程的。寄存器來控制指令序列的執(zhí)行流程的。 8086/8088、80286所具有的寄存器所具有的寄存器 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院37 2021-5-8 2. 2. 專用寄存器專用寄存器 spsp堆棧指針寄存器,堆棧指針寄存器,它與它與ssss聯用用來確定堆棧段中棧頂的地址,即聯用用來確定堆棧段中棧頂的地址,即

44、spsp用用 來存放棧頂的偏移地址。來存放棧頂的偏移地址。 flagsflags標志寄存器:標志寄存器:如圖如圖2.42.4所示所示。 又稱程序狀態(tài)寄存器(又稱程序狀態(tài)寄存器(program status word,pswprogram status word,psw); ; 用來存放條件碼標志、控制標志和系統(tǒng)標志。用來存放條件碼標志、控制標志和系統(tǒng)標志。 8086/8088、80286所具有的寄存器所具有的寄存器 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院38 2021-5-8 2. 2. 專用寄存器專用寄存器 包括三個包括三個3232位專

45、用寄存器,分別是位專用寄存器,分別是eipeip、espesp、eflagseflags;它們的作用;它們的作用 和相應和相應1616位寄存器相同。位寄存器相同。 80386及其后繼機型所具有的寄存器及其后繼機型所具有的寄存器 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院39 2021-5-8 圖圖2.4 80x862.4 80x86的標志寄存器的標志寄存器 ofdfiftfsfzfafpfcf 8086/8088 80286 1514131211109876543210 ntioplofdfiftfsfzfafpfcf vmrf同同80286

46、 acvmrf同同80286 idvipvifacvmrf同同80286 31.22212019181716150 80386 80486 pentium ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院40 2021-5-8 80x8680x86的標志寄存器的標志寄存器 用來記錄程序中運行結果的狀態(tài)信息,它們是根據有關指令的運行用來記錄程序中運行結果的狀態(tài)信息,它們是根據有關指令的運行 結果由結果由cpucpu自動設置的。自動設置的。 這些狀態(tài)信息往往作為后續(xù)條件轉移指令的轉移控制條件,所以稱這些狀態(tài)信息往往作為后續(xù)條件轉移指令的轉移控制條件,所

47、以稱 為條件碼。為條件碼。它包括它包括ofof、sfsf、zfzf、afaf、pfpf和和cfcf。 條件碼標志(狀態(tài)標志)條件碼標志(狀態(tài)標志) ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院41 2021-5-8 80x8680x86的標志寄存器的標志寄存器 該標志用于串操作指令中,控制地址的變化方向。該標志用于串操作指令中,控制地址的變化方向。 當當df=1df=1時,每次串操作后使變址寄存器時,每次串操作后使變址寄存器sisi和和didi的值自動減少,即串的值自動減少,即串 操作從高地址向低地址方向進行。當操作從高地址向低地址方向進行。當

48、df=0df=0時,每次串操作后使變址寄存時,每次串操作后使變址寄存 器器sisi和和didi的值自動增加,即串操作從低地址向高地址方向進行。的值自動增加,即串操作從低地址向高地址方向進行。 控制標志控制標志方向標志方向標志dfdf(direction flagdirection flag) 方向標志可以用方向標志可以用cldcld指令復位(指令復位(df=0df=0),),stdstd指令置位(指令置位(df=1df=1)。)。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院42 2021-5-8 80x8680x86的標志寄存器的標志寄存器

49、可以用于可以用于i/0i/0、可屏蔽中斷、程序調試、任務切換和系統(tǒng)工作方式等、可屏蔽中斷、程序調試、任務切換和系統(tǒng)工作方式等 的控制。的控制。 下面簡單介紹某些位的情況。下面簡單介紹某些位的情況。 系統(tǒng)標志位系統(tǒng)標志位 陷阱標志陷阱標志tftf 中斷標志中斷標志ifif i/oi/o特權級特權級iopliopl ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院43 2021-5-8 陷阱標志陷阱標志tftf(trap flagtrap flag) 也常稱為單步標志。也常稱為單步標志。 用于控制處理器是否進入單步操作方式。用于控制處理器是否進入單步操

50、作方式。 當當tf=1tf=1時,處理器單步執(zhí)行指令,每條指令執(zhí)行完后產生編號為時,處理器單步執(zhí)行指令,每條指令執(zhí)行完后產生編號為1 1的的 中斷,由系統(tǒng)控制計算機;中斷,由系統(tǒng)控制計算機; 當當tf=0tf=0時,處理器正常工作。時,處理器正常工作。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院44 2021-5-8 中斷標志中斷標志ifif(interrupt flaginterrupt flag) 該標志用于控制外部可屏蔽中斷是否可以被處理器響應。該標志用于控制外部可屏蔽中斷是否可以被處理器響應。 當當if=1if=1時,允許時,允許cp

51、ucpu響應可屏蔽中斷請求;響應可屏蔽中斷請求; 當當if=0if=0時,則禁止中斷。時,則禁止中斷。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院45 2021-5-8 i/oi/o特權級特權級iopliopl(i/o privilege leveli/o privilege level) 在保護模式下,用于控制在保護模式下,用于控制i/oi/o地址空間的訪問。(有關內容見第地址空間的訪問。(有關內容見第8 8 章。)章。) of of表示的是有符號數運算結果是否超出了范圍;即對于表示的是有符號數運算結果是否超出了范圍;即對于n n位二進制位

52、二進制 有符號數來說,如果運算結果超出了有符號數來說,如果運算結果超出了-2-2n n-1 -1 2 2n-1 n-1-1 -1這個范圍,則認為這個范圍,則認為 產生了溢出。運算結果已經不正確。產生了溢出。運算結果已經不正確。 在調試程序在調試程序debugdebug中提供了測試標志位的手段,它用符號表示某中提供了測試標志位的手段,它用符號表示某 些標志位的值。(些標志位的值。(見表見表2.22.2) ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院46 2021-5-8 表表2.2 2.2 標志位的符號表示標志位的符號表示 標志名標志名標志為標志

53、為1標志為標志為0 溢出溢出ofovnv 方向方向dfdnup 中斷中斷ifeidi 符號符號sfngpl 零位零位zfzrnz 輔助輔助afacna 奇偶奇偶pfpepo 進位進位cfcync ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院47 2021-5-8 3. 3. 段寄存器段寄存器 段寄存器也是一種專用寄存器;段寄存器也是一種專用寄存器; 專用于存儲器尋址,用來直接或間接地存放段地址。專用于存儲器尋址,用來直接或間接地存放段地址。 8028680286以前的以前的cpucpu包括:包括:cscs、dsds、ssss、eses; 從從8

54、038680386起增加了兩個附加的數據段寄存器起增加了兩個附加的數據段寄存器fsfs、gsgs。 段寄存器是段寄存器是16位位的的 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院48 2021-5-8 2.4 2.4 存儲器存儲器 存儲單元的地址和內容存儲單元的地址和內容 實模式存儲器尋址實模式存儲器尋址 保護模式存儲器尋址保護模式存儲器尋址 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院49 2021-5-8 2.4.1 2.4.1 存儲單元的地址和內容存儲單元的地址和內容 計算機中存儲信息的單

55、位(計算機中存儲信息的單位(數據類型圖數據類型圖) 二進制位(二進制位(bitbit):是計算機存儲信息的基本單位,一個位可存儲是計算機存儲信息的基本單位,一個位可存儲 一位二進制數:一位二進制數:0 0或或1 1。 字節(jié)(字節(jié)(bytebyte): :8 8個二進制位組成一個字節(jié)。個二進制位組成一個字節(jié)。 字(字(wordword): :由兩個字節(jié)組成,即由兩個字節(jié)組成,即1616位數據。位數據。 雙字(雙字(double worddouble word): :由兩個字組成,即由兩個字組成,即4 4字節(jié)數據,共字節(jié)數據,共3232位。位。 4 4字字:由由8 8個字節(jié)組成,個字節(jié)組成,646

56、4位數據。位數據。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院50 2021-5-8 2.4.1 2.4.1 存儲單元的地址和內容存儲單元的地址和內容 機器字長機器字長 8086/80888086/8088,8028680286的字長為的字長為1616位;位; 8038680386到到pentium iipentium ii的字長為的字長為3232位。位。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院51 2021-5-8 2.4.1 2.4.1 存儲單元的地址和內容存儲單元的地址和內容 存儲

57、單元的地址存儲單元的地址 存儲器里以字節(jié)為單位存儲信息。存儲器里以字節(jié)為單位存儲信息。 每一個字節(jié)單元被賦予一個惟一的存儲器地址,稱為每一個字節(jié)單元被賦予一個惟一的存儲器地址,稱為物理地址物理地址。 地址從地址從0 0開始編號,順序地每次加開始編號,順序地每次加1 1; 機器里,地址是一個無符號二進制整數,書寫時常用十六進制數表示。機器里,地址是一個無符號二進制整數,書寫時常用十六進制數表示。 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院52 2021-5-8 2.4.1 2.4.1 存儲單元的地址和內容存儲單元的地址和內容 存儲單元的內容存儲

58、單元的內容 一個存儲單元中存放的信息稱為一個存儲單元中存放的信息稱為該單元的內容該單元的內容。 每個存儲單元中存放一個字節(jié)的內容。(每個存儲單元中存放一個字節(jié)的內容。(如圖所示如圖所示) 在存儲器中如何存放一個字或雙字?在存儲器中如何存放一個字或雙字? ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院53 2021-5-8 2.4.1 2.4.1 存儲單元的地址和內容存儲單元的地址和內容 地址對齊地址對齊 在在80868086和和8028680286中,訪問存儲器都是中,訪問存儲器都是以字為單位以字為單位進行的,即機進行的,即機 器是以偶地址訪問存

59、儲器的。對于奇地址的字單元,要取一個字器是以偶地址訪問存儲器的。對于奇地址的字單元,要取一個字 需要訪問二次存儲器,浪費時間。需要訪問二次存儲器,浪費時間。 將字單元安排在偶地址(將字單元安排在偶地址(xxx0bxxx0b),雙字單元安排在),雙字單元安排在4 4的整數倍的整數倍 地址(地址(xx00bxx00b),被稱為),被稱為“地址對齊地址對齊”;同樣地,;同樣地,4 4字單元安排在字單元安排在8 8 的整數倍地址,這樣處理器訪問存儲器時,就不需要額外的訪問時的整數倍地址,這樣處理器訪問存儲器時,就不需要額外的訪問時 間,提高了存取速度。間,提高了存取速度。 ibm-pc匯編語言程序設計

60、 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院54 2021-5-8 2.4.2 2.4.2 實模式存儲器尋址實模式存儲器尋址 存儲器地址的分段存儲器地址的分段 知識要點知識要點 段寄存器段寄存器 ibm-pc匯編語言程序設計 河南師范大學計算機與信息技術學院河南師范大學計算機與信息技術學院55 2021-5-8 2.4.2 2.4.2 實模式存儲器尋址實模式存儲器尋址 80x86 80x86中,中,8086/80888086/8088只能在實模式下工作,其他微處理器均可在只能在實模式下工作,其他微處理器均可在 實模式或保護模式下工作。實模式或保護模式下工作。 實模式下允許

溫馨提示

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

最新文檔

評論

0/150

提交評論