




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 教學(xué)目標(biāo)教學(xué)目標(biāo)介紹介紹8048680486的尋址方式及指令系統(tǒng)。的尋址方式及指令系統(tǒng)。 學(xué)習(xí)要求學(xué)習(xí)要求 通過本章的學(xué)習(xí),要求熟悉各種尋址方式的使用通過本章的學(xué)習(xí),要求熟悉各種尋址方式的使用場合以及常用指令的使用方法。場合以及常用指令的使用方法。 講授內(nèi)容講授內(nèi)容第三章第三章 8048680486微處理器指令系統(tǒng)微處理器指令系統(tǒng) 第三章第三章 8048680486微處理器指令系統(tǒng)微處理器指令系統(tǒng) 第一節(jié)第一節(jié)8048680486微處理器尋址方式微處理器尋址方式第二節(jié)第二節(jié) 8048680486微處理器指令系統(tǒng)微處理器指令系統(tǒng) 指令指令命令命令二進(jìn)制代碼形式的二進(jìn)制代碼形式的 指令是規(guī)定計(jì)算
2、機(jī)進(jìn)行某種操作的指令是規(guī)定計(jì)算機(jī)進(jìn)行某種操作的 指令中應(yīng)包含三方面的信息指令中應(yīng)包含三方面的信息: :執(zhí)行什么操作執(zhí)行什么操作操作數(shù)的位置操作數(shù)的位置結(jié)果存放的位置結(jié)果存放的位置 指令的一般格式指令的一般格式操作碼操作碼操作數(shù)地址操作數(shù)地址1 1操作數(shù)地址操作數(shù)地址2 2結(jié)果存放地址結(jié)果存放地址而而尋找操作數(shù)所在地址尋找操作數(shù)所在地址的方法即為的方法即為尋址方式尋址方式(Addressing Mode)(Addressing Mode)。第一節(jié)第一節(jié)8048680486微處理器的尋址方式微處理器的尋址方式一、操作數(shù)尋址方式一、操作數(shù)尋址方式 80X86 80X86的尋址方式可分為兩類:的尋址方
3、式可分為兩類:操作數(shù)的尋址方式操作數(shù)的尋址方式和和轉(zhuǎn)移地址的轉(zhuǎn)移地址的尋址方式。尋址方式。 由于由于操作數(shù)操作數(shù)作為指令的操作對象,作為指令的操作對象,可以存儲(chǔ)在存儲(chǔ)器中可以存儲(chǔ)在存儲(chǔ)器中(稱為存儲(chǔ)(稱為存儲(chǔ)器操作數(shù))、器操作數(shù))、寄存在寄存器中寄存在寄存器中(稱為寄存器操作數(shù))或(稱為寄存器操作數(shù))或直接包含在指令直接包含在指令中中(稱為立即數(shù)),因此,與之對應(yīng)有多種尋址方式。(稱為立即數(shù)),因此,與之對應(yīng)有多種尋址方式。80X8680X86粗略地劃粗略地劃分可有分可有3 3類類1010種尋址方式種尋址方式,其中訪問存儲(chǔ)器操作數(shù)有,其中訪問存儲(chǔ)器操作數(shù)有8 8種尋址方式。種尋址方式。 (1
4、1)立即數(shù)尋址)立即數(shù)尋址 在這種尋址的方式下,操作數(shù)作為立即數(shù)直接存在指令中,可為在這種尋址的方式下,操作數(shù)作為立即數(shù)直接存在指令中,可為8 8位,位,1616位和位和3232位。位。例:例: MOV AXMOV AX,1234H1234H MOV BLMOV BL,78H78H MOV ECX MOV ECX,12345678H12345678H 以第一條指令為例的立即以第一條指令為例的立即數(shù)尋址方式的執(zhí)行過程如圖。數(shù)尋址方式的執(zhí)行過程如圖。 立即尋址示意圖立即尋址示意圖(2 2)寄存器尋址)寄存器尋址在這種方式下,操作數(shù)存放在在這種方式下,操作數(shù)存放在CPUCPU某個(gè)某個(gè)8 8位、位、1
5、616位或位或32 32 位寄存器中。位寄存器中。 例:例: MOV EAXMOV EAX,EDXEDX MOV DS MOV DS,AXAX該尋址方式指令碼短,且無需從存儲(chǔ)該尋址方式指令碼短,且無需從存儲(chǔ)器取操作數(shù),故執(zhí)行速度快器取操作數(shù),故執(zhí)行速度快(3 3)直接尋址)直接尋址 在這種方式下,指令中的操作在這種方式下,指令中的操作數(shù)部分直接給出了操作數(shù)的有效地?cái)?shù)部分直接給出了操作數(shù)的有效地址址EAEA,它和操作碼一起放在存儲(chǔ)器,它和操作碼一起放在存儲(chǔ)器的代碼段中,可以是的代碼段中,可以是1616位或位或3232位整位整數(shù)。但操作數(shù)一般在數(shù)據(jù)段數(shù)。但操作數(shù)一般在數(shù)據(jù)段DSDS中。中。例:例:
6、MOV AXMOV AX,DSDS:1000H1000H;將;將DSDS段中段中1000H1000H和和1001H1001H單元單元 的內(nèi)容送到的內(nèi)容送到AXAX中。中。設(shè)設(shè)DS=2000HDS=2000H應(yīng)注意的是,指令中的應(yīng)注意的是,指令中的DSDS不能省略。不能省略。 (4 4)寄存器間接尋址)寄存器間接尋址這種尋址方式下,操作數(shù)所在內(nèi)存單元的這種尋址方式下,操作數(shù)所在內(nèi)存單元的EAEA由規(guī)定的寄存器指出。由規(guī)定的寄存器指出。 如果操作數(shù)不在上述規(guī)定的默認(rèn)段,而是在其他的段,則必如果操作數(shù)不在上述規(guī)定的默認(rèn)段,而是在其他的段,則必須在指令中相應(yīng)的操作數(shù)前加上段超越前綴。例如:須在指令中相
7、應(yīng)的操作數(shù)前加上段超越前綴。例如:MOV AXMOV AX,ESES:SISIMOV AXMOV AX,DSDS:BPBP1616位尋址時(shí),位尋址時(shí),EAEA可以由可以由SISI,DIDI,BPBP或或BXBX提供。提供。( (其中其中BXBX、BPBP也稱也稱基基址寄存器,址寄存器,SISI、DIDI稱變址寄存器)稱變址寄存器) 若以若以SISI,DIDI,BXBX間接尋址,則默認(rèn)操作數(shù)在間接尋址,則默認(rèn)操作數(shù)在DSDS段中。段中。若以若以BPBP間接間接尋址,則默認(rèn)操作數(shù)在尋址,則默認(rèn)操作數(shù)在SSSS段中段中 32 32位尋址時(shí),位尋址時(shí),8 8個(gè)個(gè)3232位通用寄存器除位通用寄存器除ES
8、PESP外均可作間址寄存器。外均可作間址寄存器。除除EBPEBP默認(rèn)段寄存器為默認(rèn)段寄存器為SSSS外,其余外,其余6 6個(gè)通用寄存器均默認(rèn)段寄存器為個(gè)通用寄存器均默認(rèn)段寄存器為DSDS。MOV SIMOV SI,1000H1000HMOV AXMOV AX,SISI(5 5)寄存器相對尋址方式)寄存器相對尋址方式 MOV EAXMOV EAX,BX+24 BX+24 ;也可以寫成;也可以寫成 MOV EAXMOV EAX,24BX24BXMOV DX MOV DX ,EAX+1500EAX+1500;也可以寫成;也可以寫成 MOV DXMOV DX,1500EAX1500EAXMOV DX
9、MOV DX ,BX+SIBX+SI(6 6)基址變址尋址方式)基址變址尋址方式 (7 7)相對基址變址尋址方式)相對基址變址尋址方式 MOV DX MOV DX ,BX+SI+24BX+SI+24(8 8)比例變址尋址方式)比例變址尋址方式 MOV DX MOV DX , 變址寄存器變址寄存器比例因子比例因子+ +位移量位移量 其中比例因子可以是其中比例因子可以是1 1,2 2,4 4,8 8中的任一個(gè)數(shù)。中的任一個(gè)數(shù)。3232位寄存器中,除位寄存器中,除ESPESP外的外的7 7個(gè)通用寄存器均可作基址和變址寄存器,且個(gè)通用寄存器均可作基址和變址寄存器,且EBPEBP默認(rèn)默認(rèn)SSSS作段寄存
10、器,其作段寄存器,其余以余以DSDS作段寄存器。作段寄存器。 (9 9)基址比例變址尋址方式)基址比例變址尋址方式 MOV DXMOV DX, 變址寄存器變址寄存器比例因子比例因子+ +基址寄存器基址寄存器 (1010)相對基址比例變址尋址方式)相對基址比例變址尋址方式 MOV DXMOV DX, 基址寄存器基址寄存器+ +比例因子比例因子變址寄存器變址寄存器+ +位移量位移量 凡是乘以比例因子的尋址方式均只適合于凡是乘以比例因子的尋址方式均只適合于3232位尋址的情況,位尋址的情況,即(即(8 8)()(9 9)()(1010)三種尋址方式僅適合)三種尋址方式僅適合3232位通用寄存器。位通
11、用寄存器。二、轉(zhuǎn)移地址尋址方式二、轉(zhuǎn)移地址尋址方式 在指令系統(tǒng)中,有一組指令為在指令系統(tǒng)中,有一組指令為程序轉(zhuǎn)移指令程序轉(zhuǎn)移指令。程序轉(zhuǎn)移指令的尋。程序轉(zhuǎn)移指令的尋址方式涉及如何址方式涉及如何確定轉(zhuǎn)移的目標(biāo)地址確定轉(zhuǎn)移的目標(biāo)地址。目標(biāo)地址可以在段內(nèi),也可以。目標(biāo)地址可以在段內(nèi),也可以在段外。在段外。 段內(nèi)間接尋址段內(nèi)間接尋址 該方式中,轉(zhuǎn)移的目標(biāo)地址是寄存器或存儲(chǔ)單元的內(nèi)容。寄存器或該方式中,轉(zhuǎn)移的目標(biāo)地址是寄存器或存儲(chǔ)單元的內(nèi)容。寄存器或存儲(chǔ)單元的內(nèi)容可以用數(shù)據(jù)尋址方式中除立即數(shù)以外的任何一種尋址方存儲(chǔ)單元的內(nèi)容可以用數(shù)據(jù)尋址方式中除立即數(shù)以外的任何一種尋址方式取得,所得到的內(nèi)容將用來取代式
12、取得,所得到的內(nèi)容將用來取代IPIP寄存器的值。寄存器的值。 段內(nèi)間接尋址轉(zhuǎn)移指令的匯編格式可以表示為:段內(nèi)間接尋址轉(zhuǎn)移指令的匯編格式可以表示為: JMP CXJMP CX JMP WORD PTR BXJMP WORD PTR BX 段內(nèi)直接尋址段內(nèi)直接尋址 轉(zhuǎn)移的目標(biāo)地址是當(dāng)前轉(zhuǎn)移的目標(biāo)地址是當(dāng)前IPIP寄存器寄存器的內(nèi)容和一個(gè)的內(nèi)容和一個(gè)8 8位或位或1616位位位移量之和位移量之和。 指令的匯編語言格式表示為:指令的匯編語言格式表示為: JMP (NEAR PTR) PROGRMJMP (NEAR PTR) PROGRM JMP (SHORT) OUTSET JMP (SHORT) O
13、UTSET 段間直接尋址段間直接尋址 這種尋址方式用于段間轉(zhuǎn)移,指令中直接這種尋址方式用于段間轉(zhuǎn)移,指令中直接提供了目標(biāo)地址提供了目標(biāo)地址的的段基址段基址和和偏移地址偏移地址,所以,所以, ,只要用只要用指令中指令中指定的指定的偏移地址取代偏移地址取代IPIP寄存器寄存器的內(nèi)容,的內(nèi)容,用用指令中指令中指定的指定的段基址取代段基址取代CSCS寄存器寄存器的內(nèi)容就完成了從一個(gè)段到另一個(gè)的內(nèi)容就完成了從一個(gè)段到另一個(gè)段的轉(zhuǎn)移操作。段的轉(zhuǎn)移操作。 指令的匯編語言格式可表示為:指令的匯編語言格式可表示為: JMP FAR PTR NEXTJMP FAR PTR NEXT 段間間接尋址段間間接尋址 該方
14、式下,用存儲(chǔ)器中該方式下,用存儲(chǔ)器中兩個(gè)相繼字的內(nèi)容兩個(gè)相繼字的內(nèi)容來來取代取代IPIP和和CSCS寄存器寄存器中的中的原始原始內(nèi)容,以達(dá)到內(nèi)容,以達(dá)到段間轉(zhuǎn)移段間轉(zhuǎn)移的目的。這里,存儲(chǔ)單元的地址是由指令指的目的。這里,存儲(chǔ)單元的地址是由指令指定除立即數(shù)方式和寄存器方式以外的任何一種數(shù)據(jù)尋址方式取得。定除立即數(shù)方式和寄存器方式以外的任何一種數(shù)據(jù)尋址方式取得。 指令的匯編語言格式可表示為:指令的匯編語言格式可表示為: JMP DWORD PTR BXJMP DWORD PTR BX第二節(jié)第二節(jié) 8048680486微處理器指令系統(tǒng)微處理器指令系統(tǒng) 80X86 80X86的指令系統(tǒng)向上兼容,都是在
15、的指令系統(tǒng)向上兼容,都是在80868086指令的基礎(chǔ)上發(fā)展形指令的基礎(chǔ)上發(fā)展形成的。與成的。與8028680286相比,增加了相比,增加了3232位操作和訪問存儲(chǔ)器的位操作和訪問存儲(chǔ)器的3232位尋址方位尋址方式。式。 8048680486可以工作在實(shí)模式、保護(hù)模式和虛擬可以工作在實(shí)模式、保護(hù)模式和虛擬8686模式,為了支持模式,為了支持系統(tǒng)工作模式,指令系統(tǒng)中設(shè)計(jì)了系統(tǒng)管理指令、保護(hù)模式控制指系統(tǒng)工作模式,指令系統(tǒng)中設(shè)計(jì)了系統(tǒng)管理指令、保護(hù)模式控制指令以及高級(jí)語言支持指令等等。令以及高級(jí)語言支持指令等等。 8048680486的基本指令的基本指令按功能可分為按功能可分為7 7類類:數(shù)據(jù)傳送指
16、令、算術(shù)運(yùn):數(shù)據(jù)傳送指令、算術(shù)運(yùn)算指令、邏輯運(yùn)算指令、字符串操作指令、控制轉(zhuǎn)移指令、處理器算指令、邏輯運(yùn)算指令、字符串操作指令、控制轉(zhuǎn)移指令、處理器控制指令和按條件設(shè)置字節(jié)指令。下面分別給予介紹??刂浦噶詈桶礂l件設(shè)置字節(jié)指令。下面分別給予介紹。 完成數(shù)據(jù)的傳送工作完成數(shù)據(jù)的傳送工作, ,不影響任何標(biāo)志不影響任何標(biāo)志基本傳送指令基本傳送指令 MOVMOV格式格式: :MOV OP1MOV OP1,OP2OP2目的操作數(shù)目的操作數(shù)源操作數(shù)源操作數(shù)功能功能: :OP1 OP2OP1 OP2可完成可完成: :注意:目的操作數(shù)不能是注意:目的操作數(shù)不能是CSCS!一一 、數(shù)據(jù)傳送指令、數(shù)據(jù)傳送指令1)通
17、用數(shù)據(jù)傳送指令:)通用數(shù)據(jù)傳送指令:通用寄存器通用寄存器 通用寄存器通用寄存器通用寄存器通用寄存器 存儲(chǔ)器存儲(chǔ)器通用寄存器通用寄存器 段寄存器段寄存器段寄存器段寄存器 存儲(chǔ)器存儲(chǔ)器通用寄存器通用寄存器 存儲(chǔ)器存儲(chǔ)器立即數(shù)立即數(shù)符號(hào)擴(kuò)展傳送指令符號(hào)擴(kuò)展傳送指令MOVSX格式:格式:MOVSX OP1MOVSX OP1,OP2OP2;OP1OP1為為1616位或位或3232位通用寄存器位通用寄存器OP2OP2為為8 8位或位或1616位通用寄存器或存儲(chǔ)器位通用寄存器或存儲(chǔ)器格式:格式:MOVZX OP1MOVZX OP1,OP2OP2;OP1OP1為為1616位或位或3232位通用寄存器位通用寄存
18、器OP2OP2為為8 8位或位或1616位通用寄存器或存儲(chǔ)器位通用寄存器或存儲(chǔ)器例如:例如: MOV DLMOV DL,-16 -16 ;DL = F0H DL = F0H MOVSX BXMOVSX BX,DL DL ;BX = FFF0HBX = FFF0H,而,而DHDH,DLDL不變不變零擴(kuò)展傳送指令零擴(kuò)展傳送指令MOVZX例如:例如:MOVZX EAXMOVZX EAX,CX CX ;將;將CXCX中中1616位數(shù)高位加位數(shù)高位加0 0擴(kuò)展為擴(kuò)展為3232位送入位送入EAXEAX MOVSXMOVSX和和MOVZXMOVZX這兩條指令常被用于作除法時(shí)對被除數(shù)位數(shù)的擴(kuò)展。這兩條指令常被
19、用于作除法時(shí)對被除數(shù)位數(shù)的擴(kuò)展。交換指令交換指令XCHG格式格式: :XCHG OP1XCHG OP1,OP2OP2功能功能: :OP1 OP2OP1 OP2可完成可完成: :例例: :XCHG AXXCHG AX,BXBX ;AX BXAX BX通用寄存器通用寄存器 通用寄存器通用寄存器通用寄存器通用寄存器 存儲(chǔ)器存儲(chǔ)器LEALEA傳送指令傳送指令功能功能: :將將OP1OP1所在位置的有效地址(偏移地址)送往所在位置的有效地址(偏移地址)送往 通用寄存器。通用寄存器。例:例: LEA BXLEA BX,SEGPTSEGPTMOV BXMOV BX,OFFSET SEGPTOFFSET SE
20、GPTLEA REGLEA REG,OP1OP1格式格式: :地址傳送指令地址傳送指令等價(jià)等價(jià)STRSTRDBDB10,20,30,40,5010,20,30,40,50RESRESDBDB10 DUP(0)10 DUP(0)MOVMOVAH,4CHAH,4CH ;設(shè)置功能號(hào);設(shè)置功能號(hào)INTINT21H21H; ;返回返回DOSDOSCODECODEENDSENDSENDENDSTARTSTARTDATADATASEGMENTSEGMENTDATADATAENDSENDSCODECODESEGMENTSEGMENTASSUMEASSUME CS:CODE,DS:DATA CS:CODE,DS
21、:DATASTART:START: MOVMOVAX,DATAAX,DATAMOVMOVDS,AXDS,AXLEALEASI,STRSI,STRLEALEADI,RESDI,RES;SI=0SI=0;DI=5DI=5* * 指針傳送指令指針傳送指令 LDSLDS、LESLES、LFSLFS、 LGSLGS、LSSLSS格式格式: :LDS REGLDS REG,OP1OP1功能功能: :將存儲(chǔ)單元中的內(nèi)容送至目的通用寄存器和將存儲(chǔ)單元中的內(nèi)容送至目的通用寄存器和DSDS(或(或ESES、FSFS、GSGS、SSSS)例:例: SEGPT DD 12345678HSEGPT DD 1234567
22、8H LDS SI LDS SI,SEGPTSEGPT則指令執(zhí)行后:則指令執(zhí)行后:DS=1234H SI=5678HDS=1234H SI=5678H又如:又如: TABLE DD 13572468HTABLE DD 13572468H LES BX LES BX,TABLETABLE則指令執(zhí)行后:則指令執(zhí)行后:ES=1357H BX=2468HES=1357H BX=2468H查表轉(zhuǎn)換指令查表轉(zhuǎn)換指令XLAT例:將例:將1616進(jìn)制數(shù)進(jìn)制數(shù) 0 0F F 轉(zhuǎn)換為與之對應(yīng)的轉(zhuǎn)換為與之對應(yīng)的ASCIIASCII碼碼格式格式: :XLATXLAT;將;將DS:BX+AL ALDS:BX+AL AL
23、使用使用XLATXLAT指令的條件指令的條件: : 在數(shù)據(jù)段中建一張表在數(shù)據(jù)段中建一張表 表首地址的偏移量送表首地址的偏移量送BXBX 待轉(zhuǎn)換數(shù)放入待轉(zhuǎn)換數(shù)放入ALAL中中ACTAB DB 0123456789ABCDEFACTAB DB 0123456789ABCDEFMOV BXMOV BX,OFFSET ACTABOFFSET ACTABMOV ALMOV AL,SISIXLATXLAT;表首地址的偏移量;表首地址的偏移量BX BX ;取待轉(zhuǎn)換數(shù);取待轉(zhuǎn)換數(shù);轉(zhuǎn)換結(jié)果;轉(zhuǎn)換結(jié)果ALAL* * 字節(jié)交換指令字節(jié)交換指令BSWAPBSWAP格式:格式: BSWAP REG32BSWAP RE
24、G32功能:功能: 內(nèi)部各字節(jié)互換內(nèi)部各字節(jié)互換 例:例: MOV EBXMOV EBX,77886655H 77886655H BSWAP EBX BSWAP EBX 執(zhí)行后:執(zhí)行后: EBX = EBX = 55668877H55668877H* * 標(biāo)志寄存器傳送指令標(biāo)志寄存器傳送指令LAHF/SAHF格式:格式: LAHF LAHF 或或 SAHFSAHFLAHF LAHF 將標(biāo)志寄存器的低字節(jié)將標(biāo)志寄存器的低字節(jié)AHAH(低字節(jié)的內(nèi)容是(低字節(jié)的內(nèi)容是 SF ZF SF ZF AF AF PF PF CFCF)SAHF SAHF 將將AHAH的內(nèi)容的內(nèi)容標(biāo)志寄存器的低字節(jié)標(biāo)志寄存器的
25、低字節(jié)功能:功能:全部通用寄存器內(nèi)容壓棧和彈棧指令全部通用寄存器內(nèi)容壓棧和彈棧指令 格式:格式:PUSHAPUSHA 將將8 8個(gè)個(gè)1616位通用寄存器壓棧,順序?yàn)椋何煌ㄓ眉拇嫫鲏簵?,順序?yàn)椋?AXAX、CXCX、DXDX、BXBX、SPSP、BPBP、SISI、DIDI 格式:格式:PUSHADPUSHAD 將將8 8個(gè)個(gè)3232位通用寄存器壓棧,順序?yàn)椋何煌ㄓ眉拇嫫鲏簵?,順序?yàn)椋篍AXEAX、 ECXECX、EDXEDX、EBXEBX、ESPESP、EBPEBP、ESIESI、EDIEDI 格式:格式:POPAPOPA 格式:格式:POPADPOPAD 將堆棧中的數(shù)據(jù)彈給將堆棧中的數(shù)據(jù)彈給
26、1616位通用寄存器,順序位通用寄存器,順序 與壓棧指令相反。與壓棧指令相反。 將堆棧中的數(shù)據(jù)彈給將堆棧中的數(shù)據(jù)彈給3232位通用寄存器,順序位通用寄存器,順序 與壓棧指令相反。與壓棧指令相反。壓棧壓棧/ /彈棧指令彈棧指令 PUSH/POPPUSH/POP 格式:格式:PUSH OP1PUSH OP1;OP1OP1可以是可以是1616位或位或3232位的通用寄存器、位的通用寄存器、 段寄存器、存儲(chǔ)器操作數(shù)或立即數(shù)。段寄存器、存儲(chǔ)器操作數(shù)或立即數(shù)。;基本同上,但;基本同上,但OP1OP1不能是立即數(shù)和不能是立即數(shù)和CSCS。POP OP1POP OP12)堆棧指令)堆棧指令如:如:AX=11H
27、, BX=22H CX=33H, DX=44H SI =55H, DI =66H SP=80H, BP =84H PUSHA 執(zhí)行后有:執(zhí)行后有: SP00H11HxxH 注意:壓棧的順序?yàn)樽⒁猓簤簵5捻樞驗(yàn)?AX、CX、DX、BX、 SP、 BP、SI、DI 20080H如:如:AX=11H, BX=22H CX=33H, DX=44H SI =55H, DI =66H SP=7EH, BP =84H PUSHA 執(zhí)行后有:執(zhí)行后有: SP00H11H33H00HxxH 注意:壓棧的順序?yàn)樽⒁猓簤簵5捻樞驗(yàn)?AX、CX、DX、BX、 SP、 BP、SI、DI 20080H 2007EH如:如
28、:AX=11H, BX=22H CX=33H, DX=44H SI =55H, DI =66H SP=7CH, BP =84H PUSHA 執(zhí)行后有:執(zhí)行后有: SP00H11H33H00HxxH00H44H 注意:壓棧的順序?yàn)樽⒁猓簤簵5捻樞驗(yàn)?AX、CX、DX、BX、 SP、 BP、SI、DI 20080H 2007CH如:如:AX=11H, BX=22H CX=33H, DX=44H SI =55H, DI =66H SP=7AH, BP =84H PUSHA 執(zhí)行后有:執(zhí)行后有: SP00H11H33H00HxxH00H22H00H44H 注意:壓棧的順序?yàn)樽⒁猓簤簵5捻樞驗(yàn)?AX、C
29、X、DX、BX、 SP、 BP、SI、DI 20080H 2007AH如:如:AX=11H, BX=22H CX=33H, DX=44H SI =55H, DI =66H SP=78H, BP =84H PUSHA 執(zhí)行后有:執(zhí)行后有: SP00H11H33H00HxxH00H78H00H22H00H44H 注意:壓棧的順序?yàn)樽⒁猓簤簵5捻樞驗(yàn)?AX、CX、DX、BX、 SP、 BP、SI、DI 20080H 20078H如:如:AX=11H, BX=22H CX=33H, DX=44H SI =55H, DI =66H SP=76H, BP =84H PUSHA 執(zhí)行后有:執(zhí)行后有: SP0
30、0H11H33H00HxxH00H84H00H78H00H22H00H44H 注意:壓棧的順序?yàn)樽⒁猓簤簵5捻樞驗(yàn)?AX、CX、DX、BX、 SP、 BP、SI、DI 20080H 20076H如:如:AX=11H, BX=22H CX=33H, DX=44H SI =55H, DI =66H SP=74H, BP =84H PUSHA 執(zhí)行后有:執(zhí)行后有: SP00H11H33H00HxxH00H55H00H84H00H78H00H22H00H44H 注意:壓棧的順序?yàn)樽⒁猓簤簵5捻樞驗(yàn)?AX、CX、DX、BX、 SP、 BP、SI、DI 20080H 20074H如:如:AX=11H, B
31、X=22H CX=33H, DX=44H SI =55H, DI =66H SP=72H, BP =84H PUSHA 執(zhí)行后有:執(zhí)行后有: SP00H11H33H00HxxH00H66H00H55H00H84H00H78H00H22H00H44H 注意:壓棧的順序?yàn)樽⒁猓簤簵5捻樞驗(yàn)?AX、CX、DX、BX、 SP、 BP、SI、DI 20080H 20072H如:如:AX=11H, BX=22H CX=33H, DX=44H SI =55H, DI =66H SP=70H, BP =84H PUSHA 執(zhí)行后有:執(zhí)行后有: SP00H11H33H00HxxH00H66H00H55H00H8
32、4H00H78H00H22H00H44H 注意:壓棧的順序?yàn)樽⒁猓簤簵5捻樞驗(yàn)?AX、CX、DX、BX、 SP、 BP、SI、DI 20080H 20070H 設(shè)堆棧分布如圖:設(shè)堆棧分布如圖: POPA執(zhí)行后有:執(zhí)行后有: AX= BX= CX= DX= SI= DI= BP=SPxxH00H51H41H00H00H00H00H00H00H00H12H34H56H78H21H31H 21016H 設(shè)堆棧分布如圖:設(shè)堆棧分布如圖: POPA執(zhí)行后有:執(zhí)行后有: AX= BX= CX= DX= SI= DI= BP= 0012HSP 21018HxxH00H51H41H00H00H00H00H00
33、H00H00H12H34H56H78H21H31H 21016H 設(shè)堆棧分布如圖:設(shè)堆棧分布如圖: POPA執(zhí)行后有:執(zhí)行后有: AX= BX= CX= DX= SI= DI= BP= 0034H 0012HSP 2101AHxxH00H51H41H00H00H00H00H00H00H00H12H34H56H78H21H31H 21016H 設(shè)堆棧分布如圖:設(shè)堆棧分布如圖: POPA執(zhí)行后有:執(zhí)行后有: AX= BX= CX= DX= SI= DI= BP= 0034H 0012H 0056HSP 2101CHxxH00H51H41H00H00H00H00H00H00H00H12H34H56H
34、78H21H31H 21016H 設(shè)堆棧分布如圖:設(shè)堆棧分布如圖: POPA執(zhí)行后有:執(zhí)行后有: AX= BX= CX= DX= SI= DI= BP= 0034H 0012H 0056HSP 2101EHxxH00H51H41H00H00H00H00H00H00H00H12H34H56H78H21H31H 21016H 設(shè)堆棧分布如圖:設(shè)堆棧分布如圖: POPA執(zhí)行后有:執(zhí)行后有: AX= BX= CX= DX= SI= DI= BP= 0021H 0034H 0012H 0056HSP 21020HxxH00H51H41H00H00H00H00H00H00H00H12H34H56H78H2
35、1H31H 21016H 設(shè)堆棧分布如圖:設(shè)堆棧分布如圖: POPA執(zhí)行后有:執(zhí)行后有: AX= BX= CX= DX= SI= DI= BP= 0021H 0031H 0034H 0012H 0056HSP 21022HxxH00H51H41H00H00H00H00H00H00H00H12H34H56H78H21H31H 21016H 設(shè)堆棧分布如圖:設(shè)堆棧分布如圖: POPA執(zhí)行后有:執(zhí)行后有: AX= BX= CX= DX= SI= DI= BP= 0021H 0041H 0031H 0034H 0012H 0056HSP 21024HxxH00H51H41H00H00H00H00H00
36、H00H00H12H34H56H78H21H31H 21016H 設(shè)堆棧分布如圖:設(shè)堆棧分布如圖: POPA執(zhí)行后有:執(zhí)行后有: AX= BX= CX= DX= SI= DI= BP= 0051H 0021H 0041H 0031H 0034H 0012H 0056HSP 21026HxxH00H51H41H00H00H00H00H00H00H00H12H34H56H78H21H31H 21016HDX間址的間址的I / /O指令指令輸入格式輸入格式: :IN OP1IN OP1,OP2OP2;OP1 OP1 (OP2OP2)IN ALIN AL,9FH9FHOUT 9FHOUT 9FH,AL
37、ALIN ALIN AL,DXDXMOV DXMOV DX,310H310H輸出格式輸出格式: :OUT OP1OUT OP1,OP2OP2;(;(OP1OP1) OP2OP23 3)I/OI/O指令指令 IN/OUT IN/OUT 直接尋址的直接尋址的I / /O指令指令OUT DX, ALOUT DX, AL注意:注意:當(dāng)?shù)刂樊?dāng)?shù)刂?0FFH0FFH0FFH時(shí),時(shí), 則必須將地址賦給則必須將地址賦給 DXDX,間接尋址。,間接尋址。二二 、算術(shù)運(yùn)算指令、算術(shù)運(yùn)算指令1)基本四則運(yùn)算)基本四則運(yùn)算加加/減法指令減法指令A(yù)DD/ /SUBADDSUBOP1,OP2;OP1 OP1OP2例:例:
38、 ADD AL,BL ; ;設(shè)設(shè) AL=17H, BL=09H, CF=1, 則指令執(zhí)行后則指令執(zhí)行后 AL= BL= CF= SF= ZF=20H09H000帶進(jìn)帶進(jìn)/借位加借位加/減法指令減法指令A(yù)DC/SBBADCSBBOP1,OP2;OP1 OP1OP2 CFOP1、OP2不能同時(shí)為存儲(chǔ)器操作數(shù),不能同時(shí)為存儲(chǔ)器操作數(shù),OP1不能是立即數(shù)不能是立即數(shù)例例: ADC DL,BL ; ;設(shè)設(shè) DL=17H, BL=09H, CF=1, 則指令執(zhí)行后則指令執(zhí)行后 DL= BL= CF= SF= ZF=21H09H000該類指令要影響所有狀態(tài)標(biāo)志該類指令要影響所有狀態(tài)標(biāo)志加加1 / /減減1指
39、令指令I(lǐng)NC / /DEC格式:格式:INCDECOP1;OP1 OP11該類指令不影響該類指令不影響CFCF標(biāo)志標(biāo)志例:例:INC CX執(zhí)行前執(zhí)行前:CX=1234H,CF=1;執(zhí)行后執(zhí)行后:CX= CF=1235H1求補(bǔ)指令求補(bǔ)指令NEG格式:格式:NEG OP1;OP1 0 (OP1)* *交換加法指令交換加法指令XADD格式:格式:XADD OP1,OP2OP1 (OP1)()(OP2); OP2 (OP1)例:例: MOV BL,12HMOV BH,34HXADD BH,BL程序執(zhí)行后:程序執(zhí)行后:BH =BL=46H34H比較指令比較指令CMPCMP OP1,OP2格式:格式:;O
40、P1 OP2* *比較并交換指令比較并交換指令CMPXCHGCMPXCHG OP1,OP2格式:格式:功能:功能:OP1AL/AX/EAX若若ZF=1, OP1 OP2若若ZF=0, AL/AX/EAX OP1無符號(hào)數(shù)乘法指令無符號(hào)數(shù)乘法指令 MUL MUL 格式:格式:MUL OP1功能:功能:AL (AX/EAX )OP1 AX( DX:AX /EDX:EAX)結(jié)果結(jié)果 如:如: MUL SI;AXSIDX:AX 例:例: 試編制出實(shí)現(xiàn)試編制出實(shí)現(xiàn) Z =128 Z =128 8 8 的程序段的程序段 MOV AL,128 MOV BL,8 MUL BL 該程序段執(zhí)行后:該程序段執(zhí)行后:A
41、X = 0400H;OP1OP1可以是可以是8 8位、位、1616位或位或3232位的通位的通用寄存器或存儲(chǔ)器操作數(shù)用寄存器或存儲(chǔ)器操作數(shù) 帶符號(hào)數(shù)乘法指令帶符號(hào)數(shù)乘法指令 IMUL(有三種形式有三種形式): IMUL OP1 IMUL OP1,OP2 IMUL OP1,OP2,OP3*注意:注意:OP1只能是只能是16位或位或32位的位的通通 用寄存器,用寄存器,OP2是與是與OP1等長等長的通用寄存器或存儲(chǔ)器操作數(shù),的通用寄存器或存儲(chǔ)器操作數(shù), OP3必須是立即數(shù)。必須是立即數(shù)。;*OP1、 OP2為等長的為等長的16位或位或32位的通用寄位的通用寄存器或存儲(chǔ)器操作數(shù)存器或存儲(chǔ)器操作數(shù) ,
42、當(dāng),當(dāng)OP1為通用寄存器時(shí),為通用寄存器時(shí),OP2還可為立即數(shù)還可為立即數(shù) 。功能:功能:OP1OP2 OP1結(jié)果結(jié)果* *注意:注意:當(dāng)結(jié)果超過當(dāng)結(jié)果超過1616位或位或3232 位時(shí)位時(shí), , 高位自然丟失高位自然丟失, , 有有CF=1 , OF=1 功能:功能:OP2OP3 OP1結(jié)果結(jié)果功能:功能:AL (AX/EAX )OP1 AX( DX:AX /EDX:EAX)結(jié)果結(jié)果例:例: MOV AL,0FEH MOV BL,2 IMUL BL ;AX = FFFCH MOV CX,6 MOV BX,8 IMUL CX,BX ;CX = 0030H MOV DX,3 IMUL BX,DX
43、,3 ;BX = 0009H MOV DX,0FFFDH IMUL BX,DX,3 ;BX = FFF7H 除法指令除法指令 DIV / IDIVDIV / IDIV格式:格式: DIV OP1DIV OP1 IDIV OP1 IDIV OP1功能:功能: AX(DX:AX, EDX:EAX ) AX(DX:AX, EDX:EAX )OP1 OP1 商商余數(shù)余數(shù)ALAL(AX;EAXAX;EAX)AHAH(DX;EDXDX;EDX)若除數(shù)為若除數(shù)為0或商過大(超過保存商的累加器容量)時(shí),產(chǎn)生或商過大(超過保存商的累加器容量)時(shí),產(chǎn)生0號(hào)中斷號(hào)中斷 符號(hào)位擴(kuò)展指令符號(hào)位擴(kuò)展指令 格式:格式: C
44、BWCBW;字節(jié);字節(jié)字字 ALAX ALAX CWDCWD;字;字雙字雙字 AXDX:AX AXDX:AX * *CWDECWDE ;字;字雙字雙字 AXEAX AXEAX * *CDQCDQ ;雙字;雙字四字四字EAXEDX:EAXEAXEDX:EAX 例例: : 將變量將變量ONEONE除以除以TWO,TWO,結(jié)果存入結(jié)果存入BUFFBUFF單元單元, ,設(shè)設(shè)ONE, TWOONE, TWO均為字型變量均為字型變量 MOV AXMOV AX,ONEONECWDCWDIDIV TWOIDIV TWOMOV BUFFMOV BUFF,AXAX;取被除數(shù);取被除數(shù);擴(kuò)充為;擴(kuò)充為3232位位;
45、送商;送商2 2)十進(jìn)制調(diào)整指令)十進(jìn)制調(diào)整指令對加對加/ /減法進(jìn)行調(diào)整的原理減法進(jìn)行調(diào)整的原理 例:例: 6 9 2 9 2 90 6 9 8 9 2 8 5716 017 71 4 9 7 81C6 62 71 調(diào)整的依據(jù)調(diào)整的依據(jù)(以組合(以組合BCDBCD碼為例)碼為例)CF=AF=0CF=AF=0且且ALAL中高、低半字節(jié)數(shù)字碼均合法,不修正。中高、低半字節(jié)數(shù)字碼均合法,不修正。AF=1AF=1或或ALAL低半字節(jié)出現(xiàn)非法碼(低半字節(jié)出現(xiàn)非法碼(A AF F)時(shí),對)時(shí),對ALAL加加/ /減減06H06H進(jìn)行修正。進(jìn)行修正。CF=1CF=1或或ALAL的高半字節(jié)出現(xiàn)非法碼(的高半
46、字節(jié)出現(xiàn)非法碼(A AF F)時(shí),對)時(shí),對ALAL加加/ /減減60H60H進(jìn)行修正。進(jìn)行修正。AF=CF=1AF=CF=1,或,或AF=1AF=1且且ALAL的高半字節(jié)出現(xiàn)非法碼(的高半字節(jié)出現(xiàn)非法碼(A AF F)時(shí),或者)時(shí),或者CF=1CF=1且且ALAL的低半字節(jié)出現(xiàn)非法碼,加的低半字節(jié)出現(xiàn)非法碼,加/ /減減66H66H進(jìn)行修正。進(jìn)行修正。 指令格式及功能指令格式及功能DAADAA、DASDAS組合組合BCDBCD碼的加、減十進(jìn)制調(diào)整指令,該指令僅對碼的加、減十進(jìn)制調(diào)整指令,該指令僅對ALAL的內(nèi)容進(jìn)行調(diào)整,結(jié)果仍存于的內(nèi)容進(jìn)行調(diào)整,結(jié)果仍存于ALAL中。中。AAAAAA、AAS
47、AAS分離分離BCDBCD碼的加、減十進(jìn)制調(diào)整指令,將碼的加、減十進(jìn)制調(diào)整指令,將ALAL中的內(nèi)容中的內(nèi)容調(diào)整后送調(diào)整后送AHAH、ALAL。* *AAMAAM對兩個(gè)分離對兩個(gè)分離BCDBCD碼的的乘積(在碼的的乘積(在AXAX中)進(jìn)行調(diào)整,中)進(jìn)行調(diào)整,結(jié)果存入結(jié)果存入AHAH、ALAL中(僅對無符號(hào)數(shù)有效)。中(僅對無符號(hào)數(shù)有效)。(AHAL/10(AHAL/10的商的商; ALAL/10; ALAL/10的余數(shù)的余數(shù)) )* *AADAAD對進(jìn)行對進(jìn)行DIVDIV指令前的被除數(shù)(分離指令前的被除數(shù)(分離BCDBCD形式存入形式存入AXAX中)中)的內(nèi)容調(diào)整為二進(jìn)制數(shù),然后再進(jìn)行后面的的內(nèi)
48、容調(diào)整為二進(jìn)制數(shù),然后再進(jìn)行后面的DIVDIV指令,指令,所得結(jié)果為十進(jìn)制數(shù)。所得結(jié)果為十進(jìn)制數(shù)。MOV AL,08HMOV AL,08HADD AL,09HADD AL,09HDAADAA結(jié)果結(jié)果: AL = 17D: AL = 17D例:例:三、邏輯運(yùn)算指令和移位指令三、邏輯運(yùn)算指令和移位指令1)邏輯運(yùn)算指令)邏輯運(yùn)算指令邏輯與、或、異或、測試指令(邏輯與、或、異或、測試指令(ANDAND、OROR、XORXOR、TESTTEST)格式:格式:ANDANDORORXORXOROP1OP1,OP2OP2;OP1OP1OP1OP1+ +OP2OP2TEST OP1TEST OP1,OP2 OP
49、2 OP1OP1、OP2 OP2 均可為通用寄存器、存儲(chǔ)器操作數(shù),均可為通用寄存器、存儲(chǔ)器操作數(shù),OP2 OP2 也可是立即數(shù)。也可是立即數(shù)。該類指令固定使該類指令固定使OFOF、CFCF為為0 0,且根據(jù)結(jié)果影響,且根據(jù)結(jié)果影響SFSF、ZFZF、PFPF狀態(tài)狀態(tài) OP1OP1、OP2 OP2 同上。同上。邏輯非指令邏輯非指令 NOTNOT格式:格式: NOT OP1 NOT OP1 ; OP1OP1 OP1OP1 如:如: 若使若使ALAL中某中某8 8位二進(jìn)制數(shù)的最低位為零有指令:位二進(jìn)制數(shù)的最低位為零有指令:AND ALAND AL,0FE0FEH H指令指令OR BLOR BL,55
50、H 55H 執(zhí)行后有:執(zhí)行后有:BL=BL=1 1 1 1 1 1 1 1 B B若想對若想對DLDL中最高位求反有指令:中最高位求反有指令:XOR DLXOR DL,8080H HMOV ALMOV AL,35H35HAND ALAND AL,0FH0FHMOV BLMOV BL,ALALMOV CLMOV CL,09H09H OR CL OR CL,30H30HMOV BHMOV BH,CLCL;BL=BL=;BH=BH=0505H H3939H H2)移位指令)移位指令 左移指令左移指令算術(shù)左移算術(shù)左移 SALSAL邏輯左移邏輯左移 SHLSHLOP1OP1,OP2OP2格式:格式:功能
51、:功能:0D0D7CFOP1OP1可為可為8 8位、位、1616位或位或3232位的通用寄存器、存儲(chǔ)器操作數(shù)位的通用寄存器、存儲(chǔ)器操作數(shù)OP2OP2為移位次數(shù),可用為移位次數(shù),可用立即數(shù)立即數(shù)或或CLCL表示。表示。對于對于80868086而言立即數(shù)的值不能超過而言立即數(shù)的值不能超過1 1,8048680486最大可為最大可為255255。 右移指令右移指令格式:格式:算術(shù)右移算術(shù)右移 SARSAR邏輯右移邏輯右移 SHRSHROP1OP1,OP2OP2功能:功能:0D0D7CF SHR AL,1D0D7CF SAR AL,1 AL* *雙精度左移雙精度左移/ /右移指令右移指令 SHLD/S
52、HRDSHLD/SHRD格式:格式:SHLD/SHRDOP1,OP2 ,OP3OP1OP1可為可為1616位或位或3232位的通用寄存器、存儲(chǔ)器操作數(shù)位的通用寄存器、存儲(chǔ)器操作數(shù)。OP3OP3為為移位次數(shù)移位次數(shù),可用可用立即數(shù)立即數(shù)或或CLCL表示表示。OP2OP2可為可為1616位或位或3232位的通用寄存器位的通用寄存器。功能:功能:CFCF OP1(目的)(目的) OP2(源)(源) OP2(源)(源) OP1(目的)(目的)將將OP2OP2內(nèi)容移入內(nèi)容移入OP1OP1,而而OP2OP2本身本身不變不變。ROL/RCLOP1,OP2 循環(huán)左移指令循環(huán)左移指令 ROL/RCL格式:格式:
53、功能:功能:OP1OP1可為可為8 8位、位、1616位或位或3232位的寄存器、存儲(chǔ)器操作數(shù)位的寄存器、存儲(chǔ)器操作數(shù)OP2OP2為循環(huán)次數(shù),可用為循環(huán)次數(shù),可用立即數(shù)立即數(shù)或或CLCL表示。表示。對于對于80868086而言立即數(shù)的值不能超過而言立即數(shù)的值不能超過1 1,8048680486最大可為最大可為255255。 循環(huán)右移指令循環(huán)右移指令 ROR/RCR格式:格式:功能:功能:D0D7CFRCLROLROR/RCROP1,OP2D0D7CFRORRCR例如:例如: AX=0012H,BX=0034H,將兩寄存器的低將兩寄存器的低8位組合形成位組合形成AX=1234H MOV CL,8
54、 ROL AX,CL ADD AX,BX 說明:說明: 80486的移位次數(shù)不能大于的移位次數(shù)不能大于255。8086用立即數(shù)作移位次數(shù)時(shí)只能是用立即數(shù)作移位次數(shù)時(shí)只能是1,但用但用CL作移位次數(shù)時(shí)可移位作移位次數(shù)時(shí)可移位255次。次。 左移指令常用于實(shí)現(xiàn)乘以左移指令常用于實(shí)現(xiàn)乘以2n的操作,右移指令常用于實(shí)現(xiàn)除以的操作,右移指令常用于實(shí)現(xiàn)除以2n的操作。的操作。 操作數(shù)可以是操作數(shù)可以是8位、位、16位或位或32位的寄存器或存儲(chǔ)器操作數(shù),移位次數(shù)可位的寄存器或存儲(chǔ)器操作數(shù),移位次數(shù)可以用立即數(shù)或以用立即數(shù)或CL寄存器的內(nèi)容指明。寄存器的內(nèi)容指明。 * * 3)位測試指令)位測試指令 BT/B
55、TS/BTR/BTC BT/BTS/BTR/BTC格式:格式:BT BTS BTR BTCOP1,OP2OP1,OP2OP1,OP2OP1,OP2;測試;測試OP1中的第中的第OP2位的狀態(tài)并送入位的狀態(tài)并送入CF;同;同BT,并將測試位置,并將測試位置1 1;同;同BT,并將測試位清,并將測試位清0 0;同;同BT,并將測試位求反,并將測試位求反如:如: BT AX,5OP1OP1只能是只能是1616位或位或3232位的操作數(shù)位的操作數(shù)四、字符串操作指令四、字符串操作指令 1 1)基本字符串操作指令)基本字符串操作指令MOVS DSTRMOVS DSTR,SSTRSSTR;源區(qū)字符串;源區(qū)字
56、符串目的區(qū)字符串目的區(qū)字符串CMPS SSTRCMPS SSTR,DSTRDSTR;源區(qū)字符串;源區(qū)字符串 目的區(qū)字符串目的區(qū)字符串SCAS DSTRSCAS DSTR;ALAL(AXAX,EAXEAX) 目的區(qū)字符串各字符目的區(qū)字符串各字符LODS SSTRLODS SSTR;源區(qū)字符串字符;源區(qū)字符串字符ALAL(AXAX,EAXEAX)STOS DSTRSTOS DSTR;ALAL(AXAX,EAXEAX)的字符)的字符目的區(qū)目的區(qū)INS DSTRINS DSTR;從;從DXDX指定的端口輸入一字符到目的區(qū)指定的端口輸入一字符到目的區(qū)OUTS SSTROUTS SSTR;將源區(qū)字符從;將
57、源區(qū)字符從DXDX指定的端口送出指定的端口送出根據(jù)字符串中元素的長度,以上指令分別有三種形式:根據(jù)字符串中元素的長度,以上指令分別有三種形式: 如:如:MOVSMOVSB B、MOVSMOVSW W、MOVSMOVSD D SCAS SCASB B、SCASSCASW W、SCASSCASD D OUTS OUTSB B、OUTSOUTSW W、OUTSOUTSD D2 2)字符串指令的有關(guān)問題)字符串指令的有關(guān)問題 指針及修改指針及修改源串指針:源串指針:ESIESI或或SISI,默認(rèn)源串在,默認(rèn)源串在DSDS所指的數(shù)據(jù)段。所指的數(shù)據(jù)段。目的串指針:目的串指針:EDIEDI或或DIDI,默認(rèn)
58、目的串在,默認(rèn)目的串在ESES所指的數(shù)據(jù)段。所指的數(shù)據(jù)段。長度計(jì)數(shù)器是長度計(jì)數(shù)器是CXCX或或ECXECX,串長度可達(dá),串長度可達(dá)64KB64KB或或4GB4GB。STDSTD指令使指令使DF=1DF=1;CLDCLD指令使指令使DF=0DF=0。 串長度的控制串長度的控制 對標(biāo)志的影響對標(biāo)志的影響僅有僅有CMPSCMPS、SCASSCAS影響所有標(biāo)志,其他指令不影響標(biāo)志。影響所有標(biāo)志,其他指令不影響標(biāo)志。指針的修改:指針的修改:DF=0DF=0,增址;,增址;DF=1DF=1,減址。,減址。MOVSB;(;(SI) (DI) SI1 SI DI1 DICMPSB;(;(SI)()(DI) S
59、I1 SI DI1 DISCASW; AX (DI) DI2 DI LODSW ;(;(SI) AX SI2 SI 基本指令的重復(fù)執(zhí)行基本指令的重復(fù)執(zhí)行以上基本指令均為單步指令,可加重復(fù)前綴使指令重復(fù)執(zhí)行。以上基本指令均為單步指令,可加重復(fù)前綴使指令重復(fù)執(zhí)行。REPREP:使其后的基本指令重復(fù)執(zhí)行,直到使其后的基本指令重復(fù)執(zhí)行,直到CX=0CX=0(ECX=0ECX=0)為止。)為止。 一般加在一般加在MOVSMOVS、STOSSTOS、LODSLODS、INSINS、OUTSOUTS指令前。指令前。CLDCLDREP MOVSBREP MOVSB (SISI)(DIDI) DI+1DIDI+
60、1DI ; SI+1 SISI+1 SI CX CX1 CX1 CX CX0 CX0,重復(fù),重復(fù)REPE/REPZREPE/REPZ:條件滿足時(shí),重復(fù)執(zhí)行其后的基本指令,重復(fù)執(zhí)行的條件為:條件滿足時(shí),重復(fù)執(zhí)行其后的基本指令,重復(fù)執(zhí)行的條件為: CX0CX0且且ZF=1ZF=1。用于搜索目的串與一個(gè)給定值的偏離位置(從哪個(gè)字符開始不同)。用于搜索目的串與一個(gè)給定值的偏離位置(從哪個(gè)字符開始不同)。REPNE/REPNZREPNE/REPNZ:條件滿足時(shí),重復(fù)執(zhí)行其后的基本指令,重復(fù)執(zhí)行的條件為:條件滿足時(shí),重復(fù)執(zhí)行其后的基本指令,重復(fù)執(zhí)行的條件為: CX0CX0且且ZF=0ZF=0。SCASSC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZHHX 004-2024 粉苞酸腳桿盆花生產(chǎn)技術(shù)規(guī)范
- 二零二五年度員工宿舍入住與退宿手續(xù)協(xié)議
- 2025年度水利工程監(jiān)理工程師合同管理與可持續(xù)發(fā)展
- 二零二五年度商鋪經(jīng)營權(quán)放棄及轉(zhuǎn)讓協(xié)議書
- 二零二五年度酒吧租賃合同書
- 2025年度潤滑油行業(yè)年度銷售排行榜合作合同
- 2025年度機(jī)關(guān)單位食堂餐飲培訓(xùn)與咨詢服務(wù)合同
- 二零二五年度夫妻婚內(nèi)財(cái)產(chǎn)約定及家庭財(cái)務(wù)顧問服務(wù)協(xié)議
- 二零二五年度智慧城市項(xiàng)目實(shí)施團(tuán)隊(duì)勞動(dòng)合同
- 二零二五年度企業(yè)稅收籌劃與稅務(wù)籌劃培訓(xùn)與實(shí)施合同
- 保險(xiǎn)公司客戶服務(wù)質(zhì)量提升手冊
- 成語故事-一諾千金-課件
- 鋼筋工安全操作規(guī)程
- 煤礦安全管理人員考試題庫與答案(G卷)
- SMP-07-008-00 印刷性包裝材料管理規(guī)程
- 旅游景區(qū)物業(yè)管理服務(wù)方案
- 山東省濟(jì)南市2024年中考數(shù)學(xué)試卷【附真題答案】
- 孤殘兒童護(hù)理員技能鑒定考試題庫(含答案)
- DL∕T 5136-2012 火力發(fā)電廠、變電站二次接線設(shè)計(jì)技術(shù)規(guī)程
- 娛樂場所安全承諾聲明
- 光伏項(xiàng)目施工總進(jìn)度計(jì)劃表(含三級(jí))
評論
0/150
提交評論