版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、匯編言語程序設(shè)計第2章 IBM PC 計算機組織Assembly Language Programming第2章 IBM PC 計算機組織2.1 80X86微處置器概述2.2 基于微處置器的計算機系統(tǒng)組成 2.3 微處置器 2.3.1 微處置器的構(gòu)造 2.3.2 80X86存放器組2.4 存儲器 2.4.1 存儲單元的地址和內(nèi)容 2.4.2 實方式存儲器尋址 2.4.3 維護方式存儲器尋址32.180X86微處置器 將運算器和控制器集成在一個芯片上就構(gòu)成了微處置器 (CPU), 控制整個計算機的運作并進展運算。8086/808880286 80386 80486 Pentium字長161632
2、3232數(shù)據(jù)總線DB16/816323264地址總線AB2024323232最大尋址1MB16MB4GB4GB4GB時鐘范圍(MHz) 4.77 616 16403312066166執(zhí)行速度(MIPS) 0.05 0.40.834207511228080X86微處置器主要特征:2.2 基于微處置器的計算機系統(tǒng)構(gòu)成計算機系統(tǒng)包括硬件和軟件兩大部分硬件:指計算機的物理實體(如CPU,顯卡等), 它分為微處置器, 存儲器, 接口電路, 外部設(shè)備 和 系統(tǒng)總線 等。中央處置機 CPU總線控制邏輯接 口接 口存儲器大容量存儲器I/O子系統(tǒng)系統(tǒng)總線I/O設(shè)備45軟件:指運用和發(fā)揚計算機效能的各種程序的總稱
3、,通常我們將它分為兩大類: 系統(tǒng)軟件:系統(tǒng)軟件主要用來對計算機系統(tǒng)實踐運轉(zhuǎn)進展控制,管理和效力的。運用軟件:指的是用戶本人編的各類運用程序 .系統(tǒng)軟件軟件數(shù)據(jù)庫管理系統(tǒng)工具軟件 言語處置程序 操作系統(tǒng)運用軟件軟件包用戶程序2.3 中央微處置器2.3.1中央微處置器的組成及其編程構(gòu)造義務(wù): 執(zhí)行存放在存儲器里的指令序列。組成:算術(shù)邏輯部件 進展算術(shù)和邏輯運算??刂七壿?擔(dān)任對全機的控制任務(wù)。任務(wù)存放器存放計算過程中的各種信息。編程構(gòu)造: CPU對匯編言語程序員來說,編程構(gòu)造主 要由一組可見存放器組成。6操作數(shù)地址、操作數(shù)、運算的中間結(jié)果782.3.2 8086的存放器組兩大類:程序不可見存放器和
4、程序可見存放器。程序不可見存放器 普通運用程序中不運用而由系統(tǒng) 運用的存放器。程序可見存放器 可以由指令運用的存放器。包括三類:通用存放器8個 公用存放器2個 段存放器4個80X86程序可見存放器組EAXALAH 累加器EBXBLBH 基址變址ECXCLCH 計數(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指令中運用 BX (b
5、ase): 通用,基地址存放器 CX (count): 通用,計數(shù)器 DX (data): 通用,雙字運算及I/O操作中運用。8個字節(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及其后繼機型中,一
6、切32位通用存放器既可以存放數(shù)據(jù),也可以存放地址,每個存放器的公用特性與8086/8088和80286的一一對應(yīng)2.公用存放器 (1) IP (instruction pointer)/EIP: 指令指針存放器 存放代碼段中的偏移地址,在程序的運轉(zhuǎn)中一直指向下一條指令的首 地址,與CS一同確定一條指令的物理地址。 (2) FLAGS(Program Status Word)/EFLAG:標(biāo)志存放器 存放反映處置器和運轉(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 符號標(biāo)志 IF 中斷標(biāo)志CF 進位標(biāo)志TF 圈套標(biāo)志OF 溢出標(biāo)志AF 輔助進位標(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)級NTNested Task嵌套義務(wù)標(biāo)志 ; 286添加RFResume Flag重新啟動標(biāo)志VMVirtual 8086 Mode虛擬8086方式位 ; 386添加ACAlignment Check Mode對準(zhǔn)檢查方式位 ; 486添加VIFVirtual Interrupt Flag虛擬中斷標(biāo)志VIPVirtual Interrupt Pending Flag虛擬中斷未決標(biāo)志IDIdentification Flag 標(biāo)識標(biāo)志 ; Pentium添加15零標(biāo)志ZFZero Flag假設(shè)運算結(jié)果為0,那么ZF = 1,否那么ZF
9、 = 0。例如:3AH + 7CHB6H, 結(jié)果非零:ZF = 084H + 7CH100H,結(jié)果是零:ZF = 1留意:ZF為1表示的結(jié)果是016符號標(biāo)志SFSign Flag運算結(jié)果最高位為1,那么SF = 1;否那么SF = 0。例如: 3AH + 7CHB6H, 最高位D71:SF = 1 84H + 7CH100H,最高位D70:SF = 0 有符號數(shù)據(jù)利用最高有效位表示數(shù)據(jù)的符號。所以,最高有效位就是符號標(biāo)志的形狀。17進位標(biāo)志CFCarry Flag當(dāng)運算結(jié)果的最高有效位有進位(加法)或借位(減法)時,進位標(biāo)志置1,即CF = 1;否那么CF = 0。例如: 3AH + 7CHB
10、6H, 即 58124182 無進位:CF = 0 AAH + 7CH(1)26H,即 170124294 有進位:CF = 118溢出標(biāo)志OFOverflow Flag假設(shè)算術(shù)運算的結(jié)果有溢出,那么OF=1;否那么 OF0。溢出:有符號數(shù)運算結(jié)果超出了補碼表示范圍。處置器內(nèi)部以補碼表示有符號數(shù)8位字長 整數(shù)范圍:-128 + 12716位字長 整數(shù)范圍:-32768 +32767例如: 3AH + 7CHB6H,即 58124182 有溢出:OF = 1 AAH + 7CH(1)26H,即-8612428 無溢出:OF = 0什么是溢出?19溢出和進位進位標(biāo)志CF 表示無符號數(shù)運算結(jié)果能否超
11、出范圍, 運算結(jié)果依然正確配合進位。溢出標(biāo)志OF 表示有符號數(shù)運算結(jié)果能否超出范圍, 運算結(jié)果曾經(jīng)不正確。處置器 按照無符號數(shù)求得結(jié)果,并設(shè)置進位標(biāo)志CF;同時,根據(jù)能否超出有符號數(shù)的范圍設(shè)置溢出標(biāo)志OF。程序員 決議應(yīng)該利用哪個標(biāo)志。 以為是無符號數(shù)運算,關(guān)懷進位標(biāo)志; 以為是有符號數(shù)運算,留意溢出標(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. 實方式 與8086兼容的任務(wù)方式,只需低20位地址線起 作用,僅能尋址第一個1MB的內(nèi)存空間。 如:MSDOS運轉(zhuǎn)在實方式下。2. 維護方式32位80 x86 CPU的主要任務(wù)方式,提供對程序 和數(shù)據(jù)進展平安檢查的維護機制。 如:Windows 9x/NT/2000運轉(zhuǎn)在維護方式下。3. 虛擬8086方式 在Windows 9x下,假設(shè)翻開一個MS DOS 窗口,運轉(zhuǎn)一個DOS運用程序,那么該程序就 運轉(zhuǎn)在虛擬8086方式下。222.4 存儲器 2.4.1 存儲單元的地址和內(nèi)容1. 存儲信息的根本單位 b
13、it 計算機中信息表示的最小單位, byte(8位數(shù)據(jù)存取的最小單位 2. 地址:每一字節(jié)單元的編號,地址空間的范圍與地址 線數(shù)目有關(guān)。 16位地址: 0000H FFFFH; 20位地址:00000H FFFFFH;3. 內(nèi)容:存儲單元中存放的信息,如(0004)=78H4. 匯編中的數(shù)據(jù)類型 byte(8位) word(16位) Dword(32位) Fword(48位) 存儲器構(gòu)造.存儲器0000H0001H0002H0003H0004H0005H0006HFFFEHFFFFH低字節(jié)高字節(jié)字單元字節(jié)單元低地址字節(jié)單元高地址字節(jié)單元563412242.4.1 存儲單元的地址和內(nèi)容 5. 存
14、儲方式:“低對低、高對高的小端方式。6. 數(shù)據(jù)的地址對齊 同一個存儲器地址可以是字節(jié)單元地址、字單元地址、雙字單元地址等。 字單元安排在偶地址xxx0B、雙字單元安排在模4地址xx00B等被稱為“地址對齊Align。 對于不對齊地址的數(shù)據(jù),處置器訪問時,需求額外的訪問存儲器時間。1)多字節(jié)數(shù)據(jù)需占延續(xù)的多個存儲單元,低字節(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存儲器 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 訪問兩次存儲器(0000H)=9FH(0001H)=26H(0002H)=1EH(0003H)=D7H262.4.2 實方式存儲器尋址 8086/8088只能在實方式下。1.存儲器地址的分段 問題:16位構(gòu)造cpu如何處理20位地址的問題?處理:將存儲器分段(邏輯上),每段最大不超越64KB, 段內(nèi)單元地址可用16位表示,稱為偏移地址, 每段的起
16、始地址稱為段地址或段基址。 規(guī)定:1段地址必需取為小段首址。 2) 從0地址單元開場, 每16個單元為一小段。小段首地址為:00000H,00010H,00020H,FFFF0H。在一個1M的存儲器里,共有64K個小段。16位構(gòu)造CPU的特征:1) 16位字長;2) 16位存放器(最大寬度);3) 16位數(shù)據(jù)線。導(dǎo)致 :cpu只能傳送16位的地址 ,尋址才干只需64K8086的內(nèi)存空間:1) 內(nèi)存是一維的線性空間。2) 每一個內(nèi)存單元在這個空 間中都有獨一的物理地址; 3) 有20位地址總線,可傳送20 位地址,尋址才干為1M。272.4.2 實方式存儲器尋址 8086/8088只能在實方式下
17、。2.物理地址的計算方法邏輯地址 由段地址和偏移地址組成。物理地址=16D 段地址+偏移地址 16位段地址015 16位偏移地址015+0 20位物理地址190000顯然,一個物理地址可以有多個邏輯地址地址加法器的任務(wù)過程8086CPU給出物理地址的方法存儲器分段管理的地址概念圖示:段內(nèi)偏移量偏移地址=段起始地址64K段內(nèi)地址0000H0001H0FFFH.FFFFH64K段內(nèi)地址0000H0001HFFFFH30000H段內(nèi)偏移量偏移地址=段起始地址40000H30000H + 0FFFH =30FFFH 物理地址.存儲器0FFFH29思索:1) 1MB空間最多能分成多少個段?2) 1MB空
18、間最少能分成多少個段?3) 小段有什么特征?每隔16個存儲單元就可以開場一個段,所以1MB最多可以有:2201621664K 個段每隔64K個存儲單元開場一個段,所以1MB最少可以有:22021616 個段303.段存放器 8086CPU有4個段存放器:CS、DS、SS、ES,用來存放段地址。普通情況下,各段在存儲器中的分配是由操作系統(tǒng)擔(dān)任的。也可以在編程時指定各段可以獨立每個段都占用64K存儲區(qū), 也可以重疊每個段按實踐大小分配存儲區(qū), 不一定占有64K的最大段空間。memory31 4.段存放器的運用規(guī)定訪問存儲器的方式 默許的段存放器 可超越的段存放器 偏移地址取指令 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 維護方式存儲器尋址 80286起,就引出了維護方式.1目的 擴展尋址空間(超出1M), 段長可從64K擴展到 4GB 或更多
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《園林樹木》課程標(biāo)準(zhǔn)
- 2BizBoxERP用戶基礎(chǔ)手冊
- 三角形的翻折課件
- 第1單元 古代亞非文明(高頻選擇題50題)(原卷版)
- 2024年農(nóng)業(yè)和農(nóng)村檔案工作總結(jié)
- 七年級下《保護野生動物》蘇教版-課件
- 農(nóng)業(yè)科創(chuàng):研發(fā)力量展示
- 機場服務(wù)行業(yè)銷售工作總結(jié)
- 資金借貸合同個人醫(yī)療保健費用貸款支出租賃保險三篇
- 初一生物教學(xué)工作總結(jié)實踐探索培養(yǎng)動手能力
- 員工月度績效考核管理辦法
- 2023年云南保山電力股份有限公司招聘筆試題庫及答案解析
- GB/T 41904-2022信息技術(shù)自動化基礎(chǔ)設(shè)施管理(AIM)系統(tǒng)要求、數(shù)據(jù)交換及應(yīng)用
- GB/T 41908-2022人類糞便樣本采集與處理
- GB/T 3745.1-1983卡套式三通管接頭
- GB/T 26003-2010無負(fù)壓管網(wǎng)增壓穩(wěn)流給水設(shè)備
- 信息系統(tǒng)運維服務(wù)方案
- 簡支梁、懸臂梁撓度計算程序(自動版)
- DB44∕T 2149-2018 森林資源規(guī)劃設(shè)計調(diào)查技術(shù)規(guī)程
- 統(tǒng)編版小學(xué)四年級語文上冊五六單元測試卷(附答案)
- 商票保貼協(xié)議
評論
0/150
提交評論