微机原理指令整理_第1页
微机原理指令整理_第2页
微机原理指令整理_第3页
微机原理指令整理_第4页
微机原理指令整理_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、类别指令类型指令名称指令缩写指令功能影响标志格式格式含义源操作数目的操作数传送指令通用传输指令基本传输指令MOV将源操作数中的数据传送至目的操作数,以实现寄存器与寄存器、寄存器与存储器之间数据传送以及立即数送往寄存器或存储器无1.MOV WORD PTR 2000,AX 将AX送2000和2001单元(低位在低地址,高位在高地址,下同)至少有一个是寄存器(除立即数送存储器外); 不能在两个存储单元之间直接传送数据; 不能在两个段寄存器之间直接传送数据; 不能将立即数直接送至段寄存器;SS和SP赋值必须紧邻 指令指针IP既不作目的操作数也不做源操作数2.MOV AX,ES:BX+SI+50将ES

2、段(BX+SI+50)字单元内容送AX3.MOV SS,BX将BX内容送SS4.MOV ES,SS:DI+200将SS段(DI+200)字单元内容送ES5.MOV BX,CX将CS内容送BX6.MOV WORD PTR BX+DI,SS将SS内容送(BX+DI)字单元CS不能作目的操作数;立即数不能作目的操作数7.MOV CL,DH将DH内容送CL8.MOV DI,SI+100将(SI+100)字单元内容送DI9.MOV WORD PTR DI,DX将DX内容送(DI)字单元10.MOV CX,3330立即数3330送CX11.MOV BYTE PTR DI,0立即数0送(DI)字节单元堆栈操

3、作指令PUSH将来自通用寄存器、段寄存器或存储单元的一个字(16位)内容压入堆栈(SP指向的栈顶个单元)无1.PUSH AXAX内容进栈通用寄存器、段寄存器、存储单元的一个字CS不能作目的操作数;2.PUSH SISI内容进栈3.PUSH ESES内容进栈4.PUSH CSCS内容进栈5.PUSH WORD PTR BX(BX)和(BX+1)单元内容进栈6.PUSH WORD PTR BETA BX(BX+BETA)字单元内容进栈不能使用8位源或目的操作数POP将栈顶个单元的内容退出(弹出)到通用寄存器、段寄存器或存储单元无1.POP BX栈顶2个字节出栈到BX不能使用8位源或目的操作数2.P

4、OP DX栈顶2个字节出栈到DX通用寄存器、段寄存器、存储单元的一个字节;CS不能作目的操作数3.POP ES栈顶2个字节出栈到ES4.POP SS栈顶2个字节出栈到SS5.POP BX+50栈顶2个字节出栈到(BX+50)字单元6.POP BP+DI栈顶2个字节出栈到(BP+DI)字单元交换指令XCHG实现数据宽度相同的源操作数与目的操作数之间的数据交换,亦即同为8位或16位的累加器与寄存器、寄存器与寄存器以及寄存器与存储单元之间的数据交换无1.XCHG AL,BLAL与BL之间字节交换段寄存器、CS、IP、立即数不能作为源或目的操作数; 两个存储单元之间、段寄存器与段寄存器之间不能进行交换

5、2.XCHG CX,AXCX与AX之间字交换3.XCHG DH,CLDH与CL之间字节交换4.XCHG BX,CXBX与CX之间字交换5.XCHG BL,1000BL与1000单元内容字节交换6.XCHG WORD PTR DI,DX(DI)字单元内容与DX字交换专用累加器传送指令换码指令XLAT专门使用累加器AL并将其中的值(比如按二进制、十进制或十六进制等编码)变换成内存某一表格区内对应的另一种编码(比如发光二极管LED的字形码或其他通讯码等)无MOV BX,TABLE_SEGCODE XLAT设置SEGCODE表首址对表进行检索有操作码,无操作数。 操作数AL隐藏在操作码之中输入指令IN

6、在I/O口独立编址时,使用专门的输入指令IN,这种输入操作又是指定累加器AL或AX来担当,因此,IN属于专用累加器传送指令无1.IN AL,60H8位口地址60H中的1个字节到AL不能使用除累加器外的其他寄存器进行操作; 不能使用大于255的地址作为8位口地址; 不能使用除DX外的其他寄存器作为16位间接口地址,且在间接口寻址时,须对DX预先置地址值2.IN AX,60H60H内容到AL,61H内容到AH3.IN AL,DX16位口地址(DX)单元内容到AL4.IN AX,DX(DX)及(DX+1)口内容到AX输出指令OUT在I/O口独立编址时,使用专门的输出指令OUT,这种输出操作又是指定累

7、加器AL或AX来担当,因此,OUT属于专用累加器传送指令无1.OUT 60H,ALAL中的字节输出到8位口60H不能使用除累加器外的其他寄存器进行操作; 不能使用大于255的地址作为8位口地址; 不能使用除DX外的其他寄存器作为16位间接口地址,且在间接口寻址时,须对DX预先置地址值2.OUT 60H,AXAX中的字输出到8位口60H及61H3.OUT DX,ALAL中的字节到16位口地址(DX)4.OUT DX,AXAX中的字到(DX)及(DX+1)口地址传送指令有效地址传送指令LEA将存储单元有效(偏移)地址EA(源操作数)装入一个16位通用寄存器(目的操作数),以使该寄存器作为地址指针无

8、1.LEA SP,1234H直接地址1234H装入SP存储器操作数(存储单元有效地址EA)作源操作数段寄存器、IP不能作目的操作数;16位通用寄存器(BX、BP、SI及DI)作目的操作数2.LEA BX,TABLE标号或变量TABLE代表的地址装入BX3.LEA SI,BX间接地址(BX)装入SI4.LEA DI,BX+100基址地址(BX+100)装入DI不能将存储器操作数与寄存器操作数在源与目的操作数的位置上互换(倒置)5.LEA DX,SI+200变址地址(SI+200)装入DX6.LEA AX,BP+DI+500基(址)变址地址(BP+DI+500)装入AX使用DS段的地址指针传送指令

9、LDS将双字地址指针(包括偏移地址和段地址)分别传送到指令中给出的16位寄存器及数据段寄存器DS中,双字地址指针从源操作数的双字内容即(EA)和(EA+2)字单元得到无1.LDS BX,3250H由直接地址得到双字地址指针存储器操作数(存储单元有效地址(EA)作为源操作数16位寄存器REG(BX、BP、SI及DI)作为目的操作数2.LDS SI,TMP由标号(符号地址)的内容得到双字地址指针3.LDS BP,BX由间接地址(BX)的内容得到双字地址指针4.LDS DI,BX+20由基址地址(BX+20)的内容得到双字地址指针5.LDS BX,DI+40由变址地址(DI+40)的内容得到双字地址

10、指针不能将存储器操作数(存储单元有效地址EA)与寄存器操作数在源与目的操作数的位置上互换(倒置)6.LDS BX,BP+SI+500由基(址)变址地址(BP+SI+500)的内容得到双字地址指针使用ES段的地址指针传送指令LES功能与上基本相同,差别在于能提供偏移地址直接访问和使用ES段的只有DI,而BX、SI及BP可通过段超越前缀(ES:)由默认的DS段或SS段改为访问ES段无标志传送指令低8位标志取入AH指令LAHF将标志寄存器中低8位FL取入寄存器AH中(AH<-FL),以便于阅读和校核无低8位FL(SF、ZF、AF、PF、CF)寄存器AH存AH到低8位标志指令SAHF将AH内容存

11、到低8位标志寄存器FL中(FL<-AH),以便于设置标志状况影响低8位标志位寄存器AH低8位FL(SF、ZF、AF、PF、CF)标志进栈指令PUSHF将16位标志寄存器F(FH、FL)的内容进栈,SP<-SP-2,F的内容不变无16位标志寄存器F(FL、FH)堆栈标志出栈指令POPF将堆栈栈顶的2个字节弹出送16位标志寄存器F(FH、FL),SP<-SP+2,影响标志寄存器的内容影响16位标志位堆栈栈顶的2个字节16位标志寄存器F(FL、FH)算术运算类指令加法类指令加法指令ADD将源操作数与目的操作数的内容相加,其结果(两者之和)存放于目的操作数,或者说将源操作数的内容加到

12、目的操作数中CF、PF、AF、ZF、SF及OF1.ADD DI,SI寄存器SI的内容加到DI中源与目的操作数不能同时为存储器操作数2.ADD CX,50005000和5001单元内容加到CX中寄存器、存储器或立即数寄存器或存储器; 不能是立即数3.ADD WORD PTR BP+DI+30,DX寄存器DX的内容加到(BP+DI+30)字单元中4.ADD WORD PTR SI+100,2040立即数2040加到(SI+100)字单元中5.ADD BH,86H立即数86H加到BH中6.ADD AX,FED0H立即数FED0H加到累加器AX中带进位的加法指令ADC功能与上基本相同,唯一不同之处是,

13、在源操作数与目的操作数的内容相加时,还要加上进位位CF的值CF、PF、AF、ZF、SF及OF与ADD相同与ADD相同与ADD相同与ADD相同增量(加1)指令INC将目的操作数的内容(8位或16位)加1,源操作数1隐含在操作码中。目的操作数为寄存器或存储器,但不能是段寄存器或立即数PF、AF、ZF、SF及OF, 不影响CF1.INC ALAL中的内容加1源操作数为1为寄存器或存储器; 不能是段寄存器或立即数2.INC DIDI中的内容加13.INC BYTE PTR 20002000存储单元内容加14.INC WORD PTR BP+SI+50(BP+SI+50)存储器字单元内容加1减法类指令减

14、法指令SUB将目的操作数的内容与源操作数的内容相减,其结果(两者之差)存放于目的操作数,或者说从目的操作数的内容中减去源操作数的内容CF、PF、AF、ZF、SF及OF。 CF=1,表示借位; OF=1,溢出1.SUB CH,DLCH中的内容减去DL中的内容,结果在CH中源与目的操作数不能同时为存储器操作数2.SUB BL,DI在BL中减去(DI)单元的内容寄存器、存储器或立即数寄存器或存储器; 不能是立即数3.SUB BP+4,cl在SS段的(BP+4)单元中减去CL的内容4.SUB WORD PTR BX+DI+50,300在(BX+DI+50)字单元中减去立即数3005.SUB BX,30

15、50H在BX中减去立即数3050H6.SUB AL,56在AL中减去立即数56带借位的减法指令SBB在SUB的基础上再减去CF的值。适合于多字节或多字的减法与SUB相同与SUB相同与SUB相同与SUB相同与SUB相同减量(减1)指令DEC将目的操作数的内容(8位或16位)减1,源操作数1隐含在操作码中。目的操作数为寄存器或存储器,但不能是段寄存器或立即数与INC相同1.DEC CLCL中的内容减1源操作数为1为寄存器或存储器; 不能是段寄存器或立即数2.DEC AXAX中的内容减13.DEC BYTE PTR BX(BX)存储单元内容减14.DEC WORD PTR BX+DI+20(BX+D

16、I+20)存储器字单元内容减1求补指令NEG用0去减目的操作数的内容(8位或16位),其实质即为求取目的操作数内容的(2的)补码CF、PF、AF、ZF、SF及OF。 与SUB相同1.NEG ALAL中的内容求补码源操作数为0为寄存器或存储器; 不能是段寄存器或立即数2.NEG BXBX中的内容求补码3.NEG BYTE PTR BX(BX)存储单元内容求补码4.NEG WORD PTR BX+SI+5(BX+SI+5)存储器字单元内容求补码比较指令CMP将目的操作数的内容减去源操作数的内容,但其结果(两者之差)不回送于目的操作数CF、PF、AF、ZF、SF及OF。 ZF=1,两数相等;ZF=0

17、,两数不等 CF=1,有借位;CF=0,无借位(无符号) SFOF=1,被减数大于减数; SFOF=0,被减数小于减数 1.CMP SI,BPSI与BP内容比较源与目的操作数不能同时为存储器操作数2.CMP CH,3000CH与(3000)存储单元内容比较寄存器、存储器或立即数寄存器或存储器; 不能是立即数3.CMP WORD PTR BX+DI+100,DX(BX+DI+100)字单元与DX内容比较4.CMP BYTE PTR BX+SI,40H(BX+SI)字节单元与立即数40H比较5.CMP DI,0550HDI内容与立即数0550H比较6.CMP AL,80累加器AL内容与立即数80比

18、较乘法类指令无符号数乘法指令MUL不影响PF、AF、ZF、SF 只影响CF、OF1.MUL DLAL与DL内容相乘,乘积在AX中寄存器或存储器; 不能是立即数(8位或16位)累加器AL(8位)或AX(16位)、DX2.MUL CXAX与CX内容相乘,乘积在DX和AX中3.MUL BYTE PTR SI+2AL与(SI+2)字节单元内容相乘,结果在AX中4.MUL WORD PTR DIAX与(DI)字单元内容相乘,结果在DX和AX中带符号数乘法指令IMUL又称整型数乘法,即被乘数与乘数都是有符号的整数不影响PF、AF、ZF、SF 只影响CF、OF1.IMUL BLAL中的带符号数与BL中的带符

19、号数相乘,乘积在AX中寄存器或存储器; 不能是立即数(8位或16位)累加器AL(8位)或AX(16位)、DX2.IMUL DXAX中的带符号数与DX中的带符号数相乘,乘积在DX和AX中3.IMUL BYTE PTR BXAL中的带符号数与(BX)字节单元中的带符号数相乘,乘积在AX中4.IMUL WORD PTR BX+SI+5AX中的带符号数与(BX+SI+5)字单元中的带符号数相乘,乘积在DX和AX中除法类指令无符号数除法指令DIV不影响CF、PF、AF、ZF、SF及OF1.DIV BLAX内容除以BL内容,商在AL,余数在AH寄存器或存储器; 不能是立即数(8位或16位)累加器AX(16

20、位)或DX、AX(前者高16位,后者低16位,共32位,DX看做AX的扩展)2.DIV BXDX与AX内容除以BX内容,商在AX,余数在DX3.DIV BYTE PTR 3040AX内容除以(3040)字节单元内容,商在AL,余数在AH4.DIV WORD PTR DIDX与AX内容除以(DI)字单元内容,商在AX,余数在DX有符号数除法指令IDIV不影响CF、PF、AF、ZF、SF及OF1.IDIV CLAX与CL符号数相除,商在AL,余数在AH寄存器或存储器; 不能是立即数(8位或16位)累加器AX(16位)或DX、AX(前者高16位,后者低16位,共32位,DX看做AX的扩展)2.IDI

21、V BXDX、AX与BX符号数相除,商在AX,余数在DX3.IDIV BYTE PTR SIAX与(SI)字节单元符号数相除,商在AL,余数在AH4.IDIV WORD PTR 5500HDX、AX与(5500H)字单元符号数相除,商在AX,余数在DX符号扩展类指令字节扩展成字指令CBW为单字节指令。执行CBW时,将AL中的最高位(符号位)扩展到AH中,亦即AH中每一位的值与AL中的符号位相同。当AL<80H,为正数,执行CBW后,AH=00H;当AL>=80H,为负数,执行CBW后,AH=FFH=-1(补码)无字扩展成双字指令CWD执行CWD,将AX中的最高位(符号位)扩展到DX

22、中,亦即DX中每一位的值与AX中的符号位相同。当AX<8000H,为正数,执行CWD后,DX=0000H;当AX>=8000H,为负数,执行CWD后,DX=FFFFH=-1(补码)无十进制调整类指令加法的十进制调整加法的ASCII调整指令AAA针对两个非组合BCD码相加在AL中的结果,将其调整为BCD码。被调整的操作数隐含在AL中,调整后的正确结果在AH和AL即AX中只影响AF、CF,对PF、SF、ZF及OF无影响加法的十进制调整指令DAA针对两个组合BCD码相加在AL中的结果,将其调整为BCD码。被调整的操作数隐含在AL中,调整后的正确结果仍在AL中影响AF、CF、PF、SF和Z

23、F,对OF无影响减法的十进制调整减法的ASCII调整指令AAS两个非组合BCD码相减在AL中的结果,若低4位大于9或AF=1(此处表示向高4位借位),就从AL中减去6,从AH中减去1,CF=1(此处表示AL从AH借位);AL减6后再和OFH相“与”,调整的结果在AL中,其高4位为0,低4位为0-9之间的一个数,即为正确的非组合BCD码只影响AF、CF,对PF、SF、ZF及OF无影响减法的十进制调整指令DAS两个组合BCD码相减在AL中的结果,若低4位大于9或AF=1,则低4位减6(06H),AF=1;若高4位大于9亦即(AL&F0H)>90H或CF=1,则高4位减6,亦即AL-6

24、0H,CF=1影响AF、CF、PF、SF和ZF,对OF无影响乘法的十进制调整乘法的ASCII调整指令AAM将被乘数和乘数均转换为非组合BCD码,其乘积也要求是非组合BCD码放在AX中影响PF、SF及ZF,不影响AF、CF及OF除法的十进制调整除法的ASCII调整指令AAD将被除数和除数均转换为非组合BCD码,其商也要求是非组合BCD码放在AL中,余数也要求是非组合BCD码放在AH中。但在做除法之前,先对AX中的被除数的非组合BCD码进行ASCII调整,其指令为AAD影响PF、SF及ZF,不影响AF、CF及OF逻辑运算指令取反(逻辑非)指令NOT执行该指令时,对操作数取反使CF=0、OF=0;

25、影响PF、ZF及SF; 对AF不确定1.NOT BLBL内容取反,结果在BL中操作数只有一个,可以是寄存器或存储器操作数,但不能是立即数2.NOT AXAX内容取反,结果在AX中3.NOT BYTE PTR 2000H(2000H)单元内容取反,结果在2000H中逻辑运算类指令4.NOT WORD PTR SI+2(SI+2)字单元内容取反,结果“与”(逻辑乘)指令AND将源操作数和目的操作数相“与”,结果存入目的操作数。相“与”时,两数对应位均为1,则该结果为1,其他情况下均为0与NOT相同1.AND CX,DIDI和CX内容相“与”,结果在CX中寄存器、存储器或立即数寄存器、存储器或单独列

26、出的累加器(也可含在寄存器中), 但不能为立即数(因为不能存放结果)2.AND DH,2000(2000)字节单元和DH内容相“与”,存入(DI+4)字单元3.AND WORD PTR DI+4,DXDX和(DI+4)字单元内容相“与”,存入(DI+4)字单元4.AND BYTE PTR BX+10,5050和(BX+10)字节单元内容相“与”,存入(BX+10)字节单元5.AND BL,01100110B66H和BL内容相“与”,存入AX6.AND AX,3344H3344H和AX内容相“与”,存入AX“或”(逻辑和)指令OR将源操作数和目的操作数相“或”,结果存入目的操作数。用1去相“或”

27、时,该位结果为1,起到置位的作用;而用0去相“或”时,则保留原来位的结果与AND相同格式与AND相同与AND相同与AND相同“异或”指令XOR将源操作数与目的操作数取“异或”,结果存入目的操作数。用1去“异或”时,使对应位取反;而用0去“异或”时,则保留原来位的结果(对应位相同,结果为0;对应位不同,结果为1)与AND相同格式与AND相同与AND相同与AND相同测试指令TEST将源操作数与目的操作数相“与”,但结果不送回到目的操作数。依据对ZF(最低位是否为0,是,为1,否则为0)、SF(最高位是否为1,是,为1,否则为0)的判断,来决定程序转移是否与AND相同与AND相同与AND相同与AND

28、相同移位指令逻辑左移指令SHL对无符号数而言,左移1位相当于乘以2,左移若干位相当于乘以2的幂次。但当CF首次出现1(表示已到扩展位)之后,便不遵循此规则影响CF、PF、ZF、SF及OF; 对AF不确定1.SHL AH,1AH内容左移1位寄存器或存储器, 其内容可以是8位或16位, 、 但不能为立即数2.SHL CX,1CX内容左移1位3.MOV CL,44.SHL DL,CLDL内容左移4位5.SHL AX,CLAX内容左移4位6.SHL BYTE PTR DI+2,1(DI+2)字节单元内容左移1位7.SHL WORD PTR BX+100,1(BX+100)字单元内容左移1位8.MOV

29、CL,39.SHL BYTE PTR 1000(1000)字节单元内容左移3位10.SHL WORD PTR BX+SI+10(BX+SI+10)字单元内容左移3位算术左移指令SAL对带符号数而言,左移1位乘2,左移若干位乘2的幂次。但当符号位发生变化的情况下,也不遵循此规则影响CF、PF、ZF、SF及OF; 对AF不确定1.SAL AH,1AH内容左移1位寄存器或存储器, 其内容可以是8位或16位, 但不能为立即数2.SAL CX,1CX内容左移1位3.MOV CL,44.SAL DL,CLDL内容左移4位5.SAL AX,CLAX内容左移4位6.SAL BYTE PTR DI+2,1(DI

30、+2)字节单元内容左移1位7.SAL WORD PTR BX+100,1(BX+100)字单元内容左移1位8.MOV CL,39.SAL BYTE PTR 1000(1000)字节单元内容左移3位10.SAL WORD PTR BX+SI+10(BX+SI+10)字单元内容左移3位逻辑右移指令SHR每右移1位时,高位向低位移1位,最低位移入进位位CF,CF的内容被冲掉(自动消失),而最高位D15(或D7)补0。对无符号数而言,右移1位相当于除以2,右移若干位相当于除以2的幂次与SHL相同格式与SHL相同与SHL相同与SHL相同算术右移指令SAR右移时,最高位D15(或D7)维持不变。带符号位数

31、右移1位除以2,右移多位除以2的幂次。当执行SAR指令截断整数时,对整数使其值接近于0,对负数使其值更接近于负无穷大与SAL相同格式与SAL相同与SAL相同与SAL相同循环移位指令不带进位位循环左移指令ROL每左移1位时,低位向高位移1位,最高位D15(或D7)移入进位位CF,并同时移入最低位仅影响OF及CF与SHL相同与SHL相同不带进位位循环右移指令ROR每右移1位时,高位向低位移1位,最低位移入进位位CF,并且同时移入最高位D15(或D7)仅影响OF及CF与SHL相同与SHL相同带进位位循环左移指令RCL将CF作为扩展位放在循环之中,在每左移1位时,低位向高位移1位,最高位D15(或D7

32、)移入进位位CF,而CF移入最低位仅影响OF及CF与SHL相同与SHL相同带进位位循环右移指令RCR每右移1位时,高位向低位移1位,最低位移入进位位CF,而CF移入最高位D15(或D7)仅影响OF及CF与SHL相同与SHL相同串操作类指令重复前缀指令REP串操作的次数用CX作为计数器来计数。执行REP时,先判断CX=0?,若CX不等于0,则重复执行串操作,CX<-CX-1(次数减1),这样一直持续到CX=0为止REPE/REPZ除了满足上述CX不等于0的条件之外,再加上一个ZF=1(相等/为零)的条件,这样才能重复执行。反过来说,只有在ZF=0或CX=0时,就退出串操作。REPE/REP

33、Z有两种形式(写法),功能相同,使用时可任选。常用作串比较(结果相等)或串搜索(结果相同)的重复前缀REPNE/REPNZ除了满足CX不等于0的条件之外,再加上一个ZF=0(不相等/不为零)的条件,才重复执行。只有在ZF=1或者CX=0时,退出串操作。REPNE/REPNZ也有两种形式(写法),常用作串比较(结果不等)或串搜索(结果不同)的重复前缀串传送指令MOVS串传送(字或字节均可),在不致引起混淆的情况下,也可用MOVS取代MOVSB或MOVSW源串隐含在DS段,用SI间接寻址目的串隐含在ES段,用DI间接寻址字节串传送MOVSB将源串中的字节传送至目的串。串源隐含在DS段,用SI间接寻

34、址;目的串隐含在ES段,用DI间接寻址。每执行1次传送,SI与DI各自自动+/-1,指向下一个字节单元源串隐含在DS段,用SI间接寻址目的串隐含在ES段,用DI间接寻址字传送MOVSW将源串中的字传送至目的串。串源隐含在DS段,用SI间接寻址;目的串隐含在ES段,用DI间接寻址。每执行1次传送,SI与DI各自自动+/-2,指向下一个字单元源串隐含在DS段,用SI间接寻址目的串隐含在ES段,用DI间接寻址串比较指令CMPS串比较(字或字节均可),在不致引起混淆的情况下,也可用CMPS取代CMPSB或CMPSW仅影响CF、PF、AF、ZF、SF及OF源串隐含在DS段,用SI间接寻址目的串隐含在ES

35、段,用DI间接寻址字节串传送CMPSB将源串中的字节传送至目的串,但不回送结果到目的串。串源隐含在DS段,用SI间接寻址;目的串隐含在ES段,用DI间接寻址。每执行1次比较,SI与DI各自自动+/-1,指向下一个字节单元仅影响CF、PF、AF、ZF、SF及OF源串隐含在DS段,用SI间接寻址目的串隐含在ES段,用DI间接寻址字串传送CMPSW将源串中的字传送至目的串,但不回送结果到目的串。串源隐含在DS段,用SI间接寻址;目的串隐含在ES段,用DI间接寻址。每执行1次比较,SI与DI各自自动+/-2,指向下一个字单元仅影响CF、PF、AF、ZF、SF及OF源串隐含在DS段,用SI间接寻址目的串

36、隐含在ES段,用DI间接寻址串搜索指令SCAS串搜索(字或字节均可),在不致引起混淆的情况下,也可用CSCAS取代SCASB或SCASW累加器AL/AX(存放关键字/字节)字节串搜索SCASB用累加器AL/AX(存放一个关键字节)取代源串,寻找目的串中与其不同或相同的字节。用AL/AX减去目的串,但不回送结果到目的串,也不回送结果到AL/AX。目的串隐含在ES段,用DI间接寻址。每执行一次搜索,SI与DI各自自动+/-1,指向下一字节单元累加器AL/AX(存放关键字/字节)字串搜索SCASW用累加器AL/AX(存放一个关键字)取代源串,寻找目的串中与其不同或相同的字。用AL/AX减去目的串,但

37、不回送结果到目的串,也不回送结果到AL/AX。目的串隐含在ES段,用DI间接寻址。每执行一次搜索,SI与DI各自自动+/-2,指向下一字单元累加器AL/AX(存放关键字/字节)取串指令LODS取串(字或字节均可),在不致引起混淆的情况下,也可用LODS取代LODSB或LODSW将源串取入累加器AL/AX, 源串隐含在DS段,用SI间接寻址取字节串LODSB将源串取入累加器AL/AX。源串隐含在DS段,用SI间接寻址。每执行一次取入操作,SI自动+/-1,指向下一个字节单元将源串取入累加器AL/AX, 源串隐含在DS段,用SI间接寻址取字串LODSW将源串取入累加器AL/AX。源串隐含在DS段,

38、用SI间接寻址。每执行一次取入操作,SI自动+/-2,指向下一个字单元将源串取入累加器AL/AX, 源串隐含在DS段,用SI间接寻址存串指令STOS存串(字或字节均可),在不致引起混淆的情况下,也可用STOS取代STOSB或STOSW将源串取入累加器AL/AX 目的串隐含在ES段,用DI间接寻址存字节串STOSB将累加器AL/AX的内容存放到目的串(区)。目的串隐含在ES段,用DI间接寻址。每执行1次存放操作,DI自动+/-1,指向下一个字节单元将源串取入累加器AL/AX 目的串隐含在ES段,用DI间接寻址存字串STOSW将累加器AL/AX的内容存放到目的串(区)。目的串隐含在ES段,用DI间

39、接寻址。每执行1次存放操作,DI自动+/-2,指向下一个字单元将源串取入累加器AL/AX 目的串隐含在ES段,用DI间接寻址程序控制类指令转移指令无条件转移指令JMP若为段内,则转移地址送IP;若为段间,则转移地址偏移量部分送IP,段地址部分送CS格式为:JMP OPRD(OPRD 为转移的目标地址(程序转移地址),除短转移时OPRD为8位符号数之外,其余情况同CALL)JMP SHORT DEST段内直接(相对)短转移JMP NEAR PTR MULTI段内直接(相对)近转移JMP WORD PTR MULTI段内间接转移JMP FAR PTR DEST段间直接(远)转移JMP DWORD

40、PTR DEST段间间接转移简单的标志条件转移指令JZ/JE结果为0(相等),即ZF=1,则转移对标志无影响JNZ/JNE结果不为0(不相等),即ZF=0,则转移JS结果为负(符号位为1),即SF=1,则转移JNS结果为正(符号位为0),即SF=0,则转移JP/JPE奇偶位为1(奇偶性为偶),即PF=1,则转移JNP/JPO奇偶位为(奇偶性为奇),即PF=0,则转移JO溢出,即OF=1,则转移JNO不溢出,即OF=0,则转移JC/JB/JNAE有进位(低于,或者不高于且不等于),即CF=1,则转移JNC/JNB/JAE无进位(不低于,或者高于或等于),即CF=0,则转移无符号数比较结果的条件转

41、移指令JB/JNAE/JC低于,或者不高于且不等于(有进位),即CF=1,则转移JNB/JAE/JNC不低于,或者高于或等于(无进位),即CF=0,则转移JA/JNBE高于,或者不低于且不等于,即CFZF=0,则转移(此为反相的逻辑或,也可写为CF+ZF=0,即CF=0与ZF=0)JNA/JBE不高于,或者低于或等于,即CFZF=1,则转移(此为逻辑或,也可写为CF+ZF=1,即CF=1或ZF=1)带符号数比较结果的条件转移指令JL/JNGE小于,或者不大于且不等于,即SFOF=1,则转移(此为异或,也可写为SFOF=1,即SFOF)JNL/JGE不小于,或者大于或等于,即SFOF=0,则转移

42、(此为反相的异或即同或,也可写为SFOF=0,即SF=OF)JG/JNLE大于,或者不小于且不等于,即(SFOF)ZF=0,则转移(也可写为(SFOF)+ZF=0,即SF=OF且ZF=0,转移;SFOF或ZF=1,不转移)JNG/JLE不大于,或者小于或等于,即(SFOF)ZF=1,则转移(也可写为(SFOF)+ZF=1,即SFOF或ZF=1,转移;SF=OF且ZF=0,不转移)循环控制指令LOOP如果CX0,则循环执行一操作;当CX=0时,则退出循环LOOPE/LOOPZ如果CX0且ZF=1(相等/为零),则循环执行一操作;当CX=0或ZF=0时,则退出循环LOOPNE/LOOPNZ如果CX

43、0且ZF=0(不相等/不为零),则循环执行一操作;当CX=0或ZF=1时,则退出循环子程序调用与返回调用CALL执行此指令时,以此指令来多次调用程序中一些具有相对独立功能的子程序CALL DESTDEST表示调用的目标地址段内直接(相对)近调用1.CALL BBB调用以BBB为标号(符号地址)的子程序2.CALL 1000H调用目标地址为1000H的子程序3.CALL NEAR PROC调用一个近程序段内间接调用1.CALL BXBX内容为目标地址2.CALL WORD PTR BX(BX)间接寻址的字单元内容为目标地址3.CALL WORD PTR BP+DI+10(BP+DI+10)基变址寻址的字单元内容为目标地址(在SS段)4.CALL WORD PTR ES:BP+S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论