ASM02IBMPC計(jì)算機(jī)組織ppt課件_第1頁
ASM02IBMPC計(jì)算機(jī)組織ppt課件_第2頁
ASM02IBMPC計(jì)算機(jī)組織ppt課件_第3頁
ASM02IBMPC計(jì)算機(jī)組織ppt課件_第4頁
ASM02IBMPC計(jì)算機(jī)組織ppt課件_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、匯編言語程序設(shè)計(jì)第2章 IBM PC 計(jì)算機(jī)組織Assembly Language Programming第2章 IBM PC 計(jì)算機(jī)組織2.1 80X86微處置器概述2.2 基于微處置器的計(jì)算機(jī)系統(tǒng)組成 2.3 微處置器 2.3.1 微處置器的構(gòu)造 2.3.2 80X86存放器組2.4 存儲(chǔ)器 2.4.1 存儲(chǔ)單元的地址和內(nèi)容 2.4.2 實(shí)方式存儲(chǔ)器尋址 2.4.3 維護(hù)方式存儲(chǔ)器尋址32.180X86微處置器 將運(yùn)算器和控制器集成在一個(gè)芯片上就構(gòu)成了微處置器 (CPU), 控制整個(gè)計(jì)算機(jī)的運(yùn)作并進(jìn)展運(yùn)算。8086/808880286 80386 80486 Pentium字長161632

2、3232數(shù)據(jù)總線DB16/816323264地址總線AB2024323232最大尋址1MB16MB4GB4GB4GB時(shí)鐘范圍(MHz) 4.77 616 16403312066166執(zhí)行速度(MIPS) 0.05 0.40.834207511228080X86微處置器主要特征:2.2 基于微處置器的計(jì)算機(jī)系統(tǒng)構(gòu)成計(jì)算機(jī)系統(tǒng)包括硬件和軟件兩大部分硬件:指計(jì)算機(jī)的物理實(shí)體(如CPU,顯卡等), 它分為微處置器, 存儲(chǔ)器, 接口電路, 外部設(shè)備 和 系統(tǒng)總線 等。中央處置機(jī) CPU總線控制邏輯接 口接 口存儲(chǔ)器大容量存儲(chǔ)器I/O子系統(tǒng)系統(tǒng)總線I/O設(shè)備45軟件:指運(yùn)用和發(fā)揚(yáng)計(jì)算機(jī)效能的各種程序的總稱

3、,通常我們將它分為兩大類: 系統(tǒng)軟件:系統(tǒng)軟件主要用來對(duì)計(jì)算機(jī)系統(tǒng)實(shí)踐運(yùn)轉(zhuǎn)進(jìn)展控制,管理和效力的。運(yùn)用軟件:指的是用戶本人編的各類運(yùn)用程序 .系統(tǒng)軟件軟件數(shù)據(jù)庫管理系統(tǒng)工具軟件 言語處置程序 操作系統(tǒng)運(yùn)用軟件軟件包用戶程序2.3 中央微處置器2.3.1中央微處置器的組成及其編程構(gòu)造義務(wù): 執(zhí)行存放在存儲(chǔ)器里的指令序列。組成:算術(shù)邏輯部件 進(jìn)展算術(shù)和邏輯運(yùn)算??刂七壿?擔(dān)任對(duì)全機(jī)的控制任務(wù)。任務(wù)存放器存放計(jì)算過程中的各種信息。編程構(gòu)造: CPU對(duì)匯編言語程序員來說,編程構(gòu)造主 要由一組可見存放器組成。6操作數(shù)地址、操作數(shù)、運(yùn)算的中間結(jié)果782.3.2 8086的存放器組兩大類:程序不可見存放器和

4、程序可見存放器。程序不可見存放器 普通運(yùn)用程序中不運(yùn)用而由系統(tǒng) 運(yùn)用的存放器。程序可見存放器 可以由指令運(yùn)用的存放器。包括三類:通用存放器8個(gè) 公用存放器2個(gè) 段存放器4個(gè)80X86程序可見存放器組EAXALAH 累加器EBXBLBH 基址變址ECXCLCH 計(jì)數(shù)器EDXDLDH 數(shù)據(jù)ESPSP 堆棧指針EBPBP 基址指針ESISI 源變址EDIDI 目的變址EIPIP指令指針EFLAGSFLAGS標(biāo)志CS 代碼段DS 數(shù)據(jù)段ES 附加段SS 堆棧段FSGSAXBXCXDX101.通用存放器 (1) 數(shù)據(jù)存放器 AX (accumulator): 累加器,在乘除、I/O指令中運(yùn)用 BX (b

5、ase): 通用,基地址存放器 CX (count): 通用,計(jì)數(shù)器 DX (data): 通用,雙字運(yùn)算及I/O操作中運(yùn)用。8個(gè)字節(jié)存放器: AH、AL、BH、BL、CH、CL、DH、DL (2) 指針或變址存放器 SP (stack pointer) : 堆棧指針存放器,用來指示棧頂?shù)钠频刂?BP (base pointer): 基址存放器,與SS聯(lián)用 SI (source index): 源變址存放器 DI (destination index): 目的變址存放器。 (3) 32位通用存放器 EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI,在80386及其后繼機(jī)型中,一

6、切32位通用存放器既可以存放數(shù)據(jù),也可以存放地址,每個(gè)存放器的公用特性與8086/8088和80286的一一對(duì)應(yīng)2.公用存放器 (1) IP (instruction pointer)/EIP: 指令指針存放器 存放代碼段中的偏移地址,在程序的運(yùn)轉(zhuǎn)中一直指向下一條指令的首 地址,與CS一同確定一條指令的物理地址。 (2) FLAGS(Program Status Word)/EFLAG:標(biāo)志存放器 存放反映處置器和運(yùn)轉(zhuǎn)程序執(zhí)行結(jié)果形狀的。11123.段存放器 公用于存放段地址(1) CS (Code Segment): 代碼段存放器(2) DS (Data Segment): 數(shù)據(jù)段存放器(3

7、) SS (Stack Segment): 堆棧段存放器(4) ES (Extra Segment): 附加段存放器(5) FS附加段存放器: 附加段存放器(6) GS附加段存放器: 附加段存放器 (5)和(6)無缺省組合,必需加段前綴闡明138086/8088 標(biāo)志存放器 ( FLAGS / PSW 條件碼標(biāo)志: 控制標(biāo)志:ZF 零標(biāo)志 DF 方向標(biāo)志 SF 符號(hào)標(biāo)志 IF 中斷標(biāo)志CF 進(jìn)位標(biāo)志TF 圈套標(biāo)志OF 溢出標(biāo)志AF 輔助進(jìn)位標(biāo)志PF 奇偶標(biāo)志 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0CFPFAF ZFSFTFIFDFOF其它FLAGS標(biāo)志: (

8、自學(xué))IOPLI/O Privilege LevelI/O特權(quán)級(jí)NTNested Task嵌套義務(wù)標(biāo)志 ; 286添加RFResume Flag重新啟動(dòng)標(biāo)志VMVirtual 8086 Mode虛擬8086方式位 ; 386添加ACAlignment Check Mode對(duì)準(zhǔn)檢查方式位 ; 486添加VIFVirtual Interrupt Flag虛擬中斷標(biāo)志VIPVirtual Interrupt Pending Flag虛擬中斷未決標(biāo)志IDIdentification Flag 標(biāo)識(shí)標(biāo)志 ; Pentium添加15零標(biāo)志ZFZero Flag假設(shè)運(yùn)算結(jié)果為0,那么ZF = 1,否那么ZF

9、 = 0。例如:3AH + 7CHB6H, 結(jié)果非零:ZF = 084H + 7CH100H,結(jié)果是零:ZF = 1留意:ZF為1表示的結(jié)果是016符號(hào)標(biāo)志SFSign Flag運(yùn)算結(jié)果最高位為1,那么SF = 1;否那么SF = 0。例如: 3AH + 7CHB6H, 最高位D71:SF = 1 84H + 7CH100H,最高位D70:SF = 0 有符號(hào)數(shù)據(jù)利用最高有效位表示數(shù)據(jù)的符號(hào)。所以,最高有效位就是符號(hào)標(biāo)志的形狀。17進(jìn)位標(biāo)志CFCarry Flag當(dāng)運(yùn)算結(jié)果的最高有效位有進(jìn)位(加法)或借位(減法)時(shí),進(jìn)位標(biāo)志置1,即CF = 1;否那么CF = 0。例如: 3AH + 7CHB

10、6H, 即 58124182 無進(jìn)位:CF = 0 AAH + 7CH(1)26H,即 170124294 有進(jìn)位:CF = 118溢出標(biāo)志OFOverflow Flag假設(shè)算術(shù)運(yùn)算的結(jié)果有溢出,那么OF=1;否那么 OF0。溢出:有符號(hào)數(shù)運(yùn)算結(jié)果超出了補(bǔ)碼表示范圍。處置器內(nèi)部以補(bǔ)碼表示有符號(hào)數(shù)8位字長 整數(shù)范圍:-128 + 12716位字長 整數(shù)范圍:-32768 +32767例如: 3AH + 7CHB6H,即 58124182 有溢出:OF = 1 AAH + 7CH(1)26H,即-8612428 無溢出:OF = 0什么是溢出?19溢出和進(jìn)位進(jìn)位標(biāo)志CF 表示無符號(hào)數(shù)運(yùn)算結(jié)果能否超

11、出范圍, 運(yùn)算結(jié)果依然正確配合進(jìn)位。溢出標(biāo)志OF 表示有符號(hào)數(shù)運(yùn)算結(jié)果能否超出范圍, 運(yùn)算結(jié)果曾經(jīng)不正確。處置器 按照無符號(hào)數(shù)求得結(jié)果,并設(shè)置進(jìn)位標(biāo)志CF;同時(shí),根據(jù)能否超出有符號(hào)數(shù)的范圍設(shè)置溢出標(biāo)志OF。程序員 決議應(yīng)該利用哪個(gè)標(biāo)志。 以為是無符號(hào)數(shù)運(yùn)算,關(guān)懷進(jìn)位標(biāo)志; 以為是有符號(hào)數(shù)運(yùn)算,留意溢出標(biāo)志。20例: MOV AX, FFFFH MOV BX, 1 ADD AX, BX 指令執(zhí)行后,(AX)=0, OF=0, CF=1, ZF=1, SF=0例: MOV AX, 1 MOV BX, 2 ADD AX, BX 指令執(zhí)行后,(AX)=3, OF=0, CF=0, ZF=0, SF=0

12、212.3.3 80 x86 CPU的任務(wù)方式 80 x86 CPU的3種任務(wù)方式 1. 實(shí)方式 與8086兼容的任務(wù)方式,只需低20位地址線起 作用,僅能尋址第一個(gè)1MB的內(nèi)存空間。 如:MSDOS運(yùn)轉(zhuǎn)在實(shí)方式下。2. 維護(hù)方式32位80 x86 CPU的主要任務(wù)方式,提供對(duì)程序 和數(shù)據(jù)進(jìn)展平安檢查的維護(hù)機(jī)制。 如:Windows 9x/NT/2000運(yùn)轉(zhuǎn)在維護(hù)方式下。3. 虛擬8086方式 在Windows 9x下,假設(shè)翻開一個(gè)MS DOS 窗口,運(yùn)轉(zhuǎn)一個(gè)DOS運(yùn)用程序,那么該程序就 運(yùn)轉(zhuǎn)在虛擬8086方式下。222.4 存儲(chǔ)器 2.4.1 存儲(chǔ)單元的地址和內(nèi)容1. 存儲(chǔ)信息的根本單位 b

13、it 計(jì)算機(jī)中信息表示的最小單位, byte(8位數(shù)據(jù)存取的最小單位 2. 地址:每一字節(jié)單元的編號(hào),地址空間的范圍與地址 線數(shù)目有關(guān)。 16位地址: 0000H FFFFH; 20位地址:00000H FFFFFH;3. 內(nèi)容:存儲(chǔ)單元中存放的信息,如(0004)=78H4. 匯編中的數(shù)據(jù)類型 byte(8位) word(16位) Dword(32位) Fword(48位) 存儲(chǔ)器構(gòu)造.存儲(chǔ)器0000H0001H0002H0003H0004H0005H0006HFFFEHFFFFH低字節(jié)高字節(jié)字單元字節(jié)單元低地址字節(jié)單元高地址字節(jié)單元563412242.4.1 存儲(chǔ)單元的地址和內(nèi)容 5. 存

14、儲(chǔ)方式:“低對(duì)低、高對(duì)高的小端方式。6. 數(shù)據(jù)的地址對(duì)齊 同一個(gè)存儲(chǔ)器地址可以是字節(jié)單元地址、字單元地址、雙字單元地址等。 字單元安排在偶地址xxx0B、雙字單元安排在模4地址xx00B等被稱為“地址對(duì)齊Align。 對(duì)于不對(duì)齊地址的數(shù)據(jù),處置器訪問時(shí),需求額外的訪問存儲(chǔ)器時(shí)間。1)多字節(jié)數(shù)據(jù)需占延續(xù)的多個(gè)存儲(chǔ)單元,低字節(jié)存入低地址,高字節(jié)存入高地址 。 2)多字節(jié)數(shù)據(jù)占據(jù)的地址空間用它的低地址表示。25 7 6 5 4 3 2 1 01 0 0 1 1 1 1 1 0000H0 0 1 0 0 1 1 0 0001H0 0 0 1 1 1 1 0 0002H1 1 0 1 0 1 1 1 0

15、003H存儲(chǔ)器 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0字 高位字節(jié) 低位字節(jié)1 0 0 1 1 1 1 10 0 1 0 0 1 1 0(0000H)=269FH(0002H)=D71EH(0001H)=1E26H 訪問兩次存儲(chǔ)器(0000H)=9FH(0001H)=26H(0002H)=1EH(0003H)=D7H262.4.2 實(shí)方式存儲(chǔ)器尋址 8086/8088只能在實(shí)方式下。1.存儲(chǔ)器地址的分段 問題:16位構(gòu)造cpu如何處理20位地址的問題?處理:將存儲(chǔ)器分段(邏輯上),每段最大不超越64KB, 段內(nèi)單元地址可用16位表示,稱為偏移地址, 每段的起

16、始地址稱為段地址或段基址。 規(guī)定:1段地址必需取為小段首址。 2) 從0地址單元開場(chǎng), 每16個(gè)單元為一小段。小段首地址為:00000H,00010H,00020H,FFFF0H。在一個(gè)1M的存儲(chǔ)器里,共有64K個(gè)小段。16位構(gòu)造CPU的特征:1) 16位字長;2) 16位存放器(最大寬度);3) 16位數(shù)據(jù)線。導(dǎo)致 :cpu只能傳送16位的地址 ,尋址才干只需64K8086的內(nèi)存空間:1) 內(nèi)存是一維的線性空間。2) 每一個(gè)內(nèi)存單元在這個(gè)空 間中都有獨(dú)一的物理地址; 3) 有20位地址總線,可傳送20 位地址,尋址才干為1M。272.4.2 實(shí)方式存儲(chǔ)器尋址 8086/8088只能在實(shí)方式下

17、。2.物理地址的計(jì)算方法邏輯地址 由段地址和偏移地址組成。物理地址=16D 段地址+偏移地址 16位段地址015 16位偏移地址015+0 20位物理地址190000顯然,一個(gè)物理地址可以有多個(gè)邏輯地址地址加法器的任務(wù)過程8086CPU給出物理地址的方法存儲(chǔ)器分段管理的地址概念圖示:段內(nèi)偏移量偏移地址=段起始地址64K段內(nèi)地址0000H0001H0FFFH.FFFFH64K段內(nèi)地址0000H0001HFFFFH30000H段內(nèi)偏移量偏移地址=段起始地址40000H30000H + 0FFFH =30FFFH 物理地址.存儲(chǔ)器0FFFH29思索:1) 1MB空間最多能分成多少個(gè)段?2) 1MB空

18、間最少能分成多少個(gè)段?3) 小段有什么特征?每隔16個(gè)存儲(chǔ)單元就可以開場(chǎng)一個(gè)段,所以1MB最多可以有:2201621664K 個(gè)段每隔64K個(gè)存儲(chǔ)單元開場(chǎng)一個(gè)段,所以1MB最少可以有:22021616 個(gè)段303.段存放器 8086CPU有4個(gè)段存放器:CS、DS、SS、ES,用來存放段地址。普通情況下,各段在存儲(chǔ)器中的分配是由操作系統(tǒng)擔(dān)任的。也可以在編程時(shí)指定各段可以獨(dú)立每個(gè)段都占用64K存儲(chǔ)區(qū), 也可以重疊每個(gè)段按實(shí)踐大小分配存儲(chǔ)區(qū), 不一定占有64K的最大段空間。memory31 4.段存放器的運(yùn)用規(guī)定訪問存儲(chǔ)器的方式 默許的段存放器 可超越的段存放器 偏移地址取指令 CS 無 IP堆棧操作 SS 無 SP普通數(shù)據(jù)訪問 DS CS、ES、SS 有效地址EA以下除外串操作的源操作數(shù) DS CS、ES、SS SI串操作的目的操作數(shù) ES 無 DIBP基址的尋址方式 SS CS、DS、ES 有效地址EA322.4.3 維護(hù)方式存儲(chǔ)器尋址 80286起,就引出了維護(hù)方式.1目的 擴(kuò)展尋址空間(超出1M), 段長可從64K擴(kuò)展到 4GB 或更多

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論