微型計(jì)算機(jī)原理及應(yīng)用:第2章 80868088微處理器及其體系結(jié)構(gòu)(1)_第1頁(yè)
微型計(jì)算機(jī)原理及應(yīng)用:第2章 80868088微處理器及其體系結(jié)構(gòu)(1)_第2頁(yè)
微型計(jì)算機(jī)原理及應(yīng)用:第2章 80868088微處理器及其體系結(jié)構(gòu)(1)_第3頁(yè)
微型計(jì)算機(jī)原理及應(yīng)用:第2章 80868088微處理器及其體系結(jié)構(gòu)(1)_第4頁(yè)
微型計(jì)算機(jī)原理及應(yīng)用:第2章 80868088微處理器及其體系結(jié)構(gòu)(1)_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第2章8086/8088微處理器 及其體系結(jié)構(gòu)(1)第2章:8086微處理器-教學(xué)重點(diǎn)2.1 微處理器的內(nèi)部結(jié)構(gòu)2.2 微處理器外部特性(引腳功能)2.3 8086/8088的總線時(shí)序2.4 最小方式下的總線時(shí)序2.5 微機(jī)系統(tǒng)總線第2章:2.1 微處理器的內(nèi)部結(jié)構(gòu)從應(yīng)用角度(不是從內(nèi)部工作原理)展開典型微處理器的基本結(jié)構(gòu)8088/8086的功能結(jié)構(gòu)8088/8086的寄存器結(jié)構(gòu)8088/8086的存儲(chǔ)器組織(結(jié)構(gòu))為學(xué)習(xí)指令系統(tǒng)打好基礎(chǔ)例如:關(guān)心用戶“可編程”寄存器,不關(guān)心無法操縱的“透明”寄存器內(nèi)部數(shù)據(jù)總線控制總線數(shù)據(jù)總線地址總線暫存器累加器ALU標(biāo)志寄存器指令寄存指令譯碼時(shí)序和控制邏輯通

2、 用寄存器組地 址寄存器組地址總線控制數(shù)據(jù)總線控制第2章: 2.1.1 微處理器的基本結(jié)構(gòu)1.運(yùn)算器2.寄存器組3.控制部件1. 總線接口部件BIU (Bus Interface Unit) 運(yùn)輸部門2. 執(zhí)行部件EU (Execute Unit) 加工部門DSESSSCSIP數(shù)據(jù)暫存器執(zhí) 行 部 件控 制 電 路指令譯碼器總線接口控制電路AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器組BIUABDBCB地址加法器指令隊(duì)列PSW標(biāo)志寄存器EU運(yùn)算器8088 編程結(jié)構(gòu)DSESSSCSIP數(shù)據(jù)暫存器執(zhí) 行 部 件控 制 電 路指令譯碼器總線接口控制電路AXBXCXDXAHB

3、HCHDHSIDIBPSPALBLCLDL寄存器組BIUABDBCB地址加法器指令隊(duì)列PSW標(biāo)志寄存器EU運(yùn)算器8088的內(nèi)部結(jié)構(gòu)從功能上,也就是說在編程結(jié)構(gòu)下,可分成兩個(gè)單元:是指從程序員和使用者的角度看到的結(jié)構(gòu),亦可稱為功能結(jié)構(gòu),便于分析和理解,區(qū)別于實(shí)際的物理布局。第2章: 2.1.2 8088/8086的功能結(jié)構(gòu)(編程結(jié)構(gòu))第2章: 2.1.2 8088/8086的功能結(jié)構(gòu)(編程結(jié)構(gòu))1. 總線接口單元BIU 運(yùn)輸部門管理8088與系統(tǒng)總線的接口負(fù)責(zé)CPU對(duì)存儲(chǔ)器和外設(shè)進(jìn)行訪問具體表現(xiàn)為: (1)從內(nèi)存取指令,送到指令隊(duì)列; (2)配合執(zhí)行部件從指定的內(nèi)存單元 或I/O端口取數(shù)據(jù); (

4、3)將執(zhí)行部件的操作結(jié)果送到指定的內(nèi)存單元或I/O端口。2. 執(zhí)行單元EU 加工部門負(fù)責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)的運(yùn)算(包括算術(shù)、邏輯運(yùn)算,控制命令等)兩個(gè)單元相互獨(dú)立,分別完成各自操作,還可以并行執(zhí)行,實(shí)現(xiàn)指令預(yù)取(指令讀取和執(zhí)行的流水線操作)工作原理總線接口部件和執(zhí)行部件可并行工作,提高工作效率。指令的提取和執(zhí)行分別由BIU和EU完成。BIU和EU相互獨(dú)立又相互配合 (1) 當(dāng)指令隊(duì)列有一個(gè)空字節(jié)時(shí),BIU自動(dòng)把指令取到指令隊(duì)列中 (2) 執(zhí)行部件總是從指令隊(duì)列前部提出指令去執(zhí)行。 (3) 如果在執(zhí)行指令的過程中,需要訪問內(nèi)存或I/O端口,EU會(huì)請(qǐng)求BIU去完成存取操作。 由于有指令隊(duì)列的存

5、在,在EU執(zhí)行指令的同時(shí),BIU可取指令,即BIU和EU可處于并行工作狀態(tài)。 第2章:2.1.3 8088/8086的寄存器結(jié)構(gòu)8088/8086的寄存器組有8個(gè)通用寄存器4個(gè)段寄存器1個(gè)標(biāo)志寄存器1個(gè)指令指針寄存器他們均為16位!圖示 匯編語(yǔ)言程序員看到的處理器,就是寄存器 所以,一定要熟悉這些寄存器的名稱和作用8088CPU的內(nèi)部寄存器8086、8088內(nèi)部有 14個(gè)16位寄存器 按功能分為三類:通用寄存器段寄存器控制寄存器 通用寄存器分為三類:數(shù)據(jù)寄器:AX,BX,CX,DX地址指針寄器:SP,BP變址寄存器:SI,DI PSW中: 6 位條件標(biāo)志: OF,SF,ZF,CF,PF,AF

6、3位控制標(biāo)志: TF,IF,DF第2章:1. 通用寄存器8088有8個(gè)通用的16位寄存器(1)數(shù)據(jù)寄存器: AX BX CX DX(2)變址寄存器: SI DI(3)指針寄存器: BP SP4個(gè)數(shù)據(jù)寄存器還可以分成高8位和低8位兩個(gè)獨(dú)立的寄存器,這樣又形成8個(gè)通用的8位寄存器AX: AH ALBX: BH BLCX: CH CLDX: DH DL第2章:(1)數(shù)據(jù)寄存器AX稱為累加器(Accumulator)使用頻度最高。用于算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信息等BX稱為基址寄存器(Base address Register)常用做存放存儲(chǔ)器地址CX稱為計(jì)數(shù)器(Counter)作為循環(huán)和串操作等指

7、令中的隱含計(jì)數(shù)器DX稱為數(shù)據(jù)寄存器(Data register)常用來存放雙字長(zhǎng)數(shù)據(jù)的高16位,或存放外設(shè)端口地址第2章:(2)變址寄存器16位變址寄存器SI和DI常用于存儲(chǔ)器變址尋址方式時(shí)提供地址SI是源地址寄存器(Source Index)DI是目的地址寄存器(Destination Index)在串操作類指令中,SI、DI還有較特殊的用法 現(xiàn)在不必完全理解,以后會(huì)詳細(xì)展開第2章:(3)指針寄存器指針寄存器用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù)SP為堆棧指針寄存器(Stack Pointer),指示堆棧段棧頂?shù)奈恢茫ㄆ频刂罚〣P為基址指針寄存器(Base Pointer),表示數(shù)據(jù)在堆棧段中的基地址S

8、P和BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲(chǔ)單元地址堆棧(Stack)是主存中一個(gè)特殊的區(qū)域,采用“先進(jìn)后出”或“后進(jìn)先出”存取操作方式、而不是隨機(jī)存取方式。用8088/8086形成的微機(jī)系統(tǒng)中,堆棧區(qū)域被稱為堆棧段第2章:2. 指令指針寄存器IP(Instruction Pointer)為指令指針寄存器,指示主存儲(chǔ)器指令的位置隨著指令的執(zhí)行,IP將自動(dòng)修改以指示下一條指令所在的存儲(chǔ)器位置IP寄存器是一個(gè)專用寄存器IP寄存器與CS段寄存器聯(lián)合使用以確定下一條指令的存儲(chǔ)單元地址第2章:3. 標(biāo)志寄存器標(biāo)志(Flag)用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行形式8088處理器的各種標(biāo)志形成了

9、一個(gè)16位的標(biāo)志寄存器FLAGS(程序狀態(tài)字PSW寄存器) 程序設(shè)計(jì)需要利用標(biāo)志的狀態(tài)第2章:標(biāo)志寄存器-分類狀態(tài)標(biāo)志用來記錄程序運(yùn)行結(jié)果的狀態(tài)信息,許多指令的執(zhí)行都將相應(yīng)地設(shè)置它CF ZF SF PF OF AF控制標(biāo)志可由程序根據(jù)需要用指令設(shè)置,用于控制處理器執(zhí)行指令的方式DF IF TFOF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0標(biāo)志寄存器FLAGS第2章:進(jìn)位標(biāo)志CF(Carry Flag)當(dāng)運(yùn)算結(jié)果的最高有效位有進(jìn)位(加法)或借位(減法)時(shí),進(jìn)位標(biāo)志置1,即CF1; 否則CF03AH + 7CHB6H,沒有進(jìn)位:CF = 0AAH + 7CH(1)26H

10、,有進(jìn)位:CF = 1第2章:零標(biāo)志ZF(Zero Flag)若運(yùn)算結(jié)果為0,則ZF1;否則ZF03AH7CHB6H,結(jié)果不是零:ZF084H7CH(1)00H,結(jié)果是零:ZF1 注意:ZF為1表示的結(jié)果是0第2章:符號(hào)標(biāo)志SF(Sign Flag)運(yùn)算結(jié)果最高位為1,則SF1; 否則SF03AH7CHB6H,最高位D71:SF184H7CH(1)00H,最高位D70:SF0 有符號(hào)數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號(hào)所以,最高有效位就是符號(hào)標(biāo)志的狀態(tài)第2章:奇偶標(biāo)志PF(Parity Flag)當(dāng)運(yùn)算結(jié)果最低字節(jié)中“1”的個(gè)數(shù)為零或偶數(shù)時(shí),PF1;否則PF03AH7CHB6H10110110B結(jié)果

11、中有5個(gè)“1”,是奇數(shù):PF0 PF標(biāo)志僅反映最低8位中“1”的個(gè)數(shù)是偶或奇,即使是進(jìn)行16位字操作第2章:溢出標(biāo)志OF(Overflow Flag)若算術(shù)運(yùn)算的結(jié)果有溢出,則OF1; 否則 OF03AH + 7CHB6H,產(chǎn)生溢出:OF1AAH + 7CH(1)26H,沒有溢出:OF0?第2章:什么是溢出處理器內(nèi)部以補(bǔ)碼表示有符號(hào)數(shù)8位表達(dá)的整數(shù)范圍是:127 12816位表達(dá)的范圍是:32767 32768如果運(yùn)算結(jié)果超出這個(gè)范圍,就產(chǎn)生了溢出有溢出,說明有符號(hào)數(shù)的運(yùn)算結(jié)果不正確3AH7CHB6H,就是58124182,已經(jīng)超出128127范圍,產(chǎn)生溢出,故OF1;補(bǔ)碼B6H表達(dá)真值是74

12、,顯然運(yùn)算結(jié)果也不正確 B6H10110110B,最高位為1,作為有符號(hào)數(shù)是負(fù)數(shù) 對(duì)B6H求反加1等于:01001001B101001010B4AH74 所以,B6H表達(dá)有符號(hào)數(shù)的真值為74第2章:溢出和進(jìn)位的區(qū)別溢出標(biāo)志OF和進(jìn)位標(biāo)志CF是兩個(gè)意義不同的標(biāo)志進(jìn)位標(biāo)志表示無符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果仍然正確溢出標(biāo)志表示有符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果已經(jīng)不正確?第2章: 溢出和進(jìn)位的對(duì)比例1:3AH7CHB6H無符號(hào)數(shù)運(yùn)算:58124182范圍內(nèi),無進(jìn)位有符號(hào)數(shù)運(yùn)算: 58124182范圍外,有溢出例2:AAH7CH(1)26H無符號(hào)數(shù)運(yùn)算:170124294范圍外,有進(jìn)位有符

13、號(hào)數(shù)運(yùn)算:8612428范圍內(nèi),無溢出第2章:溢出和進(jìn)位的應(yīng)用場(chǎng)合處理器對(duì)兩個(gè)操作數(shù)進(jìn)行運(yùn)算時(shí),按照無符號(hào)數(shù)求得結(jié)果,并相應(yīng)設(shè)置進(jìn)位標(biāo)志CF;同時(shí),根據(jù)是否超出有符號(hào)數(shù)的范圍設(shè)置溢出標(biāo)志OF應(yīng)該利用哪個(gè)標(biāo)志,則由程序員來決定。也就是說,如果將參加運(yùn)算的操作數(shù)認(rèn)為是無符號(hào)數(shù),就應(yīng)該關(guān)心進(jìn)位;認(rèn)為是有符號(hào)數(shù),則要注意是否溢出第2章:溢出的判斷判斷運(yùn)算結(jié)果是否溢出有一個(gè)簡(jiǎn)單的規(guī)則:只有當(dāng)兩個(gè)相同符號(hào)數(shù)相加(包括不同符號(hào)數(shù)相減),而運(yùn)算結(jié)果的符號(hào)與原數(shù)據(jù)符號(hào)相反時(shí),產(chǎn)生溢出;因?yàn)?,此時(shí)的運(yùn)算結(jié)果顯然不正確其他情況下,則不會(huì)產(chǎn)生溢出例1:3AH7CHB6H溢出例2:AAH7CH無溢出例3:3AH7CH無

14、溢出例4:AAH7CH2DH溢出第2章:輔助進(jìn)位標(biāo)志AF(Auxiliary Carry Flag)3AH7CHB6H,D3有進(jìn)位:AF1運(yùn)算時(shí)D3位(低半字節(jié))有進(jìn)位或借位時(shí),AF1;否則AF0這個(gè)標(biāo)志主要由處理器內(nèi)部使用,用于十進(jìn)制算術(shù)運(yùn)算調(diào)整指令中,用戶一般不必關(guān)心第2章:方向標(biāo)志DF(Direction Flag)用于串操作指令中,控制地址的變化方向:設(shè)置DF0,存儲(chǔ)器地址自動(dòng)增加;設(shè)置DF1,存儲(chǔ)器地址自動(dòng)減少CLD指令復(fù)位方向標(biāo)志:DF0STD指令置位方向標(biāo)志:DF1第2章:中斷允許標(biāo)志IF(Interrupt-enable Flag)控制可屏蔽中斷是否可以被處理器響應(yīng):設(shè)置IF1

15、,則允許中斷;設(shè)置IF0,則禁止中斷CLI指令復(fù)位中斷標(biāo)志:IF0STI指令置位中斷標(biāo)志:IF1第2章:陷阱標(biāo)志TF(Trap Flag)用于控制處理器進(jìn)入單步操作方式:設(shè)置TF0,處理器正常工作;設(shè)置TF1,處理器單步執(zhí)行指令單步執(zhí)行指令處理器在每條指令執(zhí)行結(jié)束時(shí),便產(chǎn)生一個(gè)編號(hào)為1的內(nèi)部中斷這種內(nèi)部中斷稱為單步中斷所以TF也稱為單步標(biāo)志利用單步中斷可對(duì)程序進(jìn)行逐條指令的調(diào)試這種逐條指令調(diào)試程序的方法就是單步調(diào)試第2章:2.1.4 8088/8086的存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器是計(jì)算機(jī)存儲(chǔ)信息的地方。掌握數(shù)據(jù)存儲(chǔ)格式,以及存儲(chǔ)器的分段管理對(duì)以后的匯編程序設(shè)計(jì)非常重要你能區(qū)別寄存器、存儲(chǔ)器(主存)、外存

16、(包括硬盤、光盤、磁帶等存儲(chǔ)介質(zhì))嗎?答案第2章:寄存器、存儲(chǔ)器和外存的區(qū)別寄存器是微處理器(CPU)內(nèi)部暫存數(shù)據(jù)的存儲(chǔ)單元,以名稱表示,例如:AX,BX.等存儲(chǔ)器也就是平時(shí)所說的主存,也叫內(nèi)存,可直接與CPU進(jìn)行數(shù)據(jù)交換。主存利用地址區(qū)別外存主要指用來長(zhǎng)久保存數(shù)據(jù)的外部存儲(chǔ)介質(zhì),常見的有硬盤、光盤、磁帶、U盤等。外存的數(shù)據(jù)只能通過主存間接地與CPU交換數(shù)據(jù)程序及其數(shù)據(jù)可以長(zhǎng)久存放在外存,在運(yùn)行需要時(shí)才進(jìn)入主存第2章:1. 數(shù)據(jù)的存儲(chǔ)格式計(jì)算機(jī)中信息的單位二進(jìn)制位Bit:存儲(chǔ)一位二進(jìn)制數(shù):0或1字節(jié)Byte:8個(gè)二進(jìn)制位,D7D0字Word:16位,2個(gè)字節(jié),D15D0雙字DWord:32位,

17、4個(gè)字節(jié),D31 D0最低有效位LSB:數(shù)據(jù)的最低位,D0位最高有效位MSB:數(shù)據(jù)的最高位,對(duì)應(yīng)字節(jié)、字、雙字分別指D7、D15、D31位圖示第2章:存儲(chǔ)單元及其存儲(chǔ)內(nèi)容每個(gè)存儲(chǔ)單元都有一個(gè)編號(hào);被稱為存儲(chǔ)器地址每個(gè)存儲(chǔ)單元存放一個(gè)字節(jié)的內(nèi)容圖示0002H單元存放有一個(gè)數(shù)據(jù)34H表達(dá)為0002H34H第2章:多字節(jié)數(shù)據(jù)存放方式多字節(jié)數(shù)據(jù)在存儲(chǔ)器中占連續(xù)的多個(gè)存儲(chǔ)單元:存放時(shí),低字節(jié)存入低地址,高字節(jié)存入高地址;表達(dá)時(shí),用它的低地址表示多字節(jié)數(shù)據(jù)占據(jù)的地址空間。圖2-5中0002H“字”單元的內(nèi)容為:0002H = 1234H0002H號(hào)“雙字”單元的內(nèi)容為:0002H = 78561234H

18、80 x86處理器采用“低對(duì)低、高對(duì)高”的存儲(chǔ)形式,被稱為“小端方式Little Endian”。 相對(duì)應(yīng)還存在“大端方式Big Endian”。圖示第2章:數(shù)據(jù)的地址對(duì)齊同一個(gè)存儲(chǔ)器地址可以是字節(jié)單元地址、字單元地址、雙字單元地址等等(視具體情況來確定)字單元安排在偶地址(xxx0B)、雙字單元安排在模4地址(xx00B)等,被稱為“地址對(duì)齊(Align)”對(duì)于不對(duì)齊地址的數(shù)據(jù),處理器訪問時(shí),需要額外的訪問存儲(chǔ)器時(shí)間應(yīng)該將數(shù)據(jù)的地址對(duì)齊,以取得較高的存取速度在8086系統(tǒng)中,存儲(chǔ)器分為奇偶體,其原因?yàn)椋?8086有16條數(shù)據(jù)線,但常用的存儲(chǔ)器為8位數(shù)據(jù)線,為了實(shí)現(xiàn)8086即可存取8位數(shù)據(jù),又

19、可存取16數(shù)據(jù),8086通過BHE和A0線的邏輯組合將存儲(chǔ)器分為兩部分:奇地址存儲(chǔ)器和偶地址存儲(chǔ)器。第2章: 2. 8086/8088的存儲(chǔ)體結(jié)構(gòu) 8086CPU與存儲(chǔ)器的連接奇地址存儲(chǔ)體512K 8A0=1偶地址存儲(chǔ)體512K 8A0=00000100003FFFFFFFFFE0000200000存儲(chǔ)體地址空間分配 8086存儲(chǔ)器高低位庫(kù)選擇(奇、偶體選擇)BHE A0操作所用的數(shù)據(jù)線 0 0從偶地址開始讀/寫一個(gè)字AD15AD01 0從偶地址讀/寫一個(gè)字AD7AD00 1從奇地址開始讀/寫一個(gè)字AD15AD8從奇地址開始讀/寫一個(gè)字1 0(第一個(gè)總線周期)AD15AD80 1(第二個(gè)總線周

20、期)AD7AD0第2章:3. 存儲(chǔ)器的分段管理8088CPU有20條地址線最大可尋址空間為2201MB物理地址范圍從00000HFFFFFH8088CPU將1MB空間分成許多邏輯段(Segment)每個(gè)段最大限制為64KB段地址的低4位為0000B這樣,一個(gè)存儲(chǔ)單元除具有一個(gè)唯一的物理地址外,還具有多個(gè)邏輯地址 為什么?第2章:物理地址和邏輯地址邏輯地址:由段基址和段內(nèi)偏移地址組成的地址, 段基址和段內(nèi)偏移地址都是16位的無符號(hào)二進(jìn)制數(shù), 在程序設(shè)計(jì)時(shí)使用。物理地址:存儲(chǔ)器的絕對(duì)地址(20位的實(shí)際地址), 范圍從00000H FFFFFH , 是由CPU訪問存儲(chǔ)器時(shí)由地址總線發(fā)出的地址。 邏輯

21、地址與物理地址概念如下頁(yè)圖所示。 物理地址的形成.20000H25F60H25F61H25F62H25F63H2000H段基址邏輯地址段內(nèi)偏移地址5F62H邏輯地址與物理地址第2章:物理地址和邏輯地址8088CPU存儲(chǔ)系統(tǒng)中,對(duì)應(yīng)每個(gè)物理存儲(chǔ)單元都有一個(gè)唯一的20位編號(hào),就是物理地址,從00000H FFFFFH分段后在用戶編程時(shí),采用邏輯地址,形式為段基地址 : 段內(nèi)偏移地址分隔符物理地址 14700H邏輯地址 1460H:100H第2章:邏輯地址段地址說明邏輯段在主存中的起始位置8088規(guī)定段地址必須是模16地址:xxxx0H省略低4位0000B,段地址就可以用16位數(shù)據(jù)表示,就能用16位

22、段寄存器表達(dá)段地址偏移地址說明主存單元距離段起始位置的偏移量每段不超過64KB,偏移地址也可用16位數(shù)據(jù)表示第2章:物理地址和邏輯地址的轉(zhuǎn)換將邏輯地址中的段地址左移4位,加上偏移地址就得到20位物理地址一個(gè)物理地址可以有多個(gè)邏輯地址邏輯地址1460:100、1380:0F00物理地址14700H 14700H14600H 100H14700H 0F00H13800H14700H段地址左移4位加上偏移地址得到物理地址第2章:4. 段寄存器8088有4個(gè)16位段寄存器CS(代碼段)指明代碼段的起始地址SS(堆棧段)指明堆棧段的起始地址DS(數(shù)據(jù)段)指明數(shù)據(jù)段的起始地址ES(附加段)指明附加段的起始

23、地址每個(gè)段寄存器用來確定一個(gè)邏輯段的起始地址,每種邏輯段均有各自的用途第2章:代碼段寄存器CS(Code Segment)代碼段用來存放程序的指令序列代碼段寄存器CS存放代碼段的段地址指令指針寄存器IP指示下條指令的偏移地址處理器利用CS:IP取得下一條要執(zhí)行的指令第2章:堆棧段寄存器SS(Stack Segment)堆棧段確定堆棧所在的主存區(qū)域堆棧段寄存器SS存放堆棧段的段地址堆棧指針寄存器SP指示堆棧棧頂?shù)钠频刂诽幚砥骼肧S:SP操作堆棧頂?shù)臄?shù)據(jù)第2章:數(shù)據(jù)段寄存器DS(Data Segment)數(shù)據(jù)段存放運(yùn)行程序所用的數(shù)據(jù)數(shù)據(jù)段寄存器DS存放數(shù)據(jù)段的段地址各種主存尋址方式(有效地址E

24、A)得到存儲(chǔ)器中操作數(shù)的偏移地址處理器利用DS:EA存取數(shù)據(jù)段中的數(shù)據(jù)第2章:附加段寄存器ES(Extra Segment)附加段是附加的數(shù)據(jù)段,也保存數(shù)據(jù):附加段寄存器ES存放附加段的段地址各種主存尋址方式(有效地址EA)得到存儲(chǔ)器中操作數(shù)的偏移地址處理器利用ES:EA存取附加段中的數(shù)據(jù)串操作指令將附加段作為其目的操作數(shù)的存放區(qū)域第2章:如何分配各個(gè)邏輯段程序的指令序列必須安排在代碼段程序使用的堆棧一定在堆棧段程序中的數(shù)據(jù)默認(rèn)是安排在數(shù)據(jù)段,也經(jīng)常安排在附加段,尤其是串操作的目的區(qū)必須是附加段數(shù)據(jù)的存放比較靈活,實(shí)際上可以存放在任何一種邏輯段中演示第2章:段超越(段基址)前綴指令沒有指明時(shí),

25、一般的數(shù)據(jù)訪問在DS段;使用BP訪問主存,則在SS段默認(rèn)的情況允許改變,需要使用段超越(段基址)前綴指令;8088指令系統(tǒng)中有4個(gè):CS:;代碼段超越,使用代碼段的數(shù)據(jù)SS: ;堆棧段超越,使用堆棧段的數(shù)據(jù)DS: ;數(shù)據(jù)段超越,使用數(shù)據(jù)段的數(shù)據(jù)ES: ;附加段超越,使用附加段的數(shù)據(jù)示例第2章:段超越的示例沒有段超越的指令實(shí)例:MOV AX,2000H;AXDS:2000H;從默認(rèn)的DS數(shù)據(jù)段取出數(shù)據(jù)采用段超越前綴的指令實(shí)例:MOV AX,ES:2000H;AXES:2000H;從指定的ES附加段取出數(shù)據(jù)總結(jié)第2章:段寄存器的使用規(guī)定訪問存儲(chǔ)器的方式默認(rèn)(正常使用的段基址)可超越(可使用的段基址

26、)偏移地址取指令CS無IP堆棧操作SS無SP一般數(shù)據(jù)訪問DSCS ES SS有效地址EABP基址的尋址方式SSCS ES DS有效地址EA串操作的源操作數(shù)DSCS ES SSSI串操作的目的操作數(shù)ES無DI第2章:寄存器的總結(jié)8088有8個(gè)8位通用寄存器、8個(gè)16位通用寄存器8088有6個(gè)狀態(tài)標(biāo)志和3個(gè)控制標(biāo)志8088將1MB存儲(chǔ)空間分段管理,有4個(gè)段寄存器,對(duì)應(yīng)4種邏輯段8088有4個(gè)段超越前綴指令,用于明確指定數(shù)據(jù)所在的邏輯段8086系統(tǒng)內(nèi)存地址的一些專用區(qū)域 0000003FFH 1KB 空間用于存放中斷向量表,可存放256個(gè)中斷服務(wù)程序的入口地址,每個(gè)地址占4字節(jié)。 B0000B0FFFH 4KB 為單色顯示器顯示緩沖區(qū) ,存放屏幕當(dāng)前顯示字符的ASCII碼。 B8000BBFFFH 16KB 為彩色顯示器顯示緩沖區(qū),存放屏幕當(dāng)前像素代碼。 FFFF0H 啟動(dòng)地址。一般用來存放一條無條件轉(zhuǎn)移指令,轉(zhuǎn)到系統(tǒng)初始化程序。 課后習(xí)題 習(xí)題二部分習(xí)題解答4、解答:1)數(shù)據(jù)段中可存放的數(shù)據(jù)最多維64KB,首地址為0150H10H01500H,末地址為01500HFFFFH=114FFH。 2)在堆棧段中可存放32K個(gè)16位的字,首地址為1200H10H=12000H,末地址為12000H +FFFFH=21FFF

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論