第 尋址方式與指令系統(tǒng)PPT課件_第1頁
第 尋址方式與指令系統(tǒng)PPT課件_第2頁
第 尋址方式與指令系統(tǒng)PPT課件_第3頁
第 尋址方式與指令系統(tǒng)PPT課件_第4頁
第 尋址方式與指令系統(tǒng)PPT課件_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1第第3章章3-1-1 指令系統(tǒng)與指令格式 1. 指令與指令系統(tǒng) 指令是要求計算機執(zhí)行特定操作的命令,通常一條指令對應(yīng)一種特定操作。指令的執(zhí)行是在計算機的CPU中完成的,每條指令規(guī)定的運算及基本操作都是簡單的、基本的,它和計算機硬件所具備的能力相對應(yīng)。 計算機所能執(zhí)行的全部指令的集合稱為指令系統(tǒng)。指令系統(tǒng)是計算機硬件和軟件之間的橋梁,是匯編語言程序設(shè)計的基礎(chǔ),它與微處理器的性能密切相關(guān),性能優(yōu)越的指令系統(tǒng)可以更快更好地運行各種程序,實現(xiàn)更多的微處理器性能。3.1 指令格式及尋址第1頁/共62頁2第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 2. 指令格式 計算機是通過執(zhí)行指令來處理數(shù)據(jù)的,為

2、了指出數(shù)據(jù)的來源、操作結(jié)果的去向以及所執(zhí)行的操作,指令應(yīng)該由操作碼字段和操作數(shù)字段兩部分組成。(1)操作碼字段:規(guī)定指令的操作類型,說明計算機要執(zhí)行的具體操作。(2)操作數(shù)字段:說明在指令執(zhí)行的過程中需要的操作數(shù),它可以是操作數(shù)本身,也可以是操作數(shù)地址或是地址的一部分,還可以是指向操作數(shù)的地址指針或其它有關(guān)操作數(shù)據(jù)的信息。第2頁/共62頁3 3-1-2 尋址及尋址方式的概念 對于一條指令來說,要解決兩個問題:一是要指出進行什么操作,這由指令操作碼來表明;二是要指出操作數(shù)的來源,這就是操作數(shù)的尋址方式。 計算機中大多數(shù)指令采用一個或兩個操作數(shù)。操作數(shù)有3種表示形式,分別稱為立即數(shù)、寄存器操作數(shù)和

3、存儲器操作數(shù)。 指令指定操作數(shù)的位置,即給出地址信息,在執(zhí)行時需要根據(jù)這個地址信息找到需要的操作數(shù),這種尋找操作數(shù)的過程稱為尋址,尋址方式就是尋找操作數(shù)或操作數(shù)地址的方式。根據(jù)尋址方式可以方便地訪問各類操作數(shù)。第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)第3頁/共62頁4第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 8086指令中的操作數(shù)有三種可能的存放位置:(1)立即操作數(shù)在指令中,即指令的操作數(shù)部分就是操作數(shù)本身。(2)寄存器操作數(shù)包含在CPU的某個內(nèi)部寄存器中,這時指令的操作數(shù)部分是CPU內(nèi)部寄存器的一個編碼。(3)存儲器操作數(shù)在內(nèi)存的數(shù)據(jù)區(qū)中,這時指令的操作數(shù)部分包含此操作數(shù)所在的

4、內(nèi)存地址。第4頁/共62頁5第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 8086提供了與數(shù)據(jù)有關(guān)和與I/O端口地址有關(guān)的兩類尋址方式。 其中,與操作數(shù)有關(guān)的尋址方式共7種,分別是立即數(shù)尋址、寄存器尋址、直接尋址、寄存器間接尋址、寄存器相對尋址、基址變址尋址和相對基址變址尋址方式; 與I/O端口地址有關(guān)的尋址方式分別是直接端口尋址和間接端口尋址方式。3-2 8086指令系統(tǒng)的尋址方式第5頁/共62頁6第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3-2-1 與數(shù)據(jù)有關(guān)的尋址方式1. 立即數(shù)尋址方式操作數(shù)直接存放在指令中,緊跟在操作碼之后就是立即數(shù)尋址方式。主要用來對存儲器或寄存器賦值,且只

5、能用于源操作數(shù)字段,不能用于目的操作數(shù)字段。例如:MOV AL,11001010B ;將二進制數(shù)11001010B 送寄存器ALMOV AL,0FH ;將十六進制數(shù)0FH送ALMOV AX,1234H ;將1234H送AX; AH中為12H,AL中為34HMOV AL,10 ;將十進制數(shù)10送AL第6頁/共62頁7第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 2. 寄存器尋址 操作數(shù)存放在CPU的內(nèi)部寄存器時,可在指令中指出寄存器名,這種尋址方式就叫寄存器尋址方式。 8位操作數(shù)可采用AH、AL、BH、BL、CH、CL、DH、DL等寄存器保存;16位操作數(shù)可采用AX、BX、CX、DX、SI、D

6、I、SP、BP等寄存器保存。例如:MOV AX,BX ;將BX的內(nèi)容送AX ADD AX,BX;執(zhí)行(AX)(AX)+(BX) 第7頁/共62頁8第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3存儲器尋址方式 由于寄存器數(shù)量有限,所以程序中的大多數(shù)操作數(shù)需要從內(nèi)存中獲得。內(nèi)存的尋址方式有多種,最終都將得到存放操作數(shù)的物理地址。 8086指令系統(tǒng)提供了以下5種針對存儲器的尋址方式。(1)直接尋址 指令中給出的地址碼即為操作數(shù)的有效地址,稱為直接尋址方式。(2)寄存器間接尋址方式 這種尋址方式是在指令中給出寄存器,寄存器中的內(nèi)容為操作數(shù)的有效地址。第8頁/共62頁9第第3章章尋址方式與指令系統(tǒng)尋

7、址方式與指令系統(tǒng)(3)寄存器相對尋址方式 這種尋址方式是在指令中給定一個基址寄存器(或變址寄存器)和一個8位或16位的相對偏移量,兩者之和作為操作數(shù)的有效地址。(4)基址變址尋址 這種方式是在指令中給出一個基址寄存器和一個變址寄存器,兩者內(nèi)容之和作為操作數(shù)的有效地址。過程分析(5)相對基址變址尋址 這種尋址方式是在指令中給出一個基址寄存器、一個變址寄存器和8位或16位的偏移量,三者之和作為操作數(shù)的有效地址。第9頁/共62頁10第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3-2-2 與I/O端口有關(guān)的尋址方式 8086CPU采用獨立編址的I/O端口,有專門的輸入指令I(lǐng)N和輸出指令OUT,尋址

8、方式有如下兩種: 1. 直接端口尋址 直接端口尋址是在指令中直接給出要訪問的端口地址,一般采用2位十六進制數(shù)表示,也可以用符號表示,可訪問的端口范圍為0255。 例如:IN AL,25H 表示從I/O端口地址為25H的端口中取數(shù)據(jù)送到寄存器AL中。第10頁/共62頁11第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 2. 寄存器間接端口尋址 若訪問的端口地址值大于255,則必須用I/O端口的間接尋址方式。它是把I/O端口的地址先送到DX中,用DX作為間接尋址寄存器。此種方式可訪問的端口范圍為065535。 例如: MOV DX,285H ;將端口地址285H送到DX寄存器 OUT DX,AL

9、;將AL中的內(nèi)容輸出到DX指定的端口 第11頁/共62頁12第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 8086指令系統(tǒng)按功能可以分為以下6類指令:數(shù)據(jù)傳送類指令算術(shù)運算類指令邏輯運算(位操作)類指令串操作類指令控制轉(zhuǎn)移類指令處理器控制類指令3-3 8086指令系統(tǒng)第12頁/共62頁13第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)3-3-1 數(shù)據(jù)傳送類指令 數(shù)據(jù)傳送類指令是計算機中最基本、最重要也是最常用的一種指令,其功能是把數(shù)據(jù)、地址或立即數(shù)傳送到寄存器或存儲單元。 此類指令除了SAHF和POPF外均不影響標志寄存器的內(nèi)容。 按照傳送的內(nèi)容和功能的不同,可將數(shù)據(jù)傳送指令分為3組,見表3

10、-1所示。其中dst表示目的操作數(shù),src表示源操作數(shù)。第13頁/共62頁14表3-1 數(shù)據(jù)傳送指令指令類型指令類型指令格式指令格式指令功能指令功能通用數(shù)據(jù)傳送MOV dst,src字節(jié)或字傳送PUSH src字壓入堆棧POP dst字彈出堆棧XCHG dst,src字節(jié)或字交換XLAT換碼指令地址傳送LEA dst,src裝入有效地址LDS dst,src裝入DS寄存器LES dst,src裝入ES寄存器標志位傳送LAHF將FLAG低字節(jié)裝入AH寄存器SAHF將AH內(nèi)容裝入FLAG低字節(jié)PUSHF將FLAG內(nèi)容壓棧POPF從堆棧中彈出一個字給FLAG第14頁/共62頁15第第3章章尋址方式與

11、指令系統(tǒng)尋址方式與指令系統(tǒng) 1. 1. 通用數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送指令(1)傳送指令MOV格式:MOV dst,srcMOV 指令的功能是把源操作數(shù)src傳送至目的操作數(shù)dst,執(zhí)行后源操作數(shù)內(nèi)容不變, 目的操作數(shù)內(nèi)容與源操作數(shù)內(nèi)容相同。 源操作數(shù)可以是通用寄存器、段寄存器、存儲器以及立即數(shù),目標操作數(shù)可以是通用寄存器、段寄存器(CS除外)或存儲器。 第15頁/共62頁16通用寄存器(AX、BX、CX、DX、SI、DI、BP、SP)存儲器立即數(shù)段寄存器(CS、DS、SS、ES) 數(shù)據(jù)之間的傳送關(guān)系如圖3-3所示。 圖3-3 MOV指令中各類數(shù)據(jù)的傳送關(guān)系 第16頁/共62頁17第第3章章尋址

12、方式與指令系統(tǒng)尋址方式與指令系統(tǒng)使用MOV指令進行數(shù)據(jù)傳送時要注意以下幾點: (1) 段寄存器CS及立即數(shù)不能作為目標操作數(shù); (2) 兩個存儲單元之間不允許直接傳送數(shù)據(jù); (3)立即數(shù)不能直接傳送到段寄存器; (4)兩個段寄存器之間不能直接傳送數(shù)據(jù); (5)傳送數(shù)據(jù)的類型必須匹配; (6)MOV指令不影響標志位。 第17頁/共62頁18 【例3.6】MOV指令的應(yīng)用形式分析如下:MOV AL,35H ;8位立即數(shù)35H送ALMOV DX,1234H;16位立即數(shù)1234H送DXMOV DL,B;字符B的ASCII碼送DLMOV CL,BL ;8位寄存器之間傳送MOV AX,BX;16位寄存器

13、之間傳送MOV AX,2100H ;存儲單元數(shù)據(jù)送AXMOV 0210H,SI ;SI中內(nèi)容送指定存儲單元MOV DS,AX;AX中內(nèi)容送段寄存器DSMOV SI,DS;DS的內(nèi)容送SI所指示單元MOV ES,BX;BX所指的存儲單元內(nèi)容送ES第18頁/共62頁19第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) (2)堆棧操作指令PUSH/POP進棧指令:PUSH opr ;SPSP2,將源操作 數(shù)opr壓入堆棧出棧指令:POP opr ;棧頂彈出字數(shù)據(jù)到目標 操作數(shù)opr,SPSP+2 堆棧是存儲器中的一個特殊區(qū)域,主要用于存入和取出數(shù)據(jù),堆棧是以“先進后出”的方式進行數(shù)據(jù)操作的。在8086

14、的堆棧組織中,堆棧從高地址向低地址方向生長,它只有一個出入口,堆棧指針寄存器SP始終指向堆棧的棧頂單元 第19頁/共62頁20第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) (3)XCHG 交換指令 XCHG指令用來將源操作數(shù)和目的操作數(shù)的內(nèi)容進行交換。它可以實現(xiàn)字節(jié)數(shù)據(jù)交換,也可以實現(xiàn)字數(shù)據(jù)交換。 該指令的操作數(shù)必須有一個是在寄存器中,即可以在兩個通用寄存器之間或寄存器與存儲器之間交換數(shù)據(jù),但不能在兩個存儲器之間交換數(shù)據(jù)。指令執(zhí)行結(jié)果不影響標志位。 第20頁/共62頁21第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 2. 2. 累加器專用傳送指令累加器專用傳送指令 8086指令系統(tǒng)中將累加

15、器AX作為數(shù)據(jù)傳輸?shù)暮诵模到y(tǒng)的輸入/輸出指令I(lǐng)N/OUT和換碼指令XLAT就是專門通過累加器來執(zhí)行的,稱之為累加器專用傳送指令。(1)IN/ OUT 輸入/輸出指令 IN Acc,src ;Acc為8位或16位累加器。 OUT dst,Acc (2)XLAT換碼指令 指令格式為:XLAT ;執(zhí)行操作AL(BX+AL)第21頁/共62頁22第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3. 3. 地址傳送指令地址傳送指令 8086的地址傳送指令用于控制尋址,可將存儲器操作數(shù)的地址傳送到16位目標寄存器中。這類指令有3種形式:(1)有效地址送寄存器指令:LEA reg,src LEA指令功能是

16、將存儲器操作數(shù)src的有效地址傳送到16位的通用寄存器reg。(2)地址指針送寄存器和DS指令:LDS reg,src 該指令完成一個32位的地址指針傳送,地址指針包括段地址和偏移地址兩部分。(3)地址指針送寄存器和ES指令:LES reg,src LES指令執(zhí)行的操作與LDS指令相似,不同之處是以ES代替DS。第22頁/共62頁23第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 4. 4. 標志寄存器傳送指令標志寄存器傳送指令 8086可通過這類指令讀出當(dāng)前標志寄存器中各標志位的內(nèi)容,也可以重新設(shè)置各標志位的值。標志寄存器的傳送指令共有4條,均位單字節(jié)指令,指令的操作數(shù)以隱含形式出現(xiàn),隱含為

17、AH寄存器。(1)取標志指令LAHF(2)置標志位指令SAHF(3)標志寄存器入棧指令PUSHF(4)標志寄存器出棧指令POPF 第23頁/共62頁24第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3-3-2 算術(shù)運算類指令算術(shù)運算類指令 8086的算術(shù)運算類指令包括加、減、乘、除4種基本運算指令,以及為進行BCD碼十進制數(shù)運算而設(shè)置的各種較正指令。 8086的基本算術(shù)運算指令中,除加1和減1指令外,其余均為雙操作數(shù)指令,兩個操作數(shù)中除了源操作數(shù)可為立即數(shù)外,必須有一個操作數(shù)在寄存器中,而單操作數(shù)指令則不允許采用立即數(shù)方式。 第24頁/共62頁25第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系

18、統(tǒng) 算術(shù)運算指令涉及無符號數(shù)和帶符號數(shù)兩種類型的數(shù)據(jù)。加減運算采取同一套指令,乘除運算有各自不同的指令。 加減法運算在執(zhí)行過程中有可能產(chǎn)生溢出,對于無符號數(shù),如果加法運算最高位向前產(chǎn)生進位,減法運算最高位向前有借位,則表示出現(xiàn)溢出,用CF標志位可檢測無符號數(shù)是否溢出;對于帶符號數(shù),采用補碼運算,符號位參加運算,溢出則表示運算結(jié)果發(fā)生錯誤,用OF標志位可檢測帶符號數(shù)是否溢出。第25頁/共62頁26第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 算術(shù)運算指令會影響標志位,其規(guī)則如下:運算結(jié)果向前產(chǎn)生進位或借位時,CF=1;最高位向前進位和次高位向前進位不同時,OF=1;若運算結(jié)果為0,ZF=1;若

19、運算結(jié)果最高位為1,SF=1;若運算結(jié)果中有偶數(shù)個1,PF=1。第26頁/共62頁27第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 1加、減法指令及其應(yīng)用【例3.12】分析給定加、減法指令的格式及操作功能ADD AL,BL;兩個寄存器字節(jié)數(shù)據(jù)相加ADD AL,0210H;內(nèi)存單元與寄存器字節(jié)數(shù)據(jù)相加ADD SI,AX;寄存器與內(nèi)存單元字數(shù)據(jù)相加INC AL;執(zhí)行(AL)(AL)+1INC CX;執(zhí)行(CX)(CX)+1SUB AX,BX;執(zhí)行(AX)(AX)-(BX)SBB DX,CX;執(zhí)行(DX)(DX)-(CX)-CFDEC CX;執(zhí)行(CX)(CX)-1第27頁/共62頁28第第3章章

20、尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)使用注意事項:(1)ADD指令中,兩個存儲器操作數(shù)不能直接相加,段寄存器不能參加運算。要注意兩個操作數(shù)的類型保持一致。(2)INC指令的操作對象只能為通用寄存器或存儲器操作數(shù),不能為立即數(shù),也不能是段寄存器,該指令常用在循環(huán)程序中修改指令或用作循環(huán)計數(shù)器。(3)NEG求補指令將操作對象中的內(nèi)容取2的補碼,相當(dāng)于將操作對象中的內(nèi)容按位取反后,末位加1。(4)CMP比較指令與SUB指令一樣執(zhí)行減法操作,但該指令不保存結(jié)果,即指令執(zhí)行后,兩個操作數(shù)的內(nèi)容不會改變。這條指令是根據(jù)操作的結(jié)果設(shè)置狀態(tài)標志位,按比較結(jié)果使程序產(chǎn)生條件轉(zhuǎn)移。第28頁/共62頁29第第3章章

21、尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)2. 乘、除法指令及其應(yīng)用 (1) 乘法指令包括無符號數(shù)和帶符號數(shù)相乘的指令,指令中只給出乘數(shù),被乘數(shù)隱含給出。 兩個8位數(shù)相乘時被乘數(shù)放入AL中,16位數(shù)的乘積存放到AX中;兩個16位數(shù)相乘時被乘數(shù)先放入AX寄存器中,32位數(shù)的乘積放到DX和AX兩個寄存器中,規(guī)定DX中存放高16位,AX中存放低16位。第29頁/共62頁30第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)(2)8086CPU執(zhí)行除法時規(guī)定: 除數(shù)長度只能是被除數(shù)長度的一半。當(dāng)被除數(shù)為16位時,除數(shù)應(yīng)為8位;當(dāng)被除數(shù)為32位時,除數(shù)應(yīng)為16位。 DIV無符號數(shù)除法指令的被除數(shù)、除數(shù)、商和余數(shù)全

22、部為無符號數(shù);IDIV帶符號數(shù)除法指令的被除數(shù)、除數(shù)、商和余數(shù)均為帶符號數(shù),且余數(shù)的符號位與被除數(shù)相同。第30頁/共62頁31第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) (3)符號擴展指令是指用一個操作數(shù)的符號位形成另一個操作數(shù),后一個操作數(shù)的各位是全0(正數(shù))或全1(負數(shù)),其結(jié)果是使數(shù)據(jù)位數(shù)加長,但數(shù)據(jù)大小并沒有改變。符號擴展指令的執(zhí)行不影響標志位。 CBW字節(jié)轉(zhuǎn)換為字指令: 將AL中的符號位擴展到AH中。若AL中的D7=0,則(AH)=00H;若AL中的D7=1,則(AH)=FFH。 CWD字轉(zhuǎn)換為雙字指令: 將AX中的符號位擴展到DX中。若AX中的D15=0,則(DX)=0000H

23、,若AX中的D15=1,則(DX)=FFFFH。第31頁/共62頁32第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 6. 6. 十進制調(diào)整指令十進制調(diào)整指令 十進制數(shù)在計算機中是采用二進制數(shù)來表示的,這就是BCD碼,要對十進制的BCD碼進行算術(shù)運算,必須對得到的結(jié)果進行調(diào)整,否則結(jié)果無意義。 8086指令系統(tǒng)提供了以下兩類十進制調(diào)整指令。(1)組合BCD碼加法、減法調(diào)整指令 DAA ;組合BCD碼加法調(diào)整指令,將AL中的和調(diào)整 為組合BCD碼 DAS ;組合BCD碼減法調(diào)整指令,將AL中的差調(diào)整 為組合BCD碼第32頁/共62頁33第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) (2)非組合

24、BCD加法、減法調(diào)整指令A(yù)AA ;非組合BCD加法調(diào)整指令,將AL中的和調(diào)整為非組合 BCD碼AAS ;非組合BCD減法調(diào)整指令,將AL中的差調(diào)整為非組合 BCD碼 AAA和AAS分別用于加法指令(ADD、ADC)或減法指令(SUB、SBB)之后,執(zhí)行時對AL進行測試,若AL中的低四位09H,或AF1,則進行AL(AL)06H修正;AL的高4位為0,同時AH(AH)1;CFAF1。調(diào)整后的結(jié)果放在AX中 第33頁/共62頁34第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)3-3-3 邏輯運算與移位類指令1. 邏輯運算指令及其應(yīng)用 輯運算指令可對8位或16位數(shù)進行邏輯運算,并且是按位進行操作的。

25、 有以下5條邏輯運算指令:(1)邏輯與指令:AND dst,src(2)邏輯或指令:OR dst,src(3)邏輯異或指令:XOR dst,src(4)邏輯非指令:NOT dst(5)測試指令:TEST dst,src 第34頁/共62頁35第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 2. 移位指令及其應(yīng)用 移位操作類指令可以對字節(jié)或字中的各位數(shù)據(jù)進行算術(shù)移位、邏輯移位或循環(huán)移位。 圖 3- 5為各種移位操作的功能示意。第35頁/共62頁36CFM 算術(shù)右移SARCFM 邏輯右移SHR0CFM 算術(shù)左移SAL0CFM 邏輯左移SHL0CF 帶進位循環(huán)右移RCRCF 帶進位循環(huán)左移RCLCF

26、 循環(huán)右移RORCF 循環(huán)左移ROL (注:CF為進位位、M為符號位)圖3-5 移位指令的操作功能示意 第36頁/共62頁37第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3-3-4 串操作類指令 數(shù)據(jù)串是存儲器中的一串字節(jié)或字的數(shù)據(jù)序列。8086指令系統(tǒng)中設(shè)置了串操作指令,其操作對象是內(nèi)存中地址連續(xù)的字節(jié)串或字串。在每次操作后能夠自動修改地址指針,為下一次操作作準備。 基本串操作指令有串傳送(MOVS)、串比較(CMPS)、串掃描(SCAS)、串存?。↙ODS、 STOS)等。任何一個基本串操作指令的前面都可以加一個重復(fù)操作前綴,使指令操作重復(fù),這樣在處理長數(shù)據(jù)串時要比用循環(huán)程序速度快得多

27、。 第37頁/共62頁38第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3-3-5 控制轉(zhuǎn)移類指令 一般情況下,程序是按指令順序地逐條執(zhí)行的,但實際上經(jīng)常需要改變程序的執(zhí)行流程??刂妻D(zhuǎn)移類指令用來改變程序執(zhí)行的方向,即修改IP和CS的值。 按轉(zhuǎn)移位置可將轉(zhuǎn)移指令分為段內(nèi)轉(zhuǎn)移和段間轉(zhuǎn)移。若指令給出改變IP中內(nèi)容的信息,轉(zhuǎn)移的目標位置和轉(zhuǎn)移指令在同一個代碼段,則稱為段內(nèi)轉(zhuǎn)移;如指令給出改變IP中內(nèi)容的信息,又給出改變CS中內(nèi)容的信息,轉(zhuǎn)移的目標位置和轉(zhuǎn)移指令不在同一個代碼段,則稱為段間轉(zhuǎn)移。 根據(jù)轉(zhuǎn)移指令的功能,可分為無條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指令、循環(huán)控制指令、子程序調(diào)用和返回指令等。 第38頁

28、/共62頁39第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 1. 1. 無條件轉(zhuǎn)移指令無條件轉(zhuǎn)移指令 無條件轉(zhuǎn)移指令JMP用來控制程序轉(zhuǎn)移到指定的位置去執(zhí)行,指令中要給出轉(zhuǎn)移位置的目標地址,通常有以下5種形式:JMP SHORT opr ;段內(nèi)直接短轉(zhuǎn)移JMP NEAR PTR opr ;段內(nèi)直接近轉(zhuǎn)移JMP WORD PTR opr ;段內(nèi)間接轉(zhuǎn)移JMP FAR PTR opr ;段間直接轉(zhuǎn)移JMP DWORD PTR opr ;段間間接轉(zhuǎn)移第39頁/共62頁40第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 2. 2. 條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令 條件轉(zhuǎn)移指令是根據(jù)上一條指令所設(shè)置的條件碼

29、來測試,被測試的內(nèi)容為狀態(tài)標志位。滿足測試條件則轉(zhuǎn)移到指令中指定的位置去執(zhí)行,如果不滿足條件則順序執(zhí)行下一條指令。 條件轉(zhuǎn)移指令根據(jù)判斷的標志位不同,通??梢詺w納為3類:即判斷單個標志位狀態(tài)、比較無符號數(shù)高低和比較帶符號數(shù)大小。這3類指令在使用之前,應(yīng)該有比較CMP、測試TEST、加減或邏輯運算等指令。條件轉(zhuǎn)移指令如表3-4所示。 第40頁/共62頁41 表3-4 條件轉(zhuǎn)移指令指令助記符指令名稱轉(zhuǎn)移條件指令助記符指令名稱轉(zhuǎn)移條件JZ/JE為0/相等ZF1JC/JB/JNAE進位/低于/不高于等于CF=1JNZ/JNE不為0/不相等ZF0JNC/JNB/JAE無進位/不低于/高于等于CF=0JS

30、符號為負SF1JBE/JNA低于等于/不高于CF=1或ZF=1JNS符號不為負SF0JNBE/JA不低于等于/高于CF=0且ZF=0JO結(jié)果溢出OF1JL/JNGE小于/不大于等于SFOFJNO結(jié)果無溢出OF0JNL/JGE不小于/大于等于SF=OFJP/JPE“1”的個數(shù)為偶PF1JLE/JNG小于等于/不大于ZF0 或ZF=1JNP/JPO“1”的個數(shù)為奇PF0JNLE/JG不小于等于/大于SF=O且ZF=0第41頁/共62頁42第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3. 3. 循環(huán)控制指令循環(huán)控制指令 循環(huán)程序是一種常用的程序結(jié)構(gòu),為了加快對循環(huán)程序的控制,8086系統(tǒng)專門設(shè)置

31、了一組循環(huán)控制指令,見表3-5所示,循環(huán)計數(shù)值在CX中。指令名稱助記符測試條件循環(huán)LOOP目標標號CXCX-1, CX0等于/結(jié)果為0循環(huán)LOOPE/LOOPZ目標標號CXCX-1,ZF=1且CX0不等于/結(jié)果不為0循環(huán)LOOPNE/LOOPNZ目標標號CXCX-1,ZF=0且CX0CX內(nèi)容為0轉(zhuǎn)移JCXZ目標標號CX=0 表3-5 循環(huán)控制指令 第42頁/共62頁43第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 4. 4. 子程序調(diào)用和返回指令(1)子程序調(diào)用指令 指令格式為:CALL NEAR PTR opr ;段內(nèi)調(diào)用 CALL FAR PTR opr ;段間調(diào)用(2)子程序返回指令R

32、ET 指令格式: RET 或 RET 表達式 第43頁/共62頁44第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)3-3-6 處理器控制類指令 這類指令主要用于修改狀態(tài)標志位、控制CPU的功能如使CPU暫停、等待、空操作等。如表3-6所示。 第44頁/共62頁45類別類別操作碼(助記符)操作碼(助記符)名稱名稱標志操作STC進位標志置1,即CF=1CLC進位標志置0,即CF=0CMC進位標志取反STD方向標志置1,即DF=1CLD方向標志置0,即DF=0STI中斷標志置1,即IF=1CLI清除中斷標志,即IF=0CPU控制HLT停機WAIT等待ESC交權(quán)LOCK封鎖總線NOP空操作 表3-6處

33、理器控制指令第45頁/共62頁46尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)第第3章章3-4-1 DOS功能調(diào)用 DOS功能調(diào)用可完成對文件、設(shè)備、內(nèi)存的管理。對用戶來說,這些功能模塊就是幾十個獨立的中斷服務(wù)程序,這些程序的入口地址已由系統(tǒng)置入中斷向量表中,在匯編語言程序中可用中斷指令直接調(diào)用。3-4 DOS和BIOS中斷調(diào)用第46頁/共62頁47尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)第第3章章 1. 系統(tǒng)功能調(diào)用的方法要完成DOS系統(tǒng)的功能調(diào)用,按如下基本步驟操作:(1)將入口參數(shù)送到指定寄存器中;(2)子程序功能號送入AH寄存器中;(3)使用INT21H指令轉(zhuǎn)入子程序入口執(zhí)行相應(yīng)操作。 2. 常用

34、的幾種系統(tǒng)功能調(diào)用(1)AH=01H;帶顯示的鍵盤輸入(2)AH=02H;從顯示器上輸出單個字符(3)AH=09H;在顯示器上輸出字符串(4)AH=0AH;字符串輸入到緩沖區(qū)第47頁/共62頁48尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)第第3章章 3-4-2 BIOS中斷調(diào)用 IBM PC系列微機在只讀存儲器中提供了BIOS基本輸入輸出系統(tǒng),它占用系統(tǒng)板上8kB的ROM區(qū),又稱為ROM BIOS。 BIOS為用戶程序和系統(tǒng)程序提供主要外設(shè)的控制功能,如系統(tǒng)加電自檢、引導(dǎo)裝入及對鍵盤、磁盤、磁帶、顯示器、打印機、異步串行通信口等的控制。計算機系統(tǒng)軟件就是利用這些基本的設(shè)備驅(qū)動程序,完成各種功能操作。

35、每個功能模塊的入口地址都在中斷矢量表中,通過中斷指令I(lǐng)NT n可以直接調(diào)用。n是中斷類型號,每個類型號n對應(yīng)一種I/O設(shè)備的中斷調(diào)用,每個中斷調(diào)用又以功能號來區(qū)分其控制功能。 第48頁/共62頁49第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)3-5-1 Pentium微處理器的內(nèi)部寄存器 由于Pentium微處理器采用了32位指令,其內(nèi)部寄存器和指令格式與16位微處理器存在不同,主要有以下幾方面:(1)指令的操作數(shù)可以是8位、16位或32位的二進制數(shù)。(2)根據(jù)指令的不同,操作數(shù)字段可以是03個。(3)在部分不存放結(jié)果的單操作數(shù)指令中,可以采用立即數(shù)作為操作數(shù)。3-5 Pentium微處理器

36、新增尋址方式和指令第49頁/共62頁50第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)(4)立即數(shù)尋址方式中操作數(shù)可以是32位的立即數(shù),寄存器尋址方式中操作數(shù)可以是32位通用寄存器,存儲器操作數(shù)尋址方式既可采用16位的地址尋址方式也可采用32位的擴展地址尋址方式。(5)16位微處理器原有的4個通用數(shù)據(jù)寄存器擴展為32位,更名為EAX、EBX、ECX和EDX。(6)原有的4個用于內(nèi)存尋址的通用地址寄存器擴展為32位,更名為ESI、EDI、EBP、ESP。第50頁/共62頁51第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)(7)指令指針寄存器擴展為32位,更名為EIP,實地址方式下仍然可以使用它的

37、低16位IP。(8)在原有4個段寄存器基礎(chǔ)上增加2個新的段寄存器FS和GS,段寄存器長度仍然為16位,是代表這個段編號的13位二進制數(shù),稱為“段選擇字”。(9)增加了4個系統(tǒng)地址寄存器,分別是存放“全局段描述符表”首地址的GDTR,存放“局部段描述符表”選擇字的LDTR,存放“中斷描述符表”首地址的IDTR,存放“任務(wù)段”選擇字的“任務(wù)寄存器”TR。第51頁/共62頁52第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)(10)標志寄存器擴展為32位,更名為EFLAGS,除了原有的狀態(tài)、控制標志外,還增加了表示IO操作特權(quán)級別的IOPL,表示進入虛擬8086方式的VM標志等。(11)新增5個32位

38、的控制寄存器,命名為CR0CR4,CR0寄存器的PE=1表示目前系統(tǒng)運行在“保護模式”,PG=1表示允許進行分頁操作。CR3寄存器存放“頁目錄表”的基地址。(12)新增8個用于調(diào)試的寄存器DR0DR7,2個用于測試的寄存器TR6TR7。第52頁/共62頁53第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)3-5-2 Pentium微處理器的新增尋址方式 1比例變址尋址方式 其有效地址為: EA=變址寄存器比例因子+位移量該方式下的EA是變址寄存器的內(nèi)容乘以指令中指定的比例因子再加上位移量之和,乘比例因子的操作是在CPU內(nèi)部由硬件完成的。 這種尋址方式與寄存器相對尋址相比增加了比例因子,其優(yōu)點在于

39、:對于元素大小為2、4、8字節(jié)的數(shù)組,可以在變址寄存器中給出數(shù)組元素下標,而由尋址方式控制直接用比例因子把下標轉(zhuǎn)換為變址值。 例如:MOV EAX,COUNTESI4 第53頁/共62頁54第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 2基址加比例變址尋址方式 其有效地址為:EA=基址寄存器+變址寄存器比例因子 該方式下EA是變址寄存器的內(nèi)容乘以比例因子再加上基址寄存器的內(nèi)容之和,這種尋址方式與基址變址尋址方式相比增加了比例因子。 例如:MOV ECX,EAXEDX8 第54頁/共62頁55第第3章章尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)3帶位移量的基址加比例變址尋址方式 其有效地址為:EA=基址寄存器+變址寄存器比例因子+位移量 操作

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論