




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第二章 32位PC匯編程序設(shè)計環(huán)境2.1 32位可編程寄存器體系 32位CPU包含有通用寄存器、段寄存器、標志寄存器EFLAGS、指令指針寄存器EIP、算術(shù)邏輯單元(ALU)及控制部件等。圖2.1 CPU與編程相關(guān)的寄存器 2.1.1 通用寄存器 32位寄存器的低16位分別包含AX,BX,CX,DX,SI,DI,BP,SP寄存器。同樣,16位的寄存器又分別包含AH,AL,BH,BL,CH,CL,DH,DL寄存器,分別對應(yīng)AX,BX,CX,DX的高8位與低8位。 例2.1 已知AH的內(nèi)容為75H,AL的內(nèi)容為72H,則AX的內(nèi)容為7572H;BX的內(nèi)容為4612H,BL的內(nèi)容為12H。求執(zhí)行傳送
2、指令 MOV BX,AX 之后,BX、BH、BL、AH、AL的值。 例2.2 已知DH=10H, CL=48H, 求執(zhí)行加法指令 ADD CL,DH 之后CL和DH的值。通用寄存器的用途(1)累加器AX(Accumulator):存放每次算法運算的結(jié)果,字節(jié)累加器為AL。基址器BX(Base):地址計算時,用作存放基地址的寄存器。計數(shù)器CX(Count):某些指令隱含的計數(shù)器,個別指令隱含用CL作計數(shù)器。數(shù)據(jù)寄存器DX(Data):即端口地址寄存器,某些輸入/輸出(I/O)操作用來存放外部設(shè)備的I/O地址。源變址器SI(Source Index)和目的變址器DI(Destination Ind
3、ex)均是變址寄存器,可對地址進行增量或減量計算,方便于變址的管理?;分羔楤P(Base Pointer):作為堆棧數(shù)據(jù)存取操作的基本地址指針寄存器。棧指針SP(Stack Pointer):堆棧指針寄存器,指示堆棧的當前偏移地址。即從堆棧當前存儲單元的地址到堆棧底端的距離(字節(jié)數(shù))。通用寄存器的用途(2)32位通用寄存器是在16位通用寄存器AX,BX,CX,DX,SI,DI,BP,SP的基礎(chǔ)上向左擴展16位寄存器而形成的。例2.3 已知EAX的內(nèi)容為98765432H,EBX的內(nèi)容為12340011H,求執(zhí)行減法指令 SUB EAX,EBX之后EAX,AX, AL, EBX, BX, BH
4、的值。解:指令SUB EAX,EBX表示EAX-EBXEAX,且EBX的內(nèi)容不變。即EAX-EBX= 98765432H- 12340011H=86425421H EAX因而各頂?shù)闹禐椋篍AX=86425421H,AX=5421H,AL=21H,EBX=12340011H,BX=0011H,BH=00H2.1.2 基本控制寄存器(1) 標志寄存器EFLAGS又稱為程序狀態(tài)字寄存器PSW(Program Status Word),如圖2.1所示。每一位代表程序的某種狀態(tài)。 基本標志寄存器是指011的標志位,分為條件標志和控制標志。(1)條件標志用來反映ALU中算術(shù)邏輯運算后的結(jié)果特征,共有6個,
5、分別為:符號標志位SF(Sign Flag):設(shè)置成運算操作結(jié)果的符號狀態(tài)。當結(jié)果為負時,SF=1;否則SF=0, 零標志ZF(Zero Flag):運算結(jié)果為0時,ZF=1,否則ZF=0 輔助進位標志AF(Auxiliary Carry Flag):運算過程中第3位有進位值,置AF=1,否則AF=0 2.1.2 基本控制寄存器(2)奇偶標志PF(Parity Flag):當結(jié)果操作數(shù)中有偶數(shù)個“1”時,置PF=1;否則,PF=0,這個標志位可用于檢驗機器代碼傳送是否出錯。 進位標志CF(Carry Flag):記錄運算操作時由最高有效位產(chǎn)生的進位值。例如,執(zhí)行加法指令時,如果向高位有進位,則
6、CF=1,否則CF=0 溢出標志OF(OverFlow Flag): 運算時,或結(jié)果操作數(shù)結(jié)果超出了機器能表示的范圍,則產(chǎn)生溢出,置OF=1, 否則,OF=0圖2.2 EFLAG寄存器各個位的含義基本控制寄存器(3)例2.4 執(zhí)行下面兩個加法后,判定各個條件標志位值。 0010 0011 0100 0101+ 0011 0010 0001 1001 0101 0101 0101 1110則指令執(zhí)行后,各個標志位的值分別為SF=0 ZF=0 PF=0 CF=0 AF=0 OF=0 0101 0100 0011 1001+ 0100 0101 0110 1010 1001 1001 1010 00
7、11則指令執(zhí)行后,各個標志位的值分別為SF=1 ZF=0 PF=1 CF=0 AF=1 OF=1基本控制寄存器(4)控制標志的功能是控制執(zhí)行特殊的功能,包括3個標志。 1. 方向標志DF(Direction Flag)用于字符串操作指令的控制。DF設(shè)置為0,則串操作控制處理的方向,是從帶有最低地址的第一個元素開始逐個處理;若DF1,則串操作從高地址向低地址方向逐個進行處理串元素。10000H10001H10002H10003H10004H10005H10000H10001H10002H10003H10004H10005H附加段附加段數(shù)據(jù)段數(shù)據(jù)段SIDISIDIDF0DF1abcdef基本控制寄
8、存器(5) 中斷允許標志IF(Interrupt Enable Flag) IF1時,CPU允許中斷;IF=0,則CPU關(guān)閉中斷。 跟蹤標志TF(Trap Flag) 如果TF=1,機器進入單步工作方式,每條指令執(zhí)行后,顯示結(jié)果及寄存器等有狀態(tài);若TF0,則機器處于連續(xù)工作方式。此標志為調(diào)試機器或調(diào)試程序發(fā)現(xiàn)故障而設(shè)置?;究刂萍拇嫫?6) 指令指針I(yè)P(Instruction Pointer)指出了程序執(zhí)行過程中的當前要取出的下條指令的地址。當取出一條指令后,IP自動的加上該指令的長度或者形成轉(zhuǎn)移地址,又指示下一條指令的地址。從而控制指令的執(zhí)行流程。 在主存中采用分段管理方法。段寄存器存放段
9、的起始地址。6個16位段寄存器如下: 代碼段寄存器CS(Code Segment) 存放當前正在執(zhí)行代碼的段的起始地址。 數(shù)據(jù)段寄存器DS(Data Segment) 存放當前正在執(zhí)行的程序所用數(shù)據(jù)的段的起始地址?;究刂萍拇嫫?7) 堆棧段寄存器SS(Stack Segment) 存放當前正在執(zhí)行程序暫時保留信息的段的起始地址。 附加段寄存器ES(Extra Segment)、FS、GS存放程序的數(shù)據(jù)段的起始地址。為程序設(shè)計使用多個數(shù)據(jù)段提供方便。2.2 實方式存儲器尋址機制 在實方式下,對于16位微處理器,只能尋址1MB存儲空間。 存儲器中以字節(jié)為基本單位進行數(shù)據(jù)的存儲。每個字節(jié)單元都有一
10、個編號,稱為地址。 16位微處理器有20條地址線,就有220個字節(jié)地址,能表示存儲器的容量是220(相當于1MB)個字節(jié)。32位處理器有32條地址線,則有232個字節(jié)地址,存儲容量為4GB。1、單元地址存儲單元的類型有字節(jié)單元、字單元和雙字單元。存儲字節(jié)單元的地址是字節(jié)地址,字單元的地址是連續(xù)2個字節(jié)地址中較低的字節(jié)地址,雙字單元則是4個連續(xù)字節(jié)中最低字節(jié)地址。存儲器地址0FFFFFH 0FFFFEH00801H98H00800H00001H00000H低位字節(jié)高位字節(jié)21H低位字節(jié)高位字節(jié)AHAL21H98H在存放字或雙字類型的數(shù)據(jù)時,按照“低對低,高對高”的存儲原則。2、存儲單元的內(nèi)容 存
11、儲單元的內(nèi)容是指該單元存放的二進制數(shù)據(jù)(常用16進制表示)。有時這些數(shù)據(jù)可以是另一存儲單元的地址。 例如: (1)設(shè)字單元的地址為100H,100H地址的內(nèi)容是1869H,則表示為(100H)=1869H,則字單元包含2個連續(xù)字節(jié)單元的內(nèi)容是(100H)69H,(101H)18H (2)設(shè)一個存儲單元的地址為M,M單元的內(nèi)容表示為(M),設(shè)M單元中存放N,而N又是一個單元的地址,則N單元的內(nèi)容可表示為(N)=(M) 例2.5 若M=0CA0H,N=0BF9H,(M)=N , (0BF9H)=2630H,求(M)=?2.2.2 存儲器的分段尋址(1) 1、分段尋址的原因 多任務(wù)、多作業(yè)并行時便于
12、共享存儲器的需要;方便程序的重定位。 、分段尋址的計算方法每個存儲單元的物理地址用“段地址:偏移地址”來表示。實方式下段寄存器只有16位,偏移地址也只有16位。 20位的物理地址=段寄存器的內(nèi)容24+偏移地址注意:存儲器的分段結(jié)構(gòu)是一種邏輯結(jié)構(gòu)。物理地址是唯一確定的,但是它可以不同段地址與偏移地址組合而成。2.2.2 存儲器的分段尋址(1) 、物理地址的形成存儲單元的物理地址(PA)段寄存器里的數(shù)值向左移位(即在最右邊加4個0)+偏移地址16位段地址16位偏移地址 0 0 0 019 18 4 3 2 1 0+20位物理地址341CH00000H123A0H157BCHCS=123AH123A
13、0H圖a: 地址計算圖b: 存儲地址空間2.2.2 存儲器的分段尋址(2) 例2.6 設(shè)數(shù)據(jù)1000放在存儲器的數(shù)據(jù)段里,段地址80480H的前位在DS中,該數(shù)據(jù)所在的存儲地址PA到段地址的距離為EA=0602H,求PA=?,(PA)=?解:因為段地址8048PA=804824+EA=80480H+0602H=80A82H (PA)=1000H2.2.3 段的分配方式() 在實方式下,每一個存儲段最大可達64K,最小為16B。對于1M的內(nèi)存空間,最多可以216個段,最少也有24個段。 通常段的分配由操作系統(tǒng)負責(zé)。 段重疊是指每個段的大小允許根據(jù)實際情況分配。2.2.3 段的分配方式()0150
14、4200850000段寄存器CSDSESSS 存儲器64K代碼64K代碼64K代碼64K代碼段地址01500H42000H8C500HC0000H代碼區(qū)數(shù)據(jù)區(qū)附加段區(qū)堆棧區(qū)2.3堆棧存儲技術(shù)() 堆??捎糜趥鬟f參數(shù)或臨時保留和恢復(fù)有關(guān)信息的情形。 堆棧單元的物理地址SS24+SP,其中SS是堆棧段寄存器,SP是棧頂指針。 堆棧的壓入(PUSH)和彈出(POP)操作都是針對字類型數(shù)據(jù)。 堆棧的壓入指令格式: PUSH 源操作數(shù) ;將源操作數(shù)壓入堆棧 執(zhí)行的操作:SP-2SP ;先將SP指針減后送SP 源操作數(shù) SP ;將操作數(shù)送至SP表示的單元。SP表示SP的內(nèi)容作為地址。2.3堆棧存儲技術(shù)() 例2.7 設(shè)AX=7809H, SP=0100H,執(zhí)行完P(guān)USH AX指令之后,SP=?, SP=? 解:因為SP-2=0100H-2=00FEHSP所以SP=00FEH, AX=7809 SPSP?SP09H78H0100H00FFH00FEH2.3堆棧存儲技術(shù)(3) 堆棧彈出指令POP指令格式 POP 目的操作數(shù) ;將當前SP指向堆棧單元的內(nèi)容彈出到目的操作數(shù) 執(zhí)行的操作:(SP) 目的操作數(shù) ;先將SP單元的內(nèi)容送入目的操作數(shù) S
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國電腦電源市場運行動態(tài)與十三五規(guī)劃研究報告
- 2025年專利許可與使用權(quán)合同范本
- 2025年物品寄存付費托管協(xié)議書
- 2025年共享租賃商業(yè)區(qū)域合同
- 深圳房產(chǎn)過戶合同范本:二手房篇
- 海上物流合同(水路)
- 2025年城市道路照明系統(tǒng)改善策劃協(xié)議
- 2025年體育場館與物業(yè)管理合同范本
- 服裝采購標準合同范本
- 股權(quán)質(zhì)押融資合同書
- 2025年官方領(lǐng)養(yǎng)兒童策劃協(xié)議書
- 2025年官方策劃完整個人離婚協(xié)議書模板
- 2025年度跨境電商平臺股權(quán)合同轉(zhuǎn)讓協(xié)議
- 2025年益陽醫(yī)學(xué)高等專科學(xué)校高職單招數(shù)學(xué)歷年(2016-2024)頻考點試題含答案解析
- 2025年人教版新教材英語小學(xué)三年級下冊教學(xué)計劃(含進度表)
- GB/T 45083-2024再生資源分揀中心建設(shè)和管理規(guī)范
- 北京理工大學(xué)出版社二年級下冊《勞動》教案
- 中國食物成分表2018年(標準版)第6版
- 三菱變頻器e700使用手冊基礎(chǔ)篇
- 第二課堂美術(shù)教案
- 化工投料試車方案(一)
評論
0/150
提交評論