微型計算機原理(16位).ppt_第1頁
微型計算機原理(16位).ppt_第2頁
微型計算機原理(16位).ppt_第3頁
微型計算機原理(16位).ppt_第4頁
微型計算機原理(16位).ppt_第5頁
已閱讀5頁,還剩187頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微型計算機原理 基于16位機,微處理器,指令系統(tǒng),概述,第一章,微型計算機概述,1946年,世界上出現(xiàn)第一臺數(shù)字式電子計算機ENIAC(電子數(shù)據(jù)和計算器) 發(fā)展到以大規(guī)模集成電路為主要部件的第四代,產(chǎn)生了微型計算機 1971年,Intel公司設(shè)計了世界上第一個微處理器芯片Intel4004,開創(chuàng)了一個全新的計算機時代,1.1 微型計算機的發(fā)展和應(yīng)用,1.1.1 微型計算機的發(fā)展,第1代:4位和低檔8位微機 400440408008 第2代:中高檔8位微機 Z80、I8085、M6800,Apple-II微機 第3代:16位微機 8086808880286,IBM PC系列機,1.1.1 微型計

2、算機的發(fā)展(續(xù)),第4代:32位微機 8038680486PentiumPentium II Pentium III Pentium 4 32位PC機、Macintosh機、PS/2機 第5代:64位微機 Itanium、64位RISC微處理器芯片 微機服務(wù)器、工程工作站、圖形工作站,1.1.2 微型計算機的應(yīng)用,計算機應(yīng)用通常分成如下各個領(lǐng)域 科學(xué)計算,數(shù)據(jù)處理,實時控制 計算機輔助設(shè)計,人工智能, 由于微型計算機具有如下特點 體積小、價格低 工作可靠、使用方便、通用性強 所以,可以分為兩個主要應(yīng)用方向,1.1.2 微型計算機的應(yīng)用,用于數(shù)值計算、數(shù)據(jù)處理及信息管理方向 通用微機,例如:PC

3、微機 功能越強越好、使用越方便越好 用于過程控制及智能化儀器儀表方向 專用微機,例如:單片機、工控機 可靠性高、實時性強 程序相對簡單、處理數(shù)據(jù)量小,將CPU以及其他主要部件(如ROM、RAM、I/O接口)都集成在一個微處理器芯片中 例如:常用的MCS-51、MCS-96,1.2 微型計算機的系統(tǒng)組成,區(qū)別,1.2.1 微型計算機的硬件組成,微處理器子系統(tǒng) 存儲器 I/O設(shè)備和I/O接口 系統(tǒng)總線,系統(tǒng)總線,總線是指傳遞信息的一組公用導(dǎo)線 總線是傳送信息的公共通道 微機系統(tǒng)采用總線結(jié)構(gòu)連接系統(tǒng)功能部件 總線信號可分成三組 地址總線AB:傳送地址信息 數(shù)據(jù)總線DB :傳送數(shù)據(jù)信息 控制總線CB

4、:傳送控制信息,總線信號,地址總線AB 輸出將要訪問的內(nèi)存單元或I/O端口的地址 地址線的多少決定了系統(tǒng)直接尋址存儲器的范圍 數(shù)據(jù)總線DB CPU讀操作時,外部數(shù)據(jù)通過數(shù)據(jù)總線送往CPU CPU寫操作時,CPU數(shù)據(jù)通過數(shù)據(jù)總線送往外部 數(shù)據(jù)線的多少決定了一次能夠傳送數(shù)據(jù)的位數(shù) 控制總線CB 協(xié)調(diào)系統(tǒng)中各部件的操作,有輸出控制、輸入狀態(tài)等信號 控制總線決定了系統(tǒng)總線的特點,例如功能、適應(yīng)性等,舉例,舉例,特點,1.2.2 微型計算機的軟件系統(tǒng),為什么采用匯編語言?,1.3 IBM PC系列機系統(tǒng),16位IBM PC系列機是32位微機的基礎(chǔ),8088CPU,IBM PC機,IBM PC/AT機,I

5、BM PC/XT機,1.3.1 硬件基本組成,16位和 32位PC機的基本部件相同,1.3.2 主機板組成,微處理器子系統(tǒng) 8088:16位內(nèi)部結(jié)構(gòu)、8位數(shù)據(jù)總線、20位地址總線、4.77MHz主頻 存儲器 ROM-BIOS、主體為RAM I/O接口控制電路 8259A、8253、8237A、8255等 I/O通道 62線的IBM PC總線,1.3.3 存儲空間的分配,常規(guī)內(nèi)存:1MB 基本RAM區(qū):640KB 保留RAM區(qū):128KB 擴展ROM區(qū):128KB 基本ROM區(qū):64KB 擴展內(nèi)存:用作RAM區(qū),1.3.4 I/O空間的分配,80 x86訪問外設(shè)時,只使用低16位A0A15,尋址

6、64K個8位I/O端口 PC機僅使用低10位A0A9,尋址1024個8位I/O端口,第1章:1.4 計算機中的數(shù)據(jù)表示,存儲容量的表達(dá) 比特b(二進制1位) 字節(jié)B (二進制8位) 1KB210B1024B 1MB220B、1GB230B 進制的表示 二進制數(shù)用B或b結(jié)尾 十進制數(shù)可不用結(jié)尾字母, 也可用D或d結(jié)尾 十六進制數(shù)用H或h結(jié)尾,返回,世界上第一臺計算機ENIAC,Intel4004和采用4004的計算器,返回,Apple微型計算機,Apple-I,Apple-II,返回,IBM PC系列機,8088CPU,IBM PC機,IBM PC/AT機,IBM PC/XT機,返回,英特爾微處

7、理器芯片,80386,Pentium,Pentium 4,返回,明確3個概念的區(qū)別,微處理器(Microprocessor) 一個大規(guī)模集成電路芯片 內(nèi)含控制器、運算器和寄存器等 微機中的核心芯片 微型計算機(Microcomputer) 通常指微型計算機的硬件系統(tǒng) 還有一般的說法:微機、微型機 微型計算機系統(tǒng)(Microcomputer system) 指由硬件和軟件共同組成的完整的計算機系統(tǒng),返回,Intel 80 x86CPU的地址線條數(shù),Intel80 x86地址條數(shù)存儲容量 8086201MB 8088201MB 802862416MB 80386324GB Pentium4,返回,

8、Intel 80 x86CPU的數(shù)據(jù)線條數(shù),Intel 80 x86數(shù)據(jù)位數(shù) 808616 80888 8028616 80386Pentium 432,返回,系統(tǒng)總線的使用特點,除了CPU外,還有DMA控制器和協(xié)處理器都具有控制系統(tǒng)總線的能力。它們被稱為“總線主控設(shè)備” 在某一個時刻,只能由一個總線主控設(shè)備來控制系統(tǒng)總線 在連接系統(tǒng)總線的各個設(shè)備中,某一個時刻只能有一個發(fā)送者向總線發(fā)送信號;但可以有多個設(shè)備從總線上同時獲得信號,返回,第二章,微處理器,微處理器主要的性能指標(biāo),主頻,第二章,外頻,工作電壓,制造工藝,地址線寬度,數(shù)據(jù)線寬度,內(nèi)置協(xié)處理器,微處理器飛速發(fā)展,80386,80486

9、,奔騰,奔騰2代,奔騰4代,80286,8086,奔騰3代,IA-64 (安騰),4004,2.1 8086/8088微處理器,Intel公司1978年推出8086,1979年推出8088,于1981年用于IBM PC/XT中,2.11 8086/8088的內(nèi)部結(jié)構(gòu),一、總線接口部件BIU(Bus interface Unit),二、執(zhí)行部件(Execution Unit),結(jié)構(gòu),第2章: 2.1.2 8088/8086的功能結(jié)構(gòu),8088的內(nèi)部結(jié)構(gòu)從功能上分成兩個單元 1. 總線接口單元BIU 管理8088與系統(tǒng)總線的接口 負(fù)責(zé)CPU對存儲器和外設(shè)進行訪問 2. 執(zhí)行單元EU 負(fù)責(zé)指令的譯碼

10、、執(zhí)行和數(shù)據(jù)的運算 兩個單元相互獨立,分別完成各自操作,還可以并行執(zhí)行,實現(xiàn)指令預(yù)?。ㄖ噶钭x取和執(zhí)行的流水線操作),第2章:2.1.3 8088/8086的寄存器結(jié)構(gòu),8088/8086的寄存器組有 8個通用寄存器 4個段寄存器 1個標(biāo)志寄存器 1個指令指針寄存器 他們均為16位!,圖示,匯編語言程序員看到的處理器,就是寄存器 所以,一定要熟悉這些寄存器的名稱和作用,第2章:1. 通用寄存器,8088有8個通用的16位寄存器 (1)數(shù)據(jù)寄存器: AX BX CX DX (2)變址寄存器: SI DI (3)指針寄存器: BP SP 4個數(shù)據(jù)寄存器還可以分成高8位和低8位兩個獨立的寄存器,這樣又

11、形成8個通用的8位寄存器 AX: AH ALBX: BH BL CX: CH CLDX: DH DL,內(nèi)部結(jié)構(gòu),第2章:(1)數(shù)據(jù)寄存器,AX稱為累加器(Accumulator) 使用頻度最高。用于算術(shù)、邏輯運算以及與外設(shè)傳送信息等 BX稱為基址寄存器(Base address Register) 常用做存放存儲器地址 CX稱為計數(shù)器(Counter) 作為循環(huán)和串操作等指令中的隱含計數(shù)器 DX稱為數(shù)據(jù)寄存器(Data register) 常用來存放雙字長數(shù)據(jù)的高16位,或存放外設(shè)端口地址,第2章:(1)數(shù)據(jù)寄存器,AX稱為累加器(Accumulator) 使用頻度最高。用于算術(shù)、邏輯運算以及

12、與外設(shè)傳送信息等 BX稱為基址寄存器(Base address Register) 常用做存放存儲器地址 CX稱為計數(shù)器(Counter) 作為循環(huán)和串操作等指令中的隱含計數(shù)器 DX稱為數(shù)據(jù)寄存器(Data register) 常用來存放雙字長數(shù)據(jù)的高16位,或存放外設(shè)端口地址,內(nèi)部結(jié)構(gòu),第2章:(2)變址寄存器,16位變址寄存器SI和DI 常用于存儲器變址尋址方式時提供地址 SI是源地址寄存器(Source Index) DI是目的地址寄存器(Destination Index) 在串操作類指令中,SI、DI還有較特殊的用法,現(xiàn)在不必完全理解,以后會詳細(xì)展開,內(nèi)部結(jié)構(gòu),第2章:(3)指針寄存

13、器,指針寄存器用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù) SP為堆棧指針寄存器(Stack Pointer),指示堆棧段棧頂?shù)奈恢茫ㄆ频刂罚?BP為基址指針寄存器(Base Pointer),表示數(shù)據(jù)在堆棧段中的基地址 SP和BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲單元地址,堆棧(Stack)是主存中一個特殊的區(qū)域,采用“先進后出”或“后進先出”存取操作方式、而不是隨機存取方式。 用8088/8086形成的微機系統(tǒng)中,堆棧區(qū)域被稱為堆棧段,內(nèi)部結(jié)構(gòu),第2章:2. 指令指針寄存器,IP(Instruction Pointer)為指令指針寄存器,指示主存儲器指令的位置 隨著指令的執(zhí)行,IP將自動修改以

14、指示下一條指令所在的存儲器位置 IP寄存器是一個專用寄存器 IP寄存器與CS段寄存器聯(lián)合使用以確定下一條指令的存儲單元地址,內(nèi)部結(jié)構(gòu),第2章:3. 標(biāo)志寄存器,標(biāo)志(Flag)用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行形式 8088處理器的各種標(biāo)志形成了一個16位的標(biāo)志寄存器FLAGS(程序狀態(tài)字PSW寄存器),程序設(shè)計需要利用標(biāo)志的狀態(tài),內(nèi)部結(jié)構(gòu),第2章:標(biāo)志寄存器-分類,狀態(tài)標(biāo)志用來記錄程序運行結(jié)果的狀態(tài)信息,許多指令的執(zhí)行都將相應(yīng)地設(shè)置它 CF ZF SF PF OF AF 控制標(biāo)志可由程序根據(jù)需要用指令設(shè)置,用于控制處理器執(zhí)行指令的方式 DF IF TF,標(biāo)志寄存器FLAGS,存儲,內(nèi)部結(jié)構(gòu),

15、第2章:進位標(biāo)志CF(Carry Flag),當(dāng)運算結(jié)果的最高有效位有進位(加法)或借位(減法)時,進位標(biāo)志置1,即CF1; 否則CF0,3AH + 7CHB6H,沒有進位:CF = 0 AAH + 7CH(1)26H,有進位:CF = 1,第2章:零標(biāo)志ZF(Zero Flag),若運算結(jié)果為0,則ZF1; 否則ZF0,3AH7CHB6H,結(jié)果不是零:ZF0 84H7CH(1)00H,結(jié)果是零:ZF1,注意:ZF為1表示的結(jié)果是0,第2章:符號標(biāo)志SF(Sign Flag),運算結(jié)果最高位為1,則SF1; 否則SF0,3AH7CHB6H,最高位D71:SF1 84H7CH(1)00H,最高位

16、D70:SF0,有符號數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號 所以,最高有效位就是符號標(biāo)志的狀態(tài),第2章:奇偶標(biāo)志PF(Parity Flag),當(dāng)運算結(jié)果最低字節(jié)中“1”的個數(shù)為零或偶數(shù)時,PF1;否則PF0,3AH7CHB6H10110110B 結(jié)果中有5個“1”,是奇數(shù):PF0,PF標(biāo)志僅反映最低8位中“1”的個數(shù)是偶或奇,即使是進行16位字操作,第2章:溢出標(biāo)志OF(Overflow Flag),若算術(shù)運算的結(jié)果有溢出,則OF1; 否則 OF0,3AH + 7CHB6H,產(chǎn)生溢出:OF1 AAH + 7CH(1)26H,沒有溢出:OF0,?,返回,第2章:什么是溢出,處理器內(nèi)部以補碼表示有符號

17、數(shù) 8位表達(dá)的整數(shù)范圍是:127 128 16位表達(dá)的范圍是:32767 32768 如果運算結(jié)果超出這個范圍,就產(chǎn)生了溢出 有溢出,說明有符號數(shù)的運算結(jié)果不正確,3AH7CHB6H,就是58124182, 已經(jīng)超出128127范圍,產(chǎn)生溢出,故OF1;補碼B6H表達(dá)真值是74,顯然運算結(jié)果也不正確,B6H10110110B,最高位為1, 作為有符號數(shù)是負(fù)數(shù) 對B6H求反加1等于: 01001001B101001010B4AH74 所以,B6H表達(dá)有符號數(shù)的真值為74,第2章:溢出和進位的區(qū)別,溢出標(biāo)志OF和進位標(biāo)志CF是兩個意義不同的標(biāo)志 進位標(biāo)志表示無符號數(shù)運算結(jié)果是否超出范圍,運算結(jié)果仍

18、然正確 溢出標(biāo)志表示有符號數(shù)運算結(jié)果是否超出范圍,運算結(jié)果已經(jīng)不正確,?,第2章: 溢出和進位的對比,例1:3AH7CHB6H 無符號數(shù)運算:58124182 范圍內(nèi),無進位 有符號數(shù)運算: 58124182 范圍外,有溢出,例2:AAH7CH(1)26H 無符號數(shù)運算:170124294 范圍外,有進位 有符號數(shù)運算:8612428 范圍內(nèi),無溢出,第2章:溢出和進位的應(yīng)用場合,處理器對兩個操作數(shù)進行運算時,按照無符號數(shù)求得結(jié)果,并相應(yīng)設(shè)置進位標(biāo)志CF;同時,根據(jù)是否超出有符號數(shù)的范圍設(shè)置溢出標(biāo)志OF 應(yīng)該利用哪個標(biāo)志,則由程序員來決定。也就是說,如果將參加運算的操作數(shù)認(rèn)為是無符號數(shù),就應(yīng)該

19、關(guān)心進位;認(rèn)為是有符號數(shù),則要注意是否溢出,第2章:溢出的判斷,判斷運算結(jié)果是否溢出有一個簡單的規(guī)則: 只有當(dāng)兩個相同符號數(shù)相加(包括不同符號數(shù)相減),而運算結(jié)果的符號與原數(shù)據(jù)符號相反時,產(chǎn)生溢出;因為,此時的運算結(jié)果顯然不正確 其他情況下,則不會產(chǎn)生溢出,例1:3AH7CHB6H溢出 例2:AAH7CH無溢出 例3:3AH7CH無溢出 例4:AAH7CH2DH溢出,返回,第2章:輔助進位標(biāo)志AF(Auxiliary Carry Flag),3AH7CHB6H,D3有進位:AF1,運算時D3位(低半字節(jié))有進位或借位時,AF1;否則AF0,這個標(biāo)志主要由處理器內(nèi)部使用, 用于十進制算術(shù)運算調(diào)整

20、指令中, 用戶一般不必關(guān)心,第2章:方向標(biāo)志DF(Direction Flag),用于串操作指令中,控制地址的變化方向: 設(shè)置DF0,存儲器地址自動增加; 設(shè)置DF1,存儲器地址自動減少,CLD指令復(fù)位方向標(biāo)志:DF0 STD指令置位方向標(biāo)志:DF1,第2章:中斷允許標(biāo)志IF(Interrupt-enable Flag),控制可屏蔽中斷是否可以被處理器響應(yīng): 設(shè)置IF1,則允許中斷; 設(shè)置IF0,則禁止中斷,CLI指令復(fù)位中斷標(biāo)志:IF0 STI指令置位中斷標(biāo)志:IF1,第2章:陷阱標(biāo)志TF(Trap Flag),用于控制處理器進入單步操作方式: 設(shè)置TF0,處理器正常工作; 設(shè)置TF1,處理

21、器單步執(zhí)行指令,單步執(zhí)行指令處理器在每條指令執(zhí)行結(jié)束時,便產(chǎn)生一個編號為1的內(nèi)部中斷 這種內(nèi)部中斷稱為單步中斷 所以TF也稱為單步標(biāo)志 利用單步中斷可對程序進行逐條指令的調(diào)試 這種逐條指令調(diào)試程序的方法就是單步調(diào)試,第2章:2.1.4 8088/8086的存儲器結(jié)構(gòu),存儲器是計算機存儲信息的地方。掌握數(shù)據(jù)存儲格式,以及存儲器的分段管理對以后的匯編程序設(shè)計非常重要 你能區(qū)別寄存器、存儲器(主存)、外存(包括硬盤、光盤、磁帶等存儲介質(zhì))嗎?,答案,第2章:寄存器、存儲器和外存的區(qū)別,寄存器是微處理器(CPU)內(nèi)部暫存數(shù)據(jù)的存儲單元,以名稱表示,例如:AX,BX.等 存儲器也就是平時所說的主存,也叫

22、內(nèi)存,可直接與CPU進行數(shù)據(jù)交換。主存利用地址區(qū)別 外存主要指用來長久保存數(shù)據(jù)的外部存儲介質(zhì),常見的有硬盤、光盤、磁帶、U盤等。外存的數(shù)據(jù)只能通過主存間接地與CPU交換數(shù)據(jù) 程序及其數(shù)據(jù)可以長久存放在外存,在運行需要時才進入主存,第2章:1. 數(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位,圖示,第2章:存儲單元及其存儲內(nèi)

23、容,每個存儲單元都有一個編號;被稱為存儲器地址 每個存儲單元存放一個字節(jié)的內(nèi)容,圖示,0002H單元存放有一個數(shù)據(jù)34H 表達(dá)為0002H34H,第2章:多字節(jié)數(shù)據(jù)存放方式,多字節(jié)數(shù)據(jù)在存儲器中占連續(xù)的多個存儲單元: 存放時,低字節(jié)存入低地址,高字節(jié)存入高地址; 表達(dá)時,用它的低地址表示多字節(jié)數(shù)據(jù)占據(jù)的地址空間。,圖2-5中0002H“字”單元的內(nèi)容為: 0002H = 1234H 0002H號“雙字”單元的內(nèi)容為: 0002H = 78561234H,80 x86處理器采用“低對低、高對高”的存儲形式,被稱為“小端方式Little Endian”。 相對應(yīng)還存在“大端方式Big Endian

24、”。,圖示,第2章:數(shù)據(jù)的地址對齊,同一個存儲器地址可以是字節(jié)單元地址、字單元地址、雙字單元地址等等(視具體情況來確定) 字單元安排在偶地址(xxx0B)、雙字單元安排在模4地址(xx00B)等,被稱為“地址對齊(Align)” 對于不對齊地址的數(shù)據(jù),處理器訪問時,需要額外的訪問存儲器時間 應(yīng)該將數(shù)據(jù)的地址對齊,以取得較高的存取速度,第2章:2. 存儲器的分段管理,8088CPU有20條地址線 最大可尋址空間為2201MB 物理地址范圍從00000HFFFFFH 8088CPU將1MB空間分成許多邏輯段(Segment) 每個段最大限制為64KB 段地址的低4位為0000B 這樣,一個存儲單元

25、除具有一個唯一的物理地址外,還具有多個邏輯地址,第2章:物理地址和邏輯地址,8088CPU存儲系統(tǒng)中,對應(yīng)每個物理存儲單元都有一個唯一的20位編號,就是物理地址,從00000H FFFFFH 分段后在用戶編程時,采用邏輯地址,形式為 段基地址 : 段內(nèi)偏移地址,分隔符,物理地址 14700H 邏輯地址 1460H:100H,第2章:邏輯地址,段地址說明邏輯段在主存中的起始位置 8088規(guī)定段地址必須是模16地址:xxxx0H 省略低4位0000B,段地址就可以用16位數(shù)據(jù)表示,就能用16位段寄存器表達(dá)段地址 偏移地址說明主存單元距離段起始位置的偏移量 每段不超過64KB,偏移地址也可用16位數(shù)

26、據(jù)表示,第2章:物理地址和邏輯地址的轉(zhuǎn)換,將邏輯地址中的段地址左移4位,加上偏移地址就得到20位物理地址 一個物理地址可以有多個邏輯地址,邏輯地址1460:100、1380:F00 物理地址14700H 14700H,第2章:3. 段寄存器,8088有4個16位段寄存器 CS(代碼段)指明代碼段的起始地址 SS(堆棧段)指明堆棧段的起始地址 DS(數(shù)據(jù)段)指明數(shù)據(jù)段的起始地址 ES(附加段)指明附加段的起始地址 每個段寄存器用來確定一個邏輯段的起始地址,每種邏輯段均有各自的用途,內(nèi)部結(jié)構(gòu),CS,SS,DS,ES,如何分配各個邏輯段?,第2章:代碼段寄存器CS(Code Segment),代碼段

27、用來存放程序的指令序列 代碼段寄存器CS存放代碼段的段地址 指令指針寄存器IP指示下條指令的偏移地址 處理器利用CS:IP取得下一條要執(zhí)行的指令,第2章:堆棧段寄存器SS(Stack Segment),堆棧段確定堆棧所在的主存區(qū)域 堆棧段寄存器SS存放堆棧段的段地址 堆棧指針寄存器SP指示堆棧棧頂?shù)钠频刂?處理器利用SS:SP操作堆棧頂?shù)臄?shù)據(jù),第2章:數(shù)據(jù)段寄存器DS(Data Segment),數(shù)據(jù)段存放運行程序所用的數(shù)據(jù) 數(shù)據(jù)段寄存器DS存放數(shù)據(jù)段的段地址 各種主存尋址方式(有效地址EA)得到存儲器中操作數(shù)的偏移地址 處理器利用DS:EA存取數(shù)據(jù)段中的數(shù)據(jù),第2章:附加段寄存器ES(Ex

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

29、超越前綴指令;8088指令系統(tǒng)中有4個: CS:;代碼段超越,使用代碼段的數(shù)據(jù) SS: ;堆棧段超越,使用堆棧段的數(shù)據(jù) DS: ;數(shù)據(jù)段超越,使用數(shù)據(jù)段的數(shù)據(jù) ES: ;附加段超越,使用附加段的數(shù)據(jù),示例,第2章:段超越的示例,沒有段超越的指令實例: MOV AX,2000H;AXDS:2000H ;從默認(rèn)的DS數(shù)據(jù)段取出數(shù)據(jù) 采用段超越前綴的指令實例: MOV AX,ES:2000H;AXES:2000H ;從指定的ES附加段取出數(shù)據(jù),總結(jié),第2章:段寄存器的使用規(guī)定,第2章:寄存器的總結(jié),8088有8個8位通用寄存器、8個16位通用寄存器 8088有6個狀態(tài)標(biāo)志和3個控制標(biāo)志 8088將1

30、MB存儲空間分段管理,有4個段寄存器,對應(yīng)4種邏輯段 8088有4個段超越前綴指令,用于明確指定數(shù)據(jù)所在的邏輯段,熟悉上述內(nèi)容后,就可以進入下節(jié),內(nèi)部圖,8088的內(nèi)部結(jié)構(gòu),8088的指令執(zhí)行過程,圖2-5 8088的存儲格式,低地址,LSB,MSB,邏輯段的分配,8088的內(nèi)部結(jié)構(gòu),1 2 3 4,內(nèi)部暫存器,IP,ES,SS,DS,CS,輸入/輸出控制電路,外部總線,執(zhí)行部分控制電路,ALU,標(biāo)志寄存器,AH AL,BH BL,CH CL,DH DL,SP,BP,SI,DI,通用 寄存器,地址加法器,指令隊列,執(zhí)行部件 (EU),總線接口部件 (BIU),16位,20位,8位,8位,返回,

31、返回,8088的指令執(zhí)行過程,第2章,指令系統(tǒng),第2章:2.2 8088/8086的尋址方式,從8088/8086的指令格式入手,論述: 立即數(shù)尋址方式 寄存器尋址方式 存儲器尋址方式 進而熟悉8088/8086匯編語言指令格式,尤其是其中操作數(shù)的表達(dá)方法 為展開8088/8086指令系統(tǒng)做好準(zhǔn)備,第2章:指令的組成,操作碼說明計算機要執(zhí)行哪種操作,如傳送、運算、移位、跳轉(zhuǎn)等操作,它是指令中不可缺少的組成部分 操作數(shù)是指令執(zhí)行的參與者,即各種操作的對象 有些指令不需要操作數(shù),通常的指令都有一個或兩個操作數(shù),也有個別指令有3個甚至4個操作數(shù),第2章:指令的助記符格式,操作數(shù)2,常被稱為源操作數(shù)s

32、rc,它表示參與指令操作的一個對象 操作數(shù)1,成被稱為目的操作數(shù)dest,它不僅可以作為指令操作的一個對象,還可以用來存放指令操作的結(jié)果 分號后的內(nèi)容是對指令的解釋,操作碼 操作數(shù)1,操作數(shù)2 ;注釋,匯編語句格式,第2章:指令的操作碼和操作數(shù),每種指令的操作碼: 用一個助記符表示(指令功能的英文縮寫) 對應(yīng)著機器指令的一個或多個二進制編碼 指令中的操作數(shù): 可以是一個具體的數(shù)值 可以是存放數(shù)據(jù)的寄存器 或指明數(shù)據(jù)在主存位置的存儲器地址,第2章:操作數(shù)的尋址方式,指令系統(tǒng)設(shè)計了多種操作數(shù)的來源 尋找操作數(shù)的過程就是操作數(shù)的尋址 把尋找操作數(shù)的方式叫做(操作數(shù))尋址方式 理解操作數(shù)的尋址方式是理

33、解指令功能的前提 操作數(shù)采取哪一種尋址方式 一方面,會影響處理器執(zhí)行指令的速度和效率 另一方面,對程序設(shè)計也很重要,MOV指令,第2章:2.2.1 立即數(shù)尋址方式,指令中的操作數(shù)直接存放在機器代碼中,緊跟在操作碼之后(操作數(shù)作為指令的一部分存放在操作碼之后的主存單元中) 這種操作數(shù)被稱為立即數(shù)imm 可以是8位數(shù)值i8(00HFFH) 也可以是16位數(shù)值i16(0000HFFFFH) 立即數(shù)尋址方式常用來給寄存器和存儲單元賦值,多以常量形式出現(xiàn),演示,MOV AX, 0102H;AX0102H,第2章:2.2.2 寄存器尋址方式,操作數(shù)存放在CPU的內(nèi)部寄存器reg中: 8位寄存器r8: AH

34、、AL、BH、BL、CH、CL、DH、DL 16位寄存器r16: AX、BX、CX、DX、SI、DI、BP、SP 4個段寄存器seg: CS、DS、SS、ES 寄存器名表示其內(nèi)容(操作數(shù)),演示,MOV AX, BX;AXBX,第2章: 2.2.3 存儲器尋址方式,操作數(shù)在主存儲器中,用主存地址表示 程序設(shè)計時,8088采用邏輯地址表示主存地址 段地址在默認(rèn)的或用段超越前綴指定的段寄存器中 指令中只需給出操作數(shù)的偏移地址(有效地址EA) 8086設(shè)計了多種存儲器尋址方式 1、直接尋址方式 2、寄存器間接尋址方式 3、寄存器相對尋址方式 4、基址變址尋址方式 5、相對基址變址尋址方式,第2章:1

35、. 直接尋址方式,直接尋址方式的有效地址在指令中直接給出 默認(rèn)的段地址在DS段寄存器,可使用段超越前綴改變 用中括號包含有效地址,表達(dá)存儲單元的內(nèi)容,演示,MOV AX, 2000H;AXDS:2000H,MOV AX, ES: 2000H;AXES:2000H,第2章:2. 寄存器間接尋址方式,有效地址存放在基址寄存器BX或變址寄存器SI、DI中 默認(rèn)的段地址在DS段寄存器,可使用段超越前綴改變,演示,MOV AX, BX;AXDS:BX,第2章:3. 寄存器相對尋址方式,有效地址是寄存器內(nèi)容與有符號8位或16位位移量之和,寄存器可以是BX、BP或SI、DI 有效地址BX/BP/SI/DI8

36、/16位位移量 段地址對應(yīng)BX/SI/DI寄存器默認(rèn)是DS,對應(yīng)BP寄存器默認(rèn)是SS;可用段超越前綴改變,演示,MOV AX, SI+06H;AXDS:SI+06H,MOV AX, 06HSI;AXDS:SI+06H,第2章:4. 基址變址尋址方式,有效地址由基址寄存器(BX或BP)的內(nèi)容加上變址寄存器(SI或DI)的內(nèi)容構(gòu)成: 有效地址BX/BPSI/DI 段地址對應(yīng)BX基址寄存器默認(rèn)是DS,對應(yīng)BP基址寄存器默認(rèn)是SS;可用段超越前綴改變,演示,MOV AX, BX+SI;AXDS:BX+SI,MOV AX, BXSI;AXDS:BX+SI,第2章:5. 相對基址變址尋址方式,有效地址是基

37、址寄存器(BX/BP)、變址寄存器(SI/DI)與一個8位或16位位移量之和: 有效地址BX/BPSI/DI8/16位位移量 段地址對應(yīng)BX基址寄存器默認(rèn)是DS,對應(yīng)BP基址寄存器默認(rèn)是SS;可用段超越前綴改變,演示,MOV AX, BX+DI+6;AXDS:BX+DI+6,MOV AX, 6BX+DI,MOV AX, 6BXDI,第2章:存儲器尋址方式中的變量,變量指示內(nèi)存中的數(shù)據(jù),變量名具有地址屬性。存儲器尋找方式中經(jīng)常采用變量形式 變量的定義 WVAR DW 1234H ;定義16位變量WVAR,具有初值1234H ;假設(shè)其偏移地址為10H 單獨引用變量名是直接尋址方式 MOV AX,W

38、VAR ;指令功能:AX1234H ;等同于 MOV AX,0010H 相對尋址方式中,變量名表示其偏移地址,相當(dāng)于位移量 MOV AX, DI+WVAR ; MOV AX,WVARDI ;等同于 MOV AX,DI+0010H,第2章:相對尋址方式中的位移量,在寄存器相對和相對基址變址尋址方式中,其位移量不僅可用常量表示,也可用符號表示 這個符號可以是變量名,例如WVAR變量,而且支持多種表達(dá)形式 MOV AX, DI+WVAR ; ;等同于 MOV AX, WVARDI MOV AX,BX+SI+WVAR ;等同于 MOV AX, WVARBX+SI ;等同于 MOV AX, WVARBX

39、SI,第2章:操作數(shù)的表達(dá)符號(1),第2章:操作數(shù)的表達(dá)符號(2),掌握操作數(shù)的尋址方式后,進入指令學(xué)習(xí),匯編語言的兩種語句格式,執(zhí)行性語句執(zhí)行性語句用于表達(dá)處理器指令(也稱為硬指令),匯編后對應(yīng)一條指令代碼。由處理器指令組成的代碼序列是程序設(shè)計的主體 標(biāo)號: 硬指令助記符 操作數(shù),操作數(shù) ;注釋 說明性語句說明性語句用于表達(dá)偽指令,指示源程序如何匯編、變量怎樣定義、過程怎么設(shè)置等 名字 偽指令助記符 參數(shù),參數(shù), ;注釋,MOV指令的功能,立即數(shù)尋址方式,寄存器尋址方式,直接尋址方式,間接尋址方式,相對尋址方式,基址變址尋址方式,相對基址變址尋址方式,第2章,指令系統(tǒng),第2章:2.3 數(shù)據(jù)

40、傳送類指令,數(shù)據(jù)傳送是計算機中最基本、最重要的一種操作,傳送指令也是最常使用的一類指令 傳送指令把數(shù)據(jù)從一個位置傳送到另一個位置 除標(biāo)志寄存器傳送指令外,均不影響標(biāo)志位 重點掌握 MOV XCHG XLAT PUSH POP LEA,第2章: 2.3.1 通用數(shù)據(jù)傳送指令,提供方便靈活的通用傳送操作 有3條指令 通用數(shù)據(jù)傳送MOV 數(shù)據(jù)交換XCHG AL與字節(jié)表間數(shù)據(jù)傳送XLAT,第2章:1. 傳送指令MOV(move),把一個字節(jié)或字的操作數(shù)從源地址傳送至目的地址,MOV reg/mem,imm;立即數(shù)送寄存器或主存,MOV reg/mem/seg,reg;寄存器送(段)寄存器或主存,MOV

41、 reg/seg,mem;主存送(段)寄存器,MOV reg/mem,seg;段寄存器送寄存器或主存,演示,MOV指令傳送功能圖解,第2章:MOV指令立即數(shù)傳送,mov cl,4;cl4,字節(jié)傳送 mov dx,0ffh;dx00ffh,字傳送 mov si,200h;si0200h,字傳送 mov bvar,0ah;字節(jié)傳送 ;假設(shè)bvar是一個字節(jié)變量,定義如下:bvar db 0 mov wvar,0bh;字傳送 ;假設(shè)wvar是一個字變量,定義如下:wvar dw 0,明確指令是字節(jié)操作還是字操作,MOV reg/mem,imm;立即數(shù)送寄存器或主存,第2章:MOV指令寄存器傳送,mo

42、v ah,al;ahal,字節(jié)傳送 mov bvar,ch;bvarch ,字節(jié)傳送 mov ax,bx;axbx,字傳送 mov ds,ax;dsax,字傳送 mov bx,al;bxal,字節(jié)傳送,寄存器具有明確的字節(jié)和字類型,MOV reg/mem/seg,reg;寄存器送(段)寄存器或主存,第2章:MOV指令存儲器傳送,mov al,bx;alds:bx mov dx,bp;dxss:bp+0 mov dx,bp+4;dxss:bp+4 mov es,si;esds:si,不存在存儲器向存儲器的傳送指令,MOV reg/seg,mem;主存送(段)寄存器,第2章:MOV指令段寄存器傳送

43、,mov si,ds mov ax,ds;axds mov es,ax;esaxds,對段寄存器的操作不靈活,MOV reg/mem,seg;段寄存器送寄存器或主存,第2章:MOV指令傳送功能圖解,MOV指令也并非任意傳送!,非法指令的主要現(xiàn)象:,CS,兩個操作數(shù)的類型不一致,無法確定是字節(jié)量還是字量操作,兩個操作數(shù)都是存儲器,段寄存器的操作有一些限制,第2章:非法指令兩個操作數(shù)類型不一致,在絕大多數(shù)雙操作數(shù)指令中,目的操作數(shù)和源操作數(shù)必須具有一致的數(shù)據(jù)類型,或者同為字量,或者同為字節(jié)量,否則為非法指令 MOV AL, 050AH;非法指令,修正: ;mov ax,050ah MOV SI,

44、DL;非法指令,修正: ;mov dh,0 ;mov si,dx,第2章:非法指令無法確定是字節(jié)量還是字量操作,當(dāng)無法通過任一個操作數(shù)確定是操作類型時,需要利用匯編語言的操作符顯式指明 MOV BX+SI, 255;非法指令,修正: ;mov byte ptr bx+si,255 ;byte ptr 說明是字節(jié)操作 ;mov word ptr bx+si,255 ;word ptr 說明是字操作,第2章:非法指令兩個操作數(shù)都是存儲器,8088指令系統(tǒng)除串操作指令外,不允許兩個操作數(shù)都是存儲單元(存儲器操作數(shù)) MOV buf2, buf1;非法指令,修正: ;假設(shè)buf2和buf1是兩個字變量

45、 ;mov ax,buf1 ;mov buf2,ax ;假設(shè)buf2和buf1是兩個字節(jié)變量 ;mov al,buf1 ;mov buf2,al,第2章:非法指令段寄存器的操作有一些限制,8088指令系統(tǒng)中,能直接對段寄存器操作的指令只有MOV等個別傳送指令,并且不靈活 MOV DS, ES;非法指令,修正: ;mov ax,es ;mov ds,ax MOV DS, 100H;非法指令,修正: ;mov ax,100h ;mov ds,ax MOV CS, SI;非法指令 ;指令存在,但不能執(zhí)行,第2章:2. 交換指令XCHG(exchange),把兩個地方的數(shù)據(jù)進行互換,寄存器與寄存器之間

46、對換數(shù)據(jù) 寄存器與存儲器之間對換數(shù)據(jù) 不能在存儲器與存儲器之間對換數(shù)據(jù),XCHG reg,reg/mem ;reg reg/mem,演示,例,第2章:例2.2 數(shù)據(jù)交換,mov ax,1199h;ax=1199h xchg ah,al;ax=9911h ;等同于 xchg al,ah mov wvar,5566h;wvar是一個字量變量 xchg ax,wvar ;ax=5566h,wvar=9911h ;等同于 xchg wvar,ax xchg al,byte ptr wvar+1 ;ax=5599h,wvar=6611h ;“byte ptr wvar+1”強制為字節(jié)量,只取高字節(jié)與AL

47、類型交換,否則數(shù)據(jù)類型不匹配,第2章:3. 換碼指令XLAT(translate),將BX指定的緩沖區(qū)中、AL指定的位移處的一個字節(jié)數(shù)據(jù)取出賦給AL,換碼指令執(zhí)行前: 在主存建立一個字節(jié)量表格,內(nèi)含要轉(zhuǎn)換成的目的代碼 表格首地址存放于BX,AL存放相對表格首地址的位移量 換碼指令執(zhí)行后: 將AL寄存器的內(nèi)容轉(zhuǎn)換為目標(biāo)代碼,XLAT;alds:bx+al,演示,第2章:2.3.2 堆棧操作指令,堆棧是一個“后進先出FILO”(或說“先進后出FILO”)的主存區(qū)域,位于堆棧段中;SS段寄存器記錄其段地址 堆棧只有一個出口,即當(dāng)前棧頂;用堆棧指針寄存器SP指定 堆棧只有兩種基本操作:進棧和出棧,對應(yīng)

48、兩條指令PUSH和POP,圖示,第2章:進棧指令PUSH,進棧指令先使堆棧指針SP減2,然后把一個字操作數(shù)存入堆棧頂部,PUSH r16/m16/seg ;SPSP2 ;SS:SPr16/m16/seg,演示,push ax push 2000h,第2章:出棧指令POP,出棧指令把棧頂?shù)囊粋€字傳送至指定的目的操作數(shù),然后堆棧指針SP加2,POP r16/m16/seg ; r16/m16/segSS:SP ;SPSP2,pop ax pop wvar,演示,第2章:堆棧操作的特點,堆棧操作的單位是字,進棧和出棧只對字量 字量數(shù)據(jù)從棧頂壓入和彈出時,都是低地址字節(jié)送低字節(jié),高地址字節(jié)送高字節(jié) 堆

49、棧操作遵循先進后出原則,但可用存儲器尋址方式隨機存取堆棧中的數(shù)據(jù) 堆棧段是程序中不可或缺的一個內(nèi)存區(qū),常用來 臨時存放數(shù)據(jù) 傳遞參數(shù) 保存和恢復(fù)寄存器,第2章:2.3.3 標(biāo)志操作指令,1. 標(biāo)志位操作指令 CLC;復(fù)位進位標(biāo)志:CF0 STC;置位進位標(biāo)志:CF1 CMC;求反進位標(biāo)志:CFCF CLD;復(fù)位方向標(biāo)志:DF0 STD;置位方向標(biāo)志:DF1 CLI;復(fù)位中斷標(biāo)志:IF0 STI;置位中斷標(biāo)志:IF1 2. 標(biāo)志寄存器低字節(jié)與AH的傳送指令 3. 標(biāo)志寄存器出入堆棧指令,2.3.3 標(biāo)志寄存器傳送指令,標(biāo)志寄存器傳送指令用來傳送標(biāo)志寄存器FLAGS的內(nèi)容,方便進行對各個標(biāo)志位的直

50、接操作 有2對4條指令 低8位傳送:LAHF和SAHF 16位傳送:PUSHF和POPF,標(biāo)志低字節(jié)進出AH指令,LAHF ;AHFLAGS的低字節(jié) LAHF指令將標(biāo)志寄存器的低字節(jié)送寄存器AH SF/ZF/AF/PF/CF狀態(tài)標(biāo)志位分別送入AH的第7/6/4/2/0位,而AH的第5/3/1位任意,SAHF ;FLAGS的低字節(jié)AH SAHF將AH寄存器內(nèi)容送FLAGS的低字節(jié) 用AH的第7/6/4/2/0位相應(yīng)設(shè)置SF/ZF/AF/ PF/CF標(biāo)志,標(biāo)志寄存器進出堆棧指令,PUSHF ;SPSP2 ;SS:SPFLAGS PUSHF指令將標(biāo)志寄存器的內(nèi)容壓入堆棧,同時棧頂指針SP減2,POP

51、F ;FLAGSSS:SP ;SPSP2 POPF指令將棧頂字單元內(nèi)容送標(biāo)志寄存器,同時棧頂指針SP加2,例題,例:置位單步標(biāo)志,pushf;保存全部標(biāo)志到堆棧 pop ax;從堆棧中取出全部標(biāo)志 or ax,0100h;設(shè)置D8=TF=1, ;ax其他位不變 push ax;將ax壓入堆棧 popf;FLAGSAX ;將堆棧內(nèi)容取到標(biāo)志寄存器,2.3.4 地址傳送指令,地址傳送指令將存儲器單元的邏輯地址送至指定的寄存器 有效地址傳送指令 LEA 指針傳送指令 LDS和LES 注意不是獲取存儲器單元的內(nèi)容,有效地址傳送指令LEA(load EA),將存儲器操作數(shù)的有效地址傳送至指定的16位寄存

52、器中,例題,LEA r16,mem ;r16mem的有效地址EA,LEA,例:獲取有效地址,mov bx,0400h mov si,3ch lea bx,bx+si+0f62h ;BX0400h003ch0f62h139EH,獲得主存單元的有效地址;不是物理地址,也不是該單元的內(nèi)容 可以實現(xiàn)計算功能,LEA,指針傳送指令,LDS r16,mem ;r16mem, ;DSmem+2 LDS指令將主存中mem指定的字送至r16,并將mem的下一字送DS寄存器,LES r16,mem ;r16mem, ;ESmem+2 LES指令將主存中mem指定的字送至r16,并將mem的下一字送ES寄存器,例題

53、,例:地址指針傳送,mov word ptr 3060h,0100h mov word ptr 3062h,1450h les di,3060h;es=1450h,di=0100h lds si,3060h;ds=1450h,si=0100h,mem指定主存的連續(xù)4個字節(jié)作為邏輯地址(32位的地址指針),送入DS:r16或ES:r16,2.3.5 輸入輸出指令,8086通過輸入輸出指令與外設(shè)進行數(shù)據(jù)交換;呈現(xiàn)給程序員的外設(shè)是端口(Port)即I/O地址 8086用于尋址外設(shè)端口的地址線為16條,端口最多為21665536(64K)個,端口號為0000HFFFFH 每個端口用于傳送一個字節(jié)的外設(shè)

54、數(shù)據(jù),輸入輸出尋址方式,8086的端口有64K個,無需分段,設(shè)計有兩種尋址方式 直接尋址:只用于尋址00HFFH前256個端口,操作數(shù)i8表示端口號 間接尋址:可用于尋址全部64K個端口,DX寄存器的值就是端口號 對大于FFH的端口只能采用間接尋址方式,輸入指令I(lǐng)N,將外設(shè)數(shù)據(jù)傳送給CPU內(nèi)的AL/AX,IN AL,i8 ;字節(jié)輸入:ALI/O端口(i8直接尋址) IN AL,DX ;字節(jié)輸入:ALI/O端口(DX間接尋址) IN AX,i8 ;字輸入:AXI/O端口(i8直接尋址) IN AX,DX ;字輸入:AXI/O端口(DX間接尋址),IN,例題,例:輸入字量,;直接尋址,字節(jié)量輸入

55、in al,21h mov ah,al in al,20h ;直接尋址,字量輸入 in ax,20h ;間接尋址,字量輸入 mov dx,20h in ax,dx,兩段功能相同 字量數(shù)據(jù)傳送實際上實現(xiàn)了連續(xù)的兩個端口地址的字節(jié)量傳送,IN,輸出指令OUT,將CPU內(nèi)的AL/AX數(shù)據(jù)傳送給外設(shè),OUT i8,AL ;字節(jié)輸出:I/O端口AL(i8直接尋址) OUT DX,AL ;字節(jié)輸出:I/O端口AL(DX間接尋址) OUT i8,AX ;字輸出:I/O端口AX(i8直接尋址) OUT DX,AX ;字輸出:I/O端口AX(DX間接尋址),OUT,例題,例:輸出字節(jié)量,;間接尋址,字節(jié)量輸出

56、mov dx,3fch mov al,80h out dx,al,OUT,MOV指令的功能,XCHG指令的功能,XLAT指令的功能,堆棧的圖示,SS,SP,0000H,(棧頂),存儲器,高地址,堆棧段,IN AL,21H,OUT 43H,AL,PUSH指令的功能,POP指令的功能,第2章,指令系統(tǒng),第2章:2.4 算術(shù)運算類指令,算術(shù)運算類指令用來執(zhí)行二進制的算術(shù)運算:加減乘除。 這類指令會根據(jù)運算結(jié)果影響狀態(tài)標(biāo)志,有時要利用某些標(biāo)志才能得到正確的結(jié)果;使用他們時請留心有關(guān)狀態(tài)標(biāo)志 重點掌握 加法指令:ADD、ADC、INC 減法指令:SUB 、SBB、DEC、CMP、NEG,第2章:2.4.

57、1 加法和減法指令,加法指令:ADD, ADC和INC 減法指令:SUB, SBB, DEC, NEG和CMP 他們分別執(zhí)行字或字節(jié)的加法和減法運算,除INC和DEC不影響CF標(biāo)志外,其他按定義影響全部狀態(tài)標(biāo)志位 操作數(shù)組合: 運算指令助記符 reg, imm/reg/mem 運算指令助記符 mem, imm/reg,第2章:1. 加和減指令,ADD dest,src ;加法:destdestsrc ;ADD指令使目的操作數(shù)加上源操作數(shù),和的結(jié)果送到目的操作數(shù) SUB dest,src ;減法:destdestsrc ;SUB指令使目的操作數(shù)減去源操作數(shù),差的結(jié)果送到目的操作數(shù),第2章:例題2

58、.7 加法,mov ax,7348h;AX7348H add al,27h ;AL48H27H6FH,AX736FH ;OF0,SF0,ZF0,PF1,CF0 add ax,3fffh ;AX736FH3FFFHB36EH ;OF1,SF1,ZF0,PF0,CF0,第2章:例題2.7 減法,sub ah,0f0h ;AHB3HF0HC3H,AXC36EH ;OF0,SF1,ZF0,PF1,CF1 mov word ptr200h,0ef00h ;200HEF00H,標(biāo)志不變 sub 200h,ax ;200HEF00HC36EH2B92H ;OF0,SF0,ZF0,PF0,CF0 sub si

59、,si;SI0 ;OF0,SF0,ZF1,PF1,CF0,第2章:2. 帶進位加和減指令,ADC dest,src ;加法:destdestsrcCF ;ADC指令除完成ADD加法運算外,還要加上進位CF,結(jié)果送到目的操作數(shù) SBB dest,src ;減法:destdestsrcCF ;SBB指令除完成SUB減法運算外,還要減去借位CF,結(jié)果送到目的操作數(shù),第2章:3. 比較指令CMP(compare),CMP dest,src ;做減法運算:destsrc ;CMP指令將目的操作數(shù)減去源操作數(shù),但差值不回送目的操作數(shù) 比較指令通過減法運算影響狀態(tài)標(biāo)志,用于比較兩個操作數(shù)的大小關(guān)系,cmp ax,bx cmp al,100,第2章:4. 增量和減量指令,INC reg/mem ;增量(加1):reg/memreg/mem1 DEC reg/mem ;減量(減1):reg/memreg/mem1 INC

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論