




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1.4 8086/8088微處理器,微處理器是微機的硬件核心 主要包含指令執(zhí)行的運算和控制部件,還有多種寄存器。 對程序員來說,微處理器抽象為以名稱存取的寄存器。,1.4.1 8086/8088的結(jié)構(gòu),內(nèi)部結(jié)構(gòu),8086內(nèi)部結(jié)構(gòu)有兩個功能模塊,完成一條指令的取指和執(zhí)行功能。 模塊之一:總線接口單元BIU,主要負責讀取指令和操作數(shù)。 模塊之二:執(zhí)行單元EU ,主要負責指令譯碼和執(zhí)行。,8086內(nèi)部結(jié)構(gòu),1.執(zhí)行單元EU(Execution Unit) 功能:負責指令的執(zhí)行 組成:,1.4.1 8088/8086的結(jié)構(gòu),標志寄存器PSW 算術(shù)邏輯單元ALU 運算寄存器 EU控制系統(tǒng),2.總線接口部
2、件BIU (Bus Interface Unit) 功能:與微處理器外部總線連接,負責與存儲器、I/O接口進行聯(lián)絡(luò),存取指令、操作數(shù)等。 組成: 4個段寄存器 16位的指令指示器IP 20位的地址加法器 6個字節(jié)的指令隊列,1.4.1 8088/8086的結(jié)構(gòu),8088/8086微處理器特點,流水線結(jié)構(gòu) (1)每當8086的指令隊列中有2個空字節(jié),BIU就會自動把指令取到指令隊列中。 (2)而同時EU從指令隊列取出一條指令,并用幾個時鐘周期去分析、執(zhí)行指令。 (3)當指令隊列已滿,而且EU對BIU又無總線訪問請求時,BIU便進入空閑狀態(tài)。 (4)在執(zhí)行轉(zhuǎn)移、調(diào)用和返回指令時,指令隊列中的原有內(nèi)
3、容被自動清除。 EU和BIU可并行重疊工作,提高了系統(tǒng)的執(zhí)行速度和利用率,同時降低了對存儲器存取速度的要求。,1.4.2 8086的寄存器組,對匯編語言程序員來說,8086內(nèi)部結(jié)構(gòu)就是可編程的寄存器組。 8個通用寄存器 1個指令指示器 1個狀態(tài)標志寄存器 4個段寄存器,1.通用寄存器,數(shù)據(jù)寄存器 AX、BX、CX、DX 功能:存放參與操作的數(shù)據(jù)與結(jié)果。 說明:每個數(shù)據(jù)寄存器高、低8位都可作為獨立的8位寄存器使用。 例: AX 可分作 AH、AL,地址寄存器 SP、BP、SI、DI 功能:存放內(nèi)存單元的偏移地址或其中的一個分量 SP: 堆棧指針 BP: 基址指針 SI: 源變址寄存器 DI: 目
4、的變址寄存器,數(shù)據(jù)寄存器,數(shù)據(jù)寄存器用來存放計算的結(jié)果和操作數(shù),也可以存放地址。 每個寄存器又有它們各自的專用目的: AX累加器,使用頻度最高,用于算術(shù)、邏輯運算以及與外設(shè)傳送信息等。 BX基址寄存器,常用做存放存儲器地址。 CX計數(shù)器,作為循環(huán)和串操作等指令中的隱含計數(shù)器。 DX數(shù)據(jù)寄存器,常用來存放雙字長數(shù)據(jù)的高16位,或存放外設(shè)端口地址。,變址寄存器SI和DI,變址寄存器常用于存儲器尋址時提供地址 SI是源變址寄存器 DI是目的變址寄存器 串操作類指令中,SI和DI具有特別的功能。,堆棧指針寄存器,堆棧指針寄存器用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù)。 SP為堆棧指針寄存器,指示棧頂?shù)钠频刂贰?SP
5、不能再用于其他目的,具有專用目的。,基址指針寄存器 BP為基址指針寄存器,表示數(shù)據(jù)在堆棧段中的基地址。 SP和BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲單元地址。,堆棧(Stack),堆棧是主存中一個特殊的區(qū)域。 它采用先進后出FILO(First In Last Out)或后進先出LIFO(Last In First Out)的原則進行存取操作,而不是隨機存取操作方式。 堆棧通常由處理器自動維持。在8086中,堆棧由堆棧段寄存器SS和堆棧指針寄存器SP共同指示。,2.指令指示器IP,指令指示器IP,指示代碼段中指令的偏移地址。 它與代碼段寄存器CS聯(lián)用,確定下一條指令的物理地址。
6、計算機通過CS : IP寄存器來控制指令序列的執(zhí)行流程。 指令指示器IP是一個專用寄存器。,3.狀態(tài)標志寄存器,程序設(shè)計需要利用標志的狀態(tài),標志(Flag)用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行形式 8086處理器的各種標志形成了一個16位的標志寄存器FLAGS(程序狀態(tài)字PSW寄存器),標志的分類,狀態(tài)標志用來記錄程序運行結(jié)果的狀態(tài)信息,許多指令的執(zhí)行都將相應(yīng)地設(shè)置它。 CF ZF SF PF OF AF 控制標志可由程序根據(jù)需要用指令設(shè)置,用于控制處理器執(zhí)行指令的方式。 DF IF TF,標志寄存器(Flags),狀態(tài)標志:表示處理器當前運行的狀態(tài)。 CF進位標志,運算結(jié)果有進(借)位,CF=
7、1 AF輔助進位標志,低4位向前有進(借)位,AF=1 ZF零標志,結(jié)果為0, ZF=1 SF符號標志,最高位的值 OF溢出標志,雙高位判別法確定 PF奇/偶標志,運算結(jié)果低8位中1的個數(shù)為偶數(shù),PF=1 控制標志:控制處理器的某一特定功能。 IF可屏蔽中斷允許標志,IF=1表示允許 DF方向標志,DF=0 地址增量變化;DF=1地址減量變化 TF陷阱標志(單步執(zhí)行標志),什么是溢出,處理器內(nèi)部以補碼表示有符號數(shù)。 8位表達的整數(shù)范圍是:127128 16位表達的范圍是:3276732768 如果運算結(jié)果超出這個范圍,就產(chǎn)生了溢出。 有溢出,說明有符號數(shù)的運算結(jié)果不正確。,溢出和進位,請看例子
8、,溢出標志OF和進位標志CF是兩個意義不同的標志。 進位標志表示無符號數(shù)運算結(jié)果是否超出范圍,如果考慮進位位,運算結(jié)果仍然正確;該標志主要用于多字節(jié)數(shù)的加減運算,傳遞進位或借位標志。 溢出標志表示有符號數(shù)運算結(jié)果是否超出范圍,運算結(jié)果已經(jīng)不正確。,溢出和進位的對比,例1:3AH + 7CHB6H 無符號數(shù)運算:58124182 范圍內(nèi),無進位 有符號數(shù)運算: 58124182 范圍外,有溢出,例2:AAH + 7CH(CF=1)26H 無符號數(shù)運算:170124256+38 294 范圍外,有進位 有符號數(shù)運算:8612438 范圍內(nèi),無溢出,如何運用溢出和進位,處理器對兩個操作數(shù)進行運算時,
9、按照無符號數(shù)求得結(jié)果,并相應(yīng)設(shè)置進位標志CF;同時,根據(jù)是否超出有符號數(shù)的范圍設(shè)置溢出標志OF。 應(yīng)該利用哪個標志,則由程序員來決定。也就是說,如果將參加運算的操作數(shù)認為是無符號數(shù),就應(yīng)該關(guān)心進位;認為是有符號數(shù),則要注意是否溢出。,溢出的判斷,判斷運算結(jié)果是否溢出有一個簡單的規(guī)則: 只有當兩個相同符號數(shù)相加(包括不同符號數(shù)相減),而運算結(jié)果的符號與原數(shù)據(jù)符號相反時,產(chǎn)生溢出;因為,此時的運算結(jié)果顯然不正確。 其他情況下,則不會產(chǎn)生溢出。,例.某CPU內(nèi)含 8位運算器,則: 參加運算的數(shù)及結(jié)果均以8位 表示,最高位產(chǎn)生的進位或借位在8位運算器中不保存,而將其保存到標志寄存器中。,標志寄存器舉例
10、,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,最高位=1SF=1 低8位中1的個數(shù)為4個PF=1 運算結(jié)果不為0ZF=0 低4位向前有進位AF=1 最高位向前沒有進位CF=0 溢出標志OF=1,0101 0100 0011 1001 +0100 0101 0110 1010 1001 1001 1010 0011,4. 段寄存器,段寄存器 CS、SS、DS、ES 功能:存放段基址的高16位 分工: CS: 代碼段寄存器 SS: 堆棧段寄存器 DS: 數(shù)據(jù)段寄存器 ES: 附加段寄存器,1.5 8086/8088的存儲器結(jié)構(gòu)與堆
11、棧,寄存器是微處理器內(nèi)部暫存數(shù)據(jù)的存儲單元,以名稱表示。 存儲器則是微處理器外部存放程序及其數(shù)據(jù)的空間。 程序及其數(shù)據(jù)可以長久存放在外存,在程序需要時才進入主存。 主存需要利用地址區(qū)別。,數(shù)據(jù)信息的表達單位,計算機中信息的單位 二進制位Bit:存儲一位二進制數(shù):0或1 字節(jié)Byte:8個二進制位,D7D0 字Word:16位,2個字節(jié),D15D0 雙字DWord:32位,4個字節(jié),D31D0 最低有效位LSB:數(shù)據(jù)的最低位,D0位 最高有效位MSB:數(shù)據(jù)的最高位,對應(yīng)字節(jié)、字、雙字分別指D7、D15、D31位。,1.5.1 存儲器編址,1.8086/8088系統(tǒng)中的存儲器以字節(jié)為單位組織 存儲
12、器由大量存儲單元組成,為了區(qū)分每個單元,每個存儲單元都有一個編號,稱為存儲器地址。 通常采用十六進制數(shù)來表達地址 Intel 8086具有1兆字節(jié)(1MB)存儲器容量 其存儲器地址可以表示為:00000H FFFFFH 其中大寫H(或小寫h)表示是16進制數(shù) 每個存儲單元存放一個字節(jié)的內(nèi)容 對于超過8位的數(shù),可以用多字節(jié)表示,1.5.1 存儲器編址,2.多字節(jié)數(shù)據(jù)存放方式 多字節(jié)數(shù)據(jù)在存儲器中占連續(xù)的多個存儲單元。 存放時,低字節(jié)存入低地址,高字節(jié)存入高地址。 表達時,用它的低地址表示多字節(jié)數(shù)據(jù)占據(jù)的地址空間。,數(shù)據(jù)的存儲格式,物理地址,存儲單元,0002號“字節(jié)”單元的內(nèi)容為: 0002H3
13、4H 0002號“字”單元的內(nèi)容為: 0002H = 1234H 0002號“雙字”單元的內(nèi)容為: 0002H = 78561234H,數(shù)據(jù)的地址對齊,視具體情況來確定,同一個存儲器地址可以是字節(jié)單元地址、字單元地址、雙字單元地址等。 字單元安排在偶地址(xxx0B)、雙字單元安排在模4地址(xx00B)等,被稱為“地址對齊(Align)”。 對于不對齊地址的數(shù)據(jù),處理器訪問時,需要額外的訪問存儲器時間。 應(yīng)該將數(shù)據(jù)的地址對齊,以取得較高的存取速度。 機器指令和數(shù)據(jù)可以自由地存放在任何地址中,存放時只需按字節(jié)順序一個接著一個存放就可以了。,1.5.2 存儲器分段和物理地址的生成,1.存儲器分段
14、原因 8086CPU有20條地址線,最大可尋址空間為2201MB,物理地址范圍從00000HFFFFFH。 8086CPU內(nèi)部提供的地址寄存器和算術(shù)邏輯單元ALU都是16位,可尋址216=64KB。 解決方法:8086CPU將1MB存儲器空間分成許多邏輯段 每個段最大限制為64KB 段地址的低4位為0000B 這樣,一個存儲單元除具有一個唯一的物理地址外,還具有多個邏輯地址。,1.5.2 存儲器分段和物理地址的生成,2.存儲器分段將存儲器分為不同的工作區(qū)段 規(guī)則(隱含)如下: 段首地址的低4位為0000B 20位地址中的低16位地址是可變的 一個段大?。?4KB,1.5.2 存儲器分段和物理地
15、址的生成,3.存儲器地址的表示方法 物理地址 對應(yīng)每個物理存儲單元都有一個唯一的20位編號,就是物理地址,從00000HFFFFFH。 邏輯地址 分段后在用戶編程時,采用邏輯地址,形式為 段地址:偏移地址 其中: 段地址段首地址的高16位,它們存于段寄存器(CS,DS,SS,ES)中; 偏移地址段內(nèi)的存儲單元相對于段起始地址的偏移量,它們存于BX,BP,SI,DI,IP,SP中。(又稱為有效地址EA),邏輯地址,段地址說明邏輯段在主存中的起始位置 8086規(guī)定段地址必須是模16地址:xxxx0H 省略低4位0000B,段地址就可以用16位數(shù)據(jù)表示,就能用16位段寄存器表達段地址。,偏移地址說明
16、主存單元距離段起始位置的偏移量 每段不超過64KB,偏移地址也可用16位數(shù)據(jù)表示,物理地址和邏輯地址的轉(zhuǎn)換,邏輯地址1460:100、1380:F00 物理地址14700H 14700H,將邏輯地址中的段地址左移4位,加上偏移地址就得到20位物理地址。 物理地址 = 段地址*10H + 偏移地址 一個物理地址可以有多個邏輯地址。,注:每一個存儲單元只有唯一的物理地址,但它可由不同的段地址和不同的偏移地址組成。,物理地址 = 段地址 * 10H + 偏移地址 邏輯地址段地址:偏移地址 段地址:CS、DS、ES、SS。 偏移地址:IP、 SP、 SI 、 DI 、BX、BP等。,存儲器物理地址的計
17、算方法,4.段寄存器,8086有4個16位段寄存器 CS(代碼段)指明代碼段的起始地址 SS(堆棧段)指明堆棧段的起始地址 DS(數(shù)據(jù)段)指明數(shù)據(jù)段的起始地址 ES(附加段)指明附加段的起始地址 每個段寄存器用來確定一個邏輯段的起始地址,每種邏輯段均有各自的用途。,代碼段(Code Segment),代碼段用來存放程序的指令序列 代碼段寄存器CS存放代碼段的段地址 指令指針寄存器IP指示下一條指令的偏移地址 處理器CPU利用CS:IP取得下一條要執(zhí)行的指令,堆棧段(Stack Segment),堆棧段確定堆棧所在的主存區(qū)域 堆棧段寄存器SS存放堆棧段的段地址 堆棧指針寄存器SP指示堆棧棧頂?shù)钠?/p>
18、移地址 處理器CPU利用SS:SP操作堆棧頂?shù)臄?shù)據(jù),數(shù)據(jù)段(Data Segment),數(shù)據(jù)段存放運行程序所用的數(shù)據(jù) 數(shù)據(jù)段寄存器DS存放數(shù)據(jù)段的段地址 各種主存尋址方式(有效地址EA)得到存儲器中操作數(shù)的偏移地址 處理器CPU利用DS:EA存取數(shù)據(jù)段中的數(shù)據(jù),附加段(Extra Segment),附加段是附加的數(shù)據(jù)段,也用于數(shù)據(jù)的保存。 附加段寄存器ES存放附加段的段地址 各種主存尋址方式(有效地址EA)得到存儲器中操作數(shù)的偏移地址 處理器利用ES:EA存取附加段中的數(shù)據(jù) 串操作指令將附加段作為其目的操作數(shù)的存放區(qū)域,8086對存儲器的訪問,如何分配各個邏輯段,演示,程序的指令序列必須安排在
19、代碼段 程序使用的堆棧一定在堆棧段 程序中的數(shù)據(jù)默認是安排在數(shù)據(jù)段,也經(jīng)常安排在附加段,尤其是串操作的目的區(qū)必須是附加段。 數(shù)據(jù)的存放比較靈活,實際上可以存放在任何一種邏輯段中。,存儲器的分段,各段獨立,各段重疊,最多多少段?,最少多少段?,8086對邏輯段要求: 段地址低4位均為0 每段最大不超過64KB 8086對邏輯段并不要求: 必須是64KB 各段之間完全分開(即可以重疊),各個邏輯段獨立,自每個首地址開始,各段均占64KB的范圍,各段之間互不重疊。,各個邏輯段重疊,各段大小根據(jù)實際需要進行分配,3種段集中在一個邏輯段內(nèi),其大小不超過64KB。,1MB空間的分段,1MB空間最多能分成多
20、少個段? 每隔16個存儲單元就可以開始一個段,所以1MB最多可以有:2201621664K 個段 1MB空間最少能分成多少個段? 每隔64K個存儲單元開始一個段,所以1MB最少可以有: 22021616 個段,總 結(jié),熟悉上述內(nèi)容后,就可以進入下節(jié)。,8086有8個8位通用寄存器、8個16位通用寄存器。 8086有6個狀態(tài)標志和3個控制標志。 8086將1MB存儲空間分段管理,有4個段寄存器,對應(yīng)4種邏輯段。,1.5.3 堆棧和棧操作指令,1.5.3.1 堆棧的概念 1.堆棧是在存儲器中開辟的一片數(shù)據(jù)存儲區(qū),其特點: 一端固定棧底,另一端活動棧頂。 2.堆棧以 “先進后出”的方式工作。 3.堆
21、棧區(qū)地址: 段地址 保存在SS段寄存器中 偏移地址用堆棧指針寄存器SP指定,定義一個堆棧時,SS:0000,SP,棧頂與棧底重合,棧大小,小地址,大地址,4.8086/8088堆棧的工作過程,堆棧的伸展方向是從大地址向小地址 堆棧操作是字操作 將一個數(shù)壓入堆棧, 進棧,SPSP-2; 將一個數(shù)從棧頂彈出, 出棧,SPSP+2。,堆棧和隊列,堆棧:按照先進后出(FILO)的原則組織的存儲器空間(棧) 隊列:按照先進先出(FIFO)的原則組織的存儲器空間,堆棧操作,PUSH ;進棧指令先使堆棧指針SP減2,然后把一個字操作數(shù)存入堆棧頂部,POP ;出棧指令把棧頂?shù)囊粋€字傳送至指定的目的操作數(shù),然后堆棧指針SP加2,堆棧只有兩種基本操作: 進棧指令PUSH 出棧指令POP,1.5.
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公共安全保障行動五年計劃實施情況的總結(jié)
- 年辦公室文秘個人工作總結(jié)例文
- 2024-2025學(xué)年黑龍江省雞西市高一上冊10月月考數(shù)學(xué)學(xué)情檢測試題(含解析)
- 冠名大學(xué)活動合同范例
- 信陽房屋購買合同范例
- 吳中區(qū)承包施工合同范例
- 入股扶貧協(xié)議合同范例
- 亳州場地租賃合同范本
- 南京物業(yè)合同范例
- 個體賓館用工合同范本
- 迪士尼樂園主題PPT模板
- C形根管的形態(tài)識別和治療實用教案
- 部編版《道德與法治》四年級下冊第5課《合理消費》優(yōu)質(zhì)課件
- 京東入駐流程(課堂PPT)
- 鍋爐巡檢制度
- 切紙機說明書-原稿
- 中國國際航空公司VI形象識別規(guī)劃提案
- 三菱PLC模擬量模塊fx2n4da中文手冊
- 金屬材料工程課程設(shè)計
- 學(xué)校突發(fā)公共衛(wèi)生事件應(yīng)急處置.ppt
- 學(xué)生課堂表現(xiàn)評價量表(20211208204532)
評論
0/150
提交評論