第3章 尋址方式與指令系統_第1頁
第3章 尋址方式與指令系統_第2頁
第3章 尋址方式與指令系統_第3頁
第3章 尋址方式與指令系統_第4頁
第3章 尋址方式與指令系統_第5頁
已閱讀5頁,還剩68頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1 本章主要教學內容本章主要教學內容l指令格式及尋址有關概念指令格式及尋址有關概念l8086指令系統尋址方式及其應用指令系統尋址方式及其應用l8086各類指令的表示、功能、特點及應用各類指令的表示、功能、特點及應用l常用常用DOS和和BIOS中斷調用簡介中斷調用簡介lPentium微處理器新增指令和尋址方式微處理器新增指令和尋址方式第第3 3章章 尋址方式與指令系統尋址方式與指令系統2 本章教學目的及要求本章教學目的及要求 通過學習,應掌握:通過學習,應掌握:l8086指令系統尋址方式及地址計算;指令系統尋址方式及地址計算;l8086典型指令及其應用;典型指令及其應用;lDOS和和BIOS中斷

2、調用;中斷調用;l熟悉熟悉Pentium微處理器新增寄存器、尋址方式和專微處理器新增寄存器、尋址方式和專用指令等。用指令等。第第3章章尋址方式與指令系統尋址方式與指令系統3第第3章章3.1 指令格式及尋址指令格式及尋址3-1-1 指令系統與指令格式指令系統與指令格式 1. 指令與指令系統指令與指令系統l 指令是要求計算機執行特定操作的命令。指令是要求計算機執行特定操作的命令。l 計算機所能執行的全部指令的集合稱為指令系統。計算機所能執行的全部指令的集合稱為指令系統。l指令以二進制編碼的形式存放在存儲器中,用二進制編碼形指令以二進制編碼的形式存放在存儲器中,用二進制編碼形式表示的指令稱為機器指令

3、。式表示的指令稱為機器指令。l用符號表示的指令稱為符號指令,匯編語言程序中的指令就用符號表示的指令稱為符號指令,匯編語言程序中的指令就是符號指令。具有直觀、易理解和可幫助記憶的特點。是符號指令。具有直觀、易理解和可幫助記憶的特點。尋址方式與指令系統尋址方式與指令系統4第第3章章尋址方式與指令系統尋址方式與指令系統 2. 指令格式指令格式(1)操作碼字段:規定指令的操作類型,說明計算機要執)操作碼字段:規定指令的操作類型,說明計算機要執行的具體操作。行的具體操作。(2)操作數字段:說明在指令執行的過程中需要的操作數。)操作數字段:說明在指令執行的過程中需要的操作數。5 3-1-2 尋址及尋址方式

4、的概念尋址及尋址方式的概念 一條指令要解決兩個問題:一條指令要解決兩個問題:l指出進行什么操作,由指令操作碼來表明;指出進行什么操作,由指令操作碼來表明;l指出操作數的來源,即操作數的尋址方式。指出操作數的來源,即操作數的尋址方式。 第第3章章尋址方式與指令系統尋址方式與指令系統6第第3章章尋址方式與指令系統尋址方式與指令系統根據操作數存放的位置,有根據操作數存放的位置,有3種表示形式:種表示形式:(1)立即數:在指令中,跟隨在操作碼后。)立即數:在指令中,跟隨在操作碼后。(2)寄存器操作數:包含在)寄存器操作數:包含在CPU的某個內部寄存器中。的某個內部寄存器中。(3)存儲器操作數:在內存數

5、據區中。)存儲器操作數:在內存數據區中。 7第第3章章尋址方式與指令系統尋址方式與指令系統 3-2 8086指令系統的尋址方式指令系統的尋址方式 8086提供了與操作數有關和與提供了與操作數有關和與I/O端口地址有關的兩端口地址有關的兩類尋址方式。類尋址方式。l 與操作數有關的尋址方式共與操作數有關的尋址方式共7種,分別是種,分別是立即數尋址立即數尋址、寄寄存器尋址存器尋址、直接尋址直接尋址、寄存器間接尋址寄存器間接尋址、寄存器相對尋址寄存器相對尋址、基址變址尋址基址變址尋址和和相對基址變址尋址相對基址變址尋址方式。方式。l 與與I/O端口有關的尋址方式分別是端口有關的尋址方式分別是直接端口尋

6、址直接端口尋址和和間接端間接端口尋址口尋址方式。方式。什么是立即什么是立即數尋址?數尋址?9第第3章章尋址方式與指令系統尋址方式與指令系統 3-2-1 與數據有關的尋址方式與數據有關的尋址方式1. 立即數尋址方式立即數尋址方式 操作數直接存放在指令中。用來對存儲器或寄存器賦值,操作數直接存放在指令中。用來對存儲器或寄存器賦值,只能用于源操作數字段。只能用于源操作數字段。例如:例如:MOV AL,11001010B ;將二進制數;將二進制數11001010B 送寄存器送寄存器ALMOV AL,0FH ;將十六進制數;將十六進制數0FH送送ALMOV AX,1234H ;將;將1234H送送AX;

7、 AH中為中為12H,AL中為中為34HMOV AL,10 ;將十進制數;將十進制數10送送AL什么是寄存什么是寄存器尋址?器尋址?11第第3章章尋址方式與指令系統尋址方式與指令系統 2. 寄存器尋址寄存器尋址 操作數存放在操作數存放在CPU的內部寄存器時,在指令中指出寄存的內部寄存器時,在指令中指出寄存器名。器名。 8位操作數采用位操作數采用AH、AL、BH、BL、CH、CL、DH、DL等寄存器保存;等寄存器保存;16位操作數采用位操作數采用AX、BX、CX、DX、SI、DI、SP、BP等寄存器保存。等寄存器保存。例如:例如:MOV AX,BX;將;將BX的內容送的內容送AX ADD AX,

8、BX;執行(;執行(AX)(AX)+(BX) 什么是直接什么是直接尋址?(存尋址?(存儲器)儲器)13第第3章章尋址方式與指令系統尋址方式與指令系統 3存儲器尋址方式存儲器尋址方式有效地址有效地址EA:指令中給出的操作數的地址碼,是一個位移:指令中給出的操作數的地址碼,是一個位移量數據。量數據。EA可由多種方式給出,對應多種可由多種方式給出,對應多種存儲器尋址存儲器尋址方式。方式。(1)直接尋址)直接尋址 指令中給出的地址碼即為操作數的有效地址。指令中給出的地址碼即為操作數的有效地址。mov ax, 0002hEA=0002h,假設段地址,假設段地址(DS)=2000H,則操作數的物理,則操作

9、數的物理地址地址PA=(DS)x10H+EA=20002H(mov ax, ES:0002H,如果不加指明直接尋址使用,如果不加指明直接尋址使用DS)什么是寄存器什么是寄存器間接尋址?間接尋址?(存儲器)(存儲器)(2)寄存器間接尋址方式)寄存器間接尋址方式 指令中給出指令中給出寄存器寄存器,寄存器中的內容為操作數的有效地址,寄存器中的內容為操作數的有效地址。mov ax, bx ;如如 (DS)=2000h,(BX)=1000h,則則 EA=? PA=?EA=1000h, PA=2000Hx10H+1000H=21000HBX,SI,DI - DSBP - SS什么是寄存器什么是寄存器相對尋

10、址?相對尋址?(存儲器)(存儲器)(3)寄存器相對尋址方式)寄存器相對尋址方式 指令中給定一個指令中給定一個基址寄存器基址寄存器(或(或變址寄存器變址寄存器)和一個)和一個8位位或或16位的相對偏移量,兩者之和作為操作數的有效地址。位的相對偏移量,兩者之和作為操作數的有效地址。 mov ax,bx+10h如如 (bx)=1200h,(ds)=2000hEA=? PA=?EA=1200h+10h=1210hPA=(DS)x10H+EA=20000h+1210h=21210hBX,SI,DI - DSBP - SS什么是基址變什么是基址變址尋址?(存址尋址?(存儲器)儲器)19第第3章章尋址方式與

11、指令系統尋址方式與指令系統(4)基址變址尋址)基址變址尋址 在指令中給出一個在指令中給出一個基址寄存器基址寄存器(bx/bp)和一個和一個變址寄存變址寄存器器(si/di),兩者內容之和作為操作數的有效地址。,兩者內容之和作為操作數的有效地址。 mov ax,bx+si(DS)=1200h,(bx)=0100h,(si)=0050h,EA=? PA=?EA=(bx)+(si)=0150h, PA=1200Hx10H+EA=12000h+0150h=12150hBx - DSBp - SS基址變址尋址DS1200H0100HBX0050HSI+X10H+12150H存儲器22H11HAX1215

12、0H12151HMOV AX, BX+SI什么是相對基什么是相對基址變址尋址?址變址尋址?(存儲器)(存儲器)(5)相對基址變址尋址)相對基址變址尋址 在指令中給出一個在指令中給出一個基址寄存器(基址寄存器(bx/bp)、一個、一個變址寄存變址寄存器(器(si/di)和和8位或位或16位的位的偏移量偏移量,三者之和作為操作數的,三者之和作為操作數的有效地址。有效地址。mov ax, bx+di+0050h,如,(DS)=2100h,(bx)=0110h,(di)=0020h,EA=? PA=?EA=(bx)+(di)+50h=0110h+0020h+0050h=0180h,PA=21000h+

13、EA=21180hBX - DS; BP - SS23第第3章章尋址方式與指令系統尋址方式與指令系統 3-2-2 與與I/O端口有關的尋址方式端口有關的尋址方式1. 直接端口尋址直接端口尋址 指令中直接給出要訪問的端口地址,可訪問端口范圍為指令中直接給出要訪問的端口地址,可訪問端口范圍為0255。 例如:例如:IN AL,25H 表示從表示從I/O端口地址為端口地址為25H的端口中取數據送到寄存器的端口中取數據送到寄存器AL中。中。24第第3章章尋址方式與指令系統尋址方式與指令系統 2. 寄存器間接端口尋址寄存器間接端口尋址 若訪問端口地址值大于若訪問端口地址值大于255,須用,須用I/O端口

14、間接尋址方式。端口間接尋址方式。用用DX作為間接尋址寄存器。訪問端口范圍作為間接尋址寄存器。訪問端口范圍065535。 例如:例如: MOV DX,285H ;將端口地址;將端口地址285H送到送到DX寄存器寄存器 OUT DX,AL ;將;將AL中的內容輸出到中的內容輸出到DX指定的端口指定的端口 25第第3章章尋址方式與指令系統尋址方式與指令系統 3-3 8086指令系統指令系統8086指令系統按功能可以分為以下指令系統按功能可以分為以下6類指令:類指令:數據傳送類指令數據傳送類指令算術運算類指令算術運算類指令邏輯運算(位操作)類指令邏輯運算(位操作)類指令串操作類指令串操作類指令控制轉移

15、類指令控制轉移類指令處理器控制類指令處理器控制類指令26第第3章章尋址方式與指令系統尋址方式與指令系統3-3-1 數據傳送類指令數據傳送類指令 數據傳送類指令功能是把數據、地址或立即數傳送到寄數據傳送類指令功能是把數據、地址或立即數傳送到寄存器或存儲單元。存器或存儲單元。 此類指令除此類指令除SAHF和和POPF外均不影響標志寄存器內容。外均不影響標志寄存器內容。 27第第3章章尋址方式與指令系統尋址方式與指令系統 1.1.通用數據傳送指令通用數據傳送指令(1 1)傳送指令)傳送指令MOVMOV格式:格式:MOV dstMOV dst,srcsrcMOV MOV 指令的功能指令的功能把源操作數

16、把源操作數srcsrc傳送至目的操作數傳送至目的操作數dstdst,執行后,執行后源操作數內容不變,目的操作數內容與源操作數內容不變,目的操作數內容與源操作數內容相同。源操作數內容相同。 源操作數可以是通用寄存器、段寄存器、存儲器源操作數可以是通用寄存器、段寄存器、存儲器以及立即數,目標操作數可以是通用寄存器、段寄以及立即數,目標操作數可以是通用寄存器、段寄存器(存器(CS除外)或存儲器。除外)或存儲器。 MOV dst,src通用寄存器(通用寄存器(AX,BX,CX,DX,BP,SP,SI,DI)存儲器存儲器立即數立即數段寄存器(段寄存器(DS,ES,SS,CS-源)源)29 【例例3.6】

17、MOV指令的應用形式分析:指令的應用形式分析:MOV AL,35H ;8位立即數位立即數35H送送ALMOV DX,1234H;16位立即數位立即數1234H送送DXMOV DL,B;字符;字符B的的ASCII碼送碼送DLMOV CL,BL ;8位寄存器之間傳送位寄存器之間傳送MOV AX,BX;16位寄存器之間傳送位寄存器之間傳送MOV AX,2100H ;存儲單元數據送;存儲單元數據送AXMOV 0210H,SI ;SI中內容送指定存儲單元中內容送指定存儲單元MOV DS,AX;AX中內容送段寄存器中內容送段寄存器DSMOV SI,DS;DS的內容送的內容送SI所指示單元所指示單元MOV

18、ES,BX ;BX所指的存儲單元內容送所指的存儲單元內容送ES注意的問題注意的問題(紅色為錯誤指令紅色為錯誤指令):(1)不能在兩個存儲單元之間傳送。)不能在兩個存儲單元之間傳送。 MOV 1000H ,2000H(2)立即數不能送段寄存器。)立即數不能送段寄存器。 MOV DS ,300H (3)段寄存器之間不能傳送。)段寄存器之間不能傳送。 MOV DS ,ES(4)CS不能做目的但可做源操作數。不能做目的但可做源操作數。MOV CS ,AXMOV AX ,CS(5)操作數類型要匹配,字對字,字節對字節傳送)操作數類型要匹配,字對字,字節對字節傳送 MOV AX ,BLMOV AX, 1

19、;(6)MOV指令不影響標志寄存器的值指令不影響標志寄存器的值(7)目的操作數不允許用立即數尋址。)目的操作數不允許用立即數尋址。 31第第3章章尋址方式與指令系統尋址方式與指令系統 (2)堆棧操作指令)堆棧操作指令PUSH/POP進棧指令:進棧指令:PUSH opr ;SPSP2,將源操作,將源操作 數數opr壓入堆棧壓入堆棧出棧指令:出棧指令:POP opr ;棧頂彈出字數據到目標;棧頂彈出字數據到目標 操作數操作數opr,SPSP+2 堆棧是存儲器中的一個特殊區域,用于存入和取堆棧是存儲器中的一個特殊區域,用于存入和取出數據,堆棧以出數據,堆棧以“先進后出先進后出”方式進行數據操作。方式

20、進行數據操作。8086堆棧組織中,堆棧從高地址向低地址方向生長,堆棧組織中,堆棧從高地址向低地址方向生長,堆棧指針寄存器堆棧指針寄存器SP始終指向堆棧的棧頂單元。始終指向堆棧的棧頂單元。 堆棧操作n操作數可以是操作數可以是 通用通用寄存器、段寄存器寄存器、段寄存器、存儲器操作數、存儲器操作數。不能用不能用立即數立即數。堆棧段存儲增長方向堆棧段存儲增長方向和一般內存段剛好和一般內存段剛好相反相反堆棧段01H12H34H56HSSSP高高低低33第第3章章尋址方式與指令系統尋址方式與指令系統 (3 3)XCHG XCHG 交換指令交換指令 XCHGXCHG指令用來將源操作數和目的操作數的內容進指令

21、用來將源操作數和目的操作數的內容進行交換。可實現字節數據交換,也可實現字數據交行交換。可實現字節數據交換,也可實現字數據交換。換。XCHG opr1,opr2必須有一個操作數是在寄存器中。必須有一個操作數是在寄存器中。XCHG AX, BX交換寄存器交換寄存器AX和和BX的內容的內容 34第第3章章尋址方式與指令系統尋址方式與指令系統 2.累加器專用傳送指令累加器專用傳送指令 (1)IN/ OUT 輸入輸入/輸出指令輸出指令 IN Acc,src ;Acc為為8位或位或16位累加器。位累加器。 OUT dst,Acc (2)XLAT換碼指令(查表)換碼指令(查表) 指令格式為:指令格式為:XL

22、AT ;執行操作;執行操作AL(BX+AL)35第第3章章尋址方式與指令系統尋址方式與指令系統 3.3.地址傳送指令地址傳送指令(1 1)有效地址送寄存器指令:)有效地址送寄存器指令:LEA regLEA reg,srcsrc存儲器操作數存儲器操作數srcsrc的的有效地址有效地址傳到傳到regreg寄存器。寄存器。(2 2)地址指針送寄存器和)地址指針送寄存器和DSDS指令:指令:LDS regLDS reg,src src 存儲器操作數送存儲器操作數送reg,reg,該操作數在存貯器中的下一個字該操作數在存貯器中的下一個字送送DS DS (3 3)地址指針送寄存器和)地址指針送寄存器和ES

23、ES指令:指令:LES regLES reg,src src 存儲器操作數送存儲器操作數送reg,該操作數在存貯器中的下一個字該操作數在存貯器中的下一個字送送ES36第第3章章尋址方式與指令系統尋址方式與指令系統 4.4.標志寄存器傳送指令標志寄存器傳送指令 標志寄存器傳送指令共有標志寄存器傳送指令共有4 4條,均為單字節指令,指令的條,均為單字節指令,指令的操作數以隱含形式出現,隱含為操作數以隱含形式出現,隱含為AHAH寄存器。寄存器。(1 1)取標志指令)取標志指令LAHFLAHF(2 2)置標志位指令)置標志位指令SAHFSAHF(3 3)標志寄存器入棧指令)標志寄存器入棧指令PUSHF

24、PUSHF(4 4)標志寄存器出棧指令)標志寄存器出棧指令POPF POPF 37第第3章章尋址方式與指令系統尋址方式與指令系統 3-3-2 算術運算類指令算術運算類指令 80868086的算術運算類指令包括加、減、乘、除的算術運算類指令包括加、減、乘、除4 4種種基本運算指令,以及為進行基本運算指令,以及為進行BCDBCD碼十進制數運算而設碼十進制數運算而設置的各種較正指令。置的各種較正指令。 80868086的基本算術運算指令中,除加的基本算術運算指令中,除加1 1和減和減1 1指令指令外,其余均為雙操作數指令,兩個操作數中除了源外,其余均為雙操作數指令,兩個操作數中除了源操作數可為立即數

25、外,必須有一個操作數在寄存器操作數可為立即數外,必須有一個操作數在寄存器中,而單操作數指令則不允許采用立即數方式。中,而單操作數指令則不允許采用立即數方式。 38第第3章章尋址方式與指令系統尋址方式與指令系統加減法運算在執行過程中:加減法運算在執行過程中:l無符號數,加法運算最高位向前產生進位,減法運算最高無符號數,加法運算最高位向前產生進位,減法運算最高位向前有借位,位向前有借位,CF=1,CF標志位可檢測這種情況;標志位可檢測這種情況;l帶符號數,采用補碼運算,符號位參加運算,溢出表示運帶符號數,采用補碼運算,符號位參加運算,溢出表示運算結果發生錯誤,用算結果發生錯誤,用OF標志位可檢測帶

26、符號數是否溢出。標志位可檢測帶符號數是否溢出。39第第3章章尋址方式與指令系統尋址方式與指令系統 算術運算指令會影響標志位,其規則如下:算術運算指令會影響標志位,其規則如下:運算結果向前產生進位或借位時,運算結果向前產生進位或借位時,CF=1;最高位向前進位和次高位向前進位不同時,最高位向前進位和次高位向前進位不同時,OF=1;(溢出,計算結果不正確)(溢出,計算結果不正確)若運算結果為若運算結果為0,ZF=1;若運算結果最高位為若運算結果最高位為1,SF=1;若運算結果中有偶數個若運算結果中有偶數個1,PF=1。40第第3章章尋址方式與指令系統尋址方式與指令系統 1加、減法指令及其應用加、減

27、法指令及其應用【例例3.12】分析給定加、減法指令的格式及操作功能分析給定加、減法指令的格式及操作功能ADD AL,BL;兩個寄存器字節數據相加;兩個寄存器字節數據相加ADD AL,0210H ;內存單元與寄存器字節數據相加;內存單元與寄存器字節數據相加ADD SI,AX;寄存器與內存單元字數據相加;寄存器與內存單元字數據相加INC AL;執行(;執行(AL)(AL)+1INC CX;執行(;執行(CX)(CX)+1SUB AX,BX;執行(;執行(AX)(AX)-(BX)SBB DX,CX;執行(;執行(DX)(DX)-(CX)-CFDEC CX;執行(;執行(CX)(CX)-1nCmp指令

28、指令實際是減法,但不保存結果,僅設置標志位,用于比較大小。實際是減法,但不保存結果,僅設置標志位,用于比較大小。cmp al,0 jge next ; al=0(處理器對兩個操作數進行運算時,按照無符號(處理器對兩個操作數進行運算時,按照無符號數求得結果,并相應設置進位標志數求得結果,并相應設置進位標志CF;同時,;同時,根據是否超出有符號數的范圍設置溢出標志根據是否超出有符號數的范圍設置溢出標志OF)。)。42第第3章章尋址方式與指令系統尋址方式與指令系統2. 乘、除法指令及其應用乘、除法指令及其應用 (1)乘法指令包括無符號數和帶符號數相乘的指令,指乘法指令包括無符號數和帶符號數相乘的指令

29、,指令中只給出乘數,被乘數隱含給出。令中只給出乘數,被乘數隱含給出。 兩個兩個8 8位數相乘時被乘數放入位數相乘時被乘數放入ALAL中,中,1616位數的乘積存放到位數的乘積存放到AXAX中;兩個中;兩個1616位數相乘時被乘數先放入位數相乘時被乘數先放入AXAX寄存器中,寄存器中,3232位數位數的乘積放到的乘積放到DXDX和和AXAX兩個寄存器中,規定兩個寄存器中,規定DXDX中存放高中存放高1616位,位,AXAX中存放低中存放低1616位。位。43第第3章章尋址方式與指令系統尋址方式與指令系統(2)8086CPU執行除法時規定:執行除法時規定: 除數長度只能是被除數長度的一半。當被除數

30、為除數長度只能是被除數長度的一半。當被除數為16位時,位時,除數應為除數應為8位;當被除數為位;當被除數為32位時,除數應為位時,除數應為16位。位。 DIV無符號數除法指令的被除數、除數、商和余數全部無符號數除法指令的被除數、除數、商和余數全部為無符號數;為無符號數;IDIV帶符號數除法指令的被除數、除數、商帶符號數除法指令的被除數、除數、商和余數均為帶符號數,且余數的符號位與被除數相同。和余數均為帶符號數,且余數的符號位與被除數相同。44第第3章章尋址方式與指令系統尋址方式與指令系統 (3)符號擴展指令:指用一個操作數的符號位形成另一)符號擴展指令:指用一個操作數的符號位形成另一個操作數,

31、后一個操作數的各位是全個操作數,后一個操作數的各位是全0(正數)或全(正數)或全1(負數。(負數。 CBW字節轉換為字指令:字節轉換為字指令: 將將AL中符號位擴展到中符號位擴展到AH中。中。 CWD字轉換為雙字指令:字轉換為雙字指令: 將將AX中符號位擴展到中符號位擴展到DX中。中。45第第3章章尋址方式與指令系統尋址方式與指令系統 3.3.十進制調整指令十進制調整指令 (1 1)組合)組合BCDBCD碼加法、減法調整指令碼加法、減法調整指令 DAA DAA ;組合;組合BCDBCD碼加法調整指令,將碼加法調整指令,將ALAL中的和調整中的和調整 為組合為組合BCDBCD碼碼 DAS DAS

32、 ;組合;組合BCDBCD碼減法調整指令,將碼減法調整指令,將ALAL中的差調整中的差調整 為組合為組合BCDBCD碼碼46第第3章章尋址方式與指令系統尋址方式與指令系統(2)非組合)非組合BCD加法、減法調整指令加法、減法調整指令AAA非組合十進制數非組合十進制數加加法調整指令法調整指令AAS非組合十進制數減法調整指令非組合十進制數減法調整指令 47第第3章章尋址方式與指令系統尋址方式與指令系統3-3-3 邏輯運算與移位類指令邏輯運算與移位類指令1. 邏輯運算指令及其應用邏輯運算指令及其應用(1 1)邏輯與指令:)邏輯與指令:AND dstAND dst,srcsrc(2 2)邏輯或指令:)

33、邏輯或指令:OR dstOR dst,srcsrc(3 3)邏輯異或指令:)邏輯異或指令:XOR dstXOR dst,srcsrc(4 4)邏輯非指令:)邏輯非指令:NOT dstNOT dst(5 5)測試指令:)測試指令:TEST dstTEST dst,src src 源操作數和目的操作數執行源操作數和目的操作數執行 與與 的操作,但結果不回的操作,但結果不回送,僅影響標志位,可以在不改變操作數的情況下測試某一送,僅影響標志位,可以在不改變操作數的情況下測試某一位是位是0 0還是還是1. test al,80h ;1. test al,80h ;測試最高位測試最高位jnz next j

34、nz next ; 最高位是最高位是 1 148第第3章章尋址方式與指令系統尋址方式與指令系統 2. 移位指令及其應用移位指令及其應用 移位操作類指令可以對字節或字中的各位數據進行算術移移位操作類指令可以對字節或字中的各位數據進行算術移位、邏輯移位或循環移位。位、邏輯移位或循環移位。 49第第3章章尋址方式與指令系統尋址方式與指令系統 3-3-4 串操作類指令串操作類指令 基本串操作指令有:基本串操作指令有:l串傳送(串傳送(MOVS)l串比較(串比較(CMPS)l串掃描(串掃描(SCAS)l串存取(串存取(LODS、 STOS) 50第第3章章尋址方式與指令系統尋址方式與指令系統 3-3-4

35、 串操作類指令串操作類指令1串傳送指令串傳送指令2串存儲指令串存儲指令3取串指令取串指令4串比較指令串比較指令5串搜索指令串搜索指令6方向標志處理指令方向標志處理指令7重復操作前綴指令重復操作前綴指令 51第第3章章尋址方式與指令系統尋址方式與指令系統 3-3-5 控制轉移類指令控制轉移類指令 控制轉移類指令用來改變程序執行的方向,即修改控制轉移類指令用來改變程序執行的方向,即修改IP和和CS的值。的值。 按轉移位置可將轉移指令分為段內轉移和段間轉移。若按轉移位置可將轉移指令分為段內轉移和段間轉移。若指令改變指令改變IP中內容,轉移目標位置和轉移指令在同一個代碼中內容,轉移目標位置和轉移指令在

36、同一個代碼段,稱段內轉移;如指令改變段,稱段內轉移;如指令改變IP中內容,又改變中內容,又改變CS中內容,中內容,轉移目標位置和轉移指令不在同一個代碼段,稱段間轉移。轉移目標位置和轉移指令不在同一個代碼段,稱段間轉移。 根據轉移指令的功能,分為無條件轉移指令、條件轉移根據轉移指令的功能,分為無條件轉移指令、條件轉移指令、循環控制指令、子程序調用和返回指令等。指令、循環控制指令、子程序調用和返回指令等。 52第第3章章尋址方式與指令系統尋址方式與指令系統 1.1.無條件轉移指令無條件轉移指令JMP SHORT opr JMP SHORT opr ;段內直接短轉移;段內直接短轉移JMP NEAR

37、PTR opr JMP NEAR PTR opr ;段內直接近轉移;段內直接近轉移JMP WORD PTR opr JMP WORD PTR opr ;段內間接轉移;段內間接轉移JMP FAR PTR opr JMP FAR PTR opr ;段間直接轉移;段間直接轉移JMP DWORD PTR opr JMP DWORD PTR opr ;段間間接轉移;段間間接轉移53第第3章章尋址方式與指令系統尋址方式與指令系統 2.2.條件轉移指令條件轉移指令 條件轉移指令是根據上一條指令所設置的條件碼來測試,條件轉移指令是根據上一條指令所設置的條件碼來測試,被測試的內容為狀態標志位。滿足測試條件則轉移

38、到指令中指被測試的內容為狀態標志位。滿足測試條件則轉移到指令中指定的位置去執行,如果不滿足條件則順序執行下一條指令。定的位置去執行,如果不滿足條件則順序執行下一條指令。(p71)條件轉移:條件轉移:jz/je/jnz/js/jns/jo/jno等等等等無符號數比較轉移:無符號數比較轉移:jc/jb/jnae,jnc/jnb/jae,jbe/jna,jnbe/ja有符號數比較轉移:有符號數比較轉移:jl/jnge,jnl/jge,jle/jng,jnle/jg(后兩類(后兩類CMP指令后用,根據數值是有符號還是無符號使用)指令后用,根據數值是有符號還是無符號使用) 練習:寫一程序段,將練習:寫一

39、程序段,將AL內容和內容和-5比較,比較,AL大于大于-5,AL寄存寄存器內容傳給器內容傳給BL,否則把,否則把 -5傳給傳給BL。Cmp al, -5jg aaamov bl, -5jmp exitAaa:mov bl, alExit:halt55第第3章章尋址方式與指令系統尋址方式與指令系統 3.3.循環控制指令循環控制指令 循環程序是一種常用的程序結構,為加快對循環程序的循環程序是一種常用的程序結構,為加快對循環程序的控制,控制,8086系統專門設置一組循環控制指令,見表系統專門設置一組循環控制指令,見表3-5所示,所示,循環計數值在循環計數值在CX中。中。指令名稱指令名稱助記符助記符測

40、試條件測試條件循環循環LOOP目標標號目標標號CXCX-1, CX0等于等于/結果為結果為0循環循環LOOPE/LOOPZ目標標號目標標號CXCX-1,ZF=1且且CX0不等于不等于/結果不為結果不為0循環循環LOOPNE/LOOPNZ目標標目標標號號CXCX-1,ZF=0且且CX0CX內容為內容為0轉移轉移JCXZ目標標號目標標號CX=0 表3-5 循環控制指令 n練習:用循環計算1+2+3+10的和。Mov cx, 0ahAaa: ADD AX,CXloop aaa57第第3章章尋址方式與指令系統尋址方式與指令系統 4.4.子程序調用和返回指令子程序調用和返回指令(1 1)子程序調用指令)

41、子程序調用指令 格式:格式:CALL NEAR PTR opr CALL NEAR PTR opr ;段內調用;段內調用 CALL FAR PTR opr CALL FAR PTR opr ;段間調用;段間調用(2 2)子程序返回指令)子程序返回指令RETRET 格式:格式: RETRET 或或 RET 表達式表達式 58第第3章章尋址方式與指令系統尋址方式與指令系統3-3-6 處理器控制類指令 這類指令主要用于修改狀態標志位、控制CPU的功能如使CPU暫停、等待、空操作等。 59尋址方式與指令系統尋址方式與指令系統第第3章章 3-4 DOS和和BIOS中斷調用中斷調用3-4-1 DOS功能調

42、用功能調用 DOS功能調用可完成對文件、設備、內存的管理。功能調用可完成對文件、設備、內存的管理。對用戶來說,這些功能模塊就是幾十個獨立的中斷對用戶來說,這些功能模塊就是幾十個獨立的中斷服務程序,這些程序的入口地址已由系統置入中斷服務程序,這些程序的入口地址已由系統置入中斷向量表中,在匯編語言程序中可用中斷指令直接調向量表中,在匯編語言程序中可用中斷指令直接調用。用。60尋址方式與指令系統尋址方式與指令系統第第3章章 1. 系統功能調用的方法系統功能調用的方法(1)將入口參數送到指定寄存器中;)將入口參數送到指定寄存器中;(2)子程序功能號送入)子程序功能號送入AH寄存器中;寄存器中;(3)使

43、用)使用INT21H指令轉入子程序入口執行相應操作。指令轉入子程序入口執行相應操作。 2. 常用的幾種系統功能調用常用的幾種系統功能調用(1)AH=01H;帶顯示的鍵盤輸入;帶顯示的鍵盤輸入(2)AH=02H;從顯示器上輸出單個字符;從顯示器上輸出單個字符(3)AH=09H;在顯示器上輸出字符串;在顯示器上輸出字符串(4)AH=0AH;字符串輸入到緩沖區;字符串輸入到緩沖區61尋址方式與指令系統尋址方式與指令系統第第3章章 3-4-2 BIOS中斷調用中斷調用 BIOS為用戶程序和系統程序提供主要外設的控制功能,為用戶程序和系統程序提供主要外設的控制功能,如系統加電自檢、引導裝入及對鍵盤、磁盤

44、、磁帶、顯示器、如系統加電自檢、引導裝入及對鍵盤、磁盤、磁帶、顯示器、打印機、異步串行通信口等的控制。打印機、異步串行通信口等的控制。 每個功能模塊的入口地址都在中斷矢量表中,通過中斷指每個功能模塊的入口地址都在中斷矢量表中,通過中斷指令令INT n可以直接調用。可以直接調用。n是中斷類型號,每個類型號是中斷類型號,每個類型號n對應對應一種一種I/O設備的中斷調用,每個中斷調用又以功能號來區分設備的中斷調用,每個中斷調用又以功能號來區分其控制功能。其控制功能。 DOS調用n讀鍵盤:讀鍵盤:AH=01H,等待鍵盤輸入一個字符(并回顯),返回在,等待鍵盤輸入一個字符(并回顯),返回在AL寄存器中;

45、寄存器中; mov ah,01hint 21h顯示單個字符:顯示單個字符:AH=02h,待顯示的字符放在,待顯示的字符放在DL中;中;mov ah,02hmov dl, aint 21hn顯示字符串:顯示字符串:AH=09h,DS:DX指向字符串內存地址,字符串必須以指向字符串內存地址,字符串必須以$美元符結束,但美元符不會顯示出來,僅顯示它美元符結束,但美元符不會顯示出來,僅顯示它之前的字符串。之前的字符串。string DB 1234567890$LEASI,stringMOVSI+6,$LEADX,string+1MOVAH,09hINT21H顯示什么?顯示什么? 23456n練習:從鍵盤輸入練習:從鍵盤輸入100個字母,存儲在個字母,存儲在buf緩沖區中。緩沖區中。Buf db 100 DUP(0)Mov cx,100Lea di,bufAaa: mov ah,01int 21hmov di,alinc diloop aaa65第第3章章尋址方式與指令系統尋址方式與指令系統3-5 Pentium微處理器新增尋址方式和指令微處理器新增尋址方式和指令3-5-1 Pentium微處理器的內部寄存器微處理器的內部寄存

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論