汇编语言指令整理资料.docx

上传人:b****2 文档编号:13957906 上传时间:2023-06-19 格式:DOCX 页数:26 大小:23.20KB
下载 相关 举报
汇编语言指令整理资料.docx_第1页
第1页 / 共26页
汇编语言指令整理资料.docx_第2页
第2页 / 共26页
汇编语言指令整理资料.docx_第3页
第3页 / 共26页
汇编语言指令整理资料.docx_第4页
第4页 / 共26页
汇编语言指令整理资料.docx_第5页
第5页 / 共26页
汇编语言指令整理资料.docx_第6页
第6页 / 共26页
汇编语言指令整理资料.docx_第7页
第7页 / 共26页
汇编语言指令整理资料.docx_第8页
第8页 / 共26页
汇编语言指令整理资料.docx_第9页
第9页 / 共26页
汇编语言指令整理资料.docx_第10页
第10页 / 共26页
汇编语言指令整理资料.docx_第11页
第11页 / 共26页
汇编语言指令整理资料.docx_第12页
第12页 / 共26页
汇编语言指令整理资料.docx_第13页
第13页 / 共26页
汇编语言指令整理资料.docx_第14页
第14页 / 共26页
汇编语言指令整理资料.docx_第15页
第15页 / 共26页
汇编语言指令整理资料.docx_第16页
第16页 / 共26页
汇编语言指令整理资料.docx_第17页
第17页 / 共26页
汇编语言指令整理资料.docx_第18页
第18页 / 共26页
汇编语言指令整理资料.docx_第19页
第19页 / 共26页
汇编语言指令整理资料.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

汇编语言指令整理资料.docx

《汇编语言指令整理资料.docx》由会员分享,可在线阅读,更多相关《汇编语言指令整理资料.docx(26页珍藏版)》请在冰点文库上搜索。

汇编语言指令整理资料.docx

汇编语言指令整理资料

一、通用数据传送指令

1、传送指令MOV(move)

指令的汇编格式:

MOVDST,SRC

指令的基本功能:

(DST)<-(SRC)将原操作数(字节或字)传送到目的地址。

指令支持的寻址方式:

目的操作数和源操作数不能同时用存储器寻址方式,这个限制适用于所有指令。

指令的执行对标志位的影响:

不影响标志位。

指令的特殊要求:

目的操作数DST和源操作数SRC不允许同时为段寄存器;

目的操作数DST不能是CS,也不能用立即数方式。

2、进栈指令PUSH(pushontothestack)

出栈指令POP(popfromthestack)

指令的汇编格式:

PUSHSRC;POPDST

指令的基本功能:

PUSH指令在程序中常用来暂存某些数据,而POP指令又可将这些数据恢复。

PUSHSRC(SP)<-(SP)-2;(SP)<-(SRC)

POPDST(DST)<-((SP));(SP)<-(SP)

指令支持的寻址方式:

push和pop指令不能不能使用立即数寻址方式。

指令对标志位的影响:

PUSH和POP指令都不影响标志位。

指令的特殊要求:

PUSH和POP指令只能是字操作,因此,存取字数据后,SP的修改必须是+2或者-2;

POP指令的DST不允许是CS寄存器;

3、交换指令XCHG(exchange)

指令的汇编格式:

XCHGOPR1,OPR2

指令的基本功能:

(OPR1)<->(OPR2)

指令支持的寻址方式:

一个操作数必须在寄存器中,另一个操作数可以在寄存器或存储器中。

指令对标志位的影戏:

不影响标志位。

指令的特殊要求:

不允许使用段寄存器。

二、累加器专用传送指令

4、输入指令IN(input)

输出指令OUT(output)

指令的汇编格式:

INac,portport<=0FFH

INac,DXport>0FFH

OUTport,acport<=0FFH

OUTDX,acport>0FFH

指令的基本功能:

对8086及其后继机型的微处理机,所有I/O端口与CPU之间的通信都由输入输出指令IN和OUT来完成。

IN指令将信息从I/O输入到CPU,OUT指令将信息从CPU输出到I/O端口,因此,IN和OUT指令都要指出I/O端口地址。

INac,portport<=0FFH(AL)<-(port)传送字节或(AX)<-(port+1,port)传送字

INac,DXport>0FFH(AL)<-((DX))传送字节或(AX)<-((DX)+1,(DX))传送字

OUTport,acport<=0FFH(port)<-(AL)传送字节或(port+1,port)<-(AX)传送字

OUTDX,acport>0FFH(DX)<-(AL)传送字节或((DX)+1,(DX))<-(AX)传送字

指令对标志位的影响:

不影响标志位。

指令的特殊要求:

只限于在AL或AX与I/O端口之间传送信息。

传送16位信息用AX,传送8位信息用AL,这取决于外设端口的宽度。

5、换码指令XLAT(translate)

指令的汇编格式:

XLATopr或XLAT

指令的基本功能:

这条指令根据AL寄存器提供的位移量,将BX指使的字节表格中的代码换存在AL中。

(AL)<-((DS)*16+(BX)+(AL))

指令对标志位的影响:

不影响标志位。

指令的特殊要求:

所建字节表格的长度不能超过256字节,因为存放位移量的是8位寄存器AL。

opr为表格的首地址,因为opr所表示的偏移地址已存入BX寄存器,所以opr在换码指令中可有可无,有则提高程序的可读性。

三、地址传送指令

6、有效地址传送器LEA(loadeffectiveaddress)

指令的汇编格式:

LEAreg,src

指令的基本功能:

LEA指令把源操作数的有效地址送到指定的寄存器,这个有效地址是由src选定的一种存储器寻址方式确定的。

指令支持的寻址方式:

各种存储器寻址方式。

指令对标志位的影响:

不影响标志位。

指令的特出要求:

指令中reg不能是段寄存器;

7、指针送寄存器和DSLDS(loadDSwithpoint)

指针送寄存器和ESLES(loadESwithpoint)

指令的汇编格式:

LDSreg,src

LESreg,src

指令的基本功能:

LDS和LES指令把确定内存单元位置的偏移地址送寄存器,段地址DS或ES。

这个偏移地址和段地址(也称地址指针)是由src指定的两个相继字单元提供的。

LDSreg,src(reg)<-(src)(DS)<-(src+2)

LESreg,src(reg)<-(src)(ES)<-(src+2)

指令支持的寻址方式:

src必须为存储器寻址方式

指令对标志位的影响:

不影响标志位。

指令的特殊要求:

指令中REG不能是段寄存器;

四、标志寄存器传送指令

8、标志寄存器的低字节送AHLAHF(loadAHwithFLAGS)

指令的汇编格式:

LAHF

指令的基本功能:

(AH)<-(FLAGS)0-7

指令对标志位的影响:

不影响标志位

9、AH送标志寄存器低字节SAHF(storeAHintoFLAGS)

指令的汇编格式:

SAHF

指令的基本功能:

(FLAGS)0-7<-(AH)

指令对标志位的影响:

由装入值来确定标志位的值。

10、标志进栈PUSHF(pushtheflags)

指令的汇编格式:

PUSHF

指令的基本功能:

(SP)<-(SP)-2((SP)+1,(SP))<-(FLAGS)0-15

指令对标志位的影响:

不影响标志位。

11、标志出栈POPF(poptheFLAGES)

指令的汇编格式:

POPF

指令的基本功能:

(FLAGS)0-15<-((SP)+1,(SP))(SP)<-(SP)+2

指令对标志位的影响:

由装入值来确定标志位的值。

[算术指令]

一、加法指令

12、加法指令ADD(addition)

指令的汇编格式:

adddst,src

指令的基本功能:

(dst)<-(src)+(dst)

指令支持的寻址方式:

他们两个操作数不能同时为存储器寻址。

即为除源操作数为立即数的情况外,源操作数和目地操作数必须有一个寄存器寻址方式。

指令对标志位的影响:

SF=1加法结果为负数(符号位为1)

SF=0加法结果为正数(符号位为0)

ZF=1加法结果为零

ZF=0加法结果不为零

CF=1最高有效位向高位有进位

CF=0最高有效位向高位无进位

OF=1两个同符号数相加(正数+正数或负数+负数),结果符号与其相反。

OF=0两个不同符号数相加,或同符号数相加,结果符号与其相同。

13、带进为加法指令ADC(addwithcarry)

指令的汇编格式:

ADDdst,src

指令的基本功能:

(dst)<-(src)+(dst)+CF

指令支持的寻址方式:

他们两个操作数不能同时为存储器寻址。

即为除源操作数为立即数的情况外,源操作数和目地操作数必须有一个寄存器寻址方式。

指令对标志位的影响:

SF=1加法结果为负数

SF=0加法结果为正数

ZF=1加法结果为零

ZF=0加法结果不为零

CF=1最高有效位向高位有进位

CF=0最低有效位相高位无进位

OF=1两个同符号数相加,结果符号与其相反,

OF=0两个同符号数相加,或同符号相加,结果符号与其相同

14、加1指令INC(increament)

指令的汇编格式:

INCopr

指令的基本功能:

(opr)<-(opr)

指令支持的寻址方式可以使用除立即数方式外的任何寻址方式

指令对标志位的影响:

SF=1加法结果为负数

SF=0加法结果为正数

ZF=1加法结果为零

ZF=0加法结果不为零

OF=1两个同符号数相加,结果符号与其相反,

OF=0两个同符号数相加,或同符号相加,结果符号与其相同。

二、减法指令

15、减法指令SUB(subtract)

指令的汇编格式:

SUBdst,src

指令的基本功能:

(dst)<-(dst)-(src)

指令支持的寻址方式:

他们两个操作数不能同时为存储器寻址。

即为除源操作数为立即数的情况外,源操作数和目地操作数必须有一个寄存器寻址方式。

指令对标志位的影响:

SF=1减法结果为负数(符号位为1)

SF=0减法结果为正数(符号位为0)

ZF=1减法结果为零

ZF=0减法结果不为零

CF=1二进制减法运算中最高有效位向高位有借位(被减数小于减数,不够减的情况)

CF=0二进制减法运算中最高有效为向高位无借位(被减数〉=减数,够减的情况)

OF=1两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同。

OF=0同符号数相减时,或不同符号数相减,其结果符号与减数不同。

16、带借位减法指令SBB(subtractwithborrow)

指令的汇编格式:

SBBdst,src

指令的基本功能:

(dst)<-(dst)-(src)-CF

指令支持的寻址方式:

他们两个操作数不能同时为存储器寻址。

即为除源操作数为立即数的情况外,源操作数和目地操作数必须有一个寄存器寻址方式。

指令对标志位的影响:

SF=1减法结果为负数(符号位为1)

SF=0减法结果为正数(符号位为0)

ZF=1减法结果为零

ZF=0减法结果不为零

CF=1二进制减法运算中最高有效位向高位有借位(被减数小于减数,不够减的情况)

CF=0二进制减法运算中最高有效为向高位无借位(被减数〉=减数,够减的情况)

OF=1两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同。

OF=0同符号数相减时,或不同符号数相减,其结果符号与减数不同。

17、减1指令DEC(decrement)

指令的汇编格式:

DECopr

指令的基本功能:

(opr)<-(opr)-1

指令支持的寻址方式:

可以使用除立即数方式外的任何寻址方式。

指令对标志位的影响:

SF=1减法结果为负数(符号位为1)

SF=0减法结果为正数(符号位为0)

ZF=1减法结果为零

ZF=0减法结果不为零

OF=1两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同。

OF=0同符号数相减时,或不同符号数相减,其结果符号与减数不同。

18、比较指令CMP(compare)

指令的汇编格式:

CMPopr1,opr2

指令的基本功能:

(opr1)-(opr2),根据相减结果设置条件码,但不回送结果。

指令支持的寻址方式:

他们两个操作数不能同时为存储器寻址。

即为除源操作数为立即数的情况外,源操作数和目地操作数必须有一个寄存器寻址方式。

指令对标志位的影响:

SF=1减法结果为负数(符号位为1)

SF=0减法结果为正数(符号位为0)

ZF=1减法结果为零

ZF=0减法结果不为零

CF=1二进制减法运算中最高有效位向高位有借位(被减数小于减数,不够减的情况)

CF=0二进制减法运算中最高有效为向高位无借位(被减数〉=减数,够减的情况)

OF=1两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同。

OF=0同符号数相减时,或不同符号数相减,其结果符号与减数不同。

19、求补指令NEG(negate)

指令的汇编格式:

NEGopr

指令的基本功能:

(opr)<--(opr)

指令支持的寻址方式:

可以使用除立即数方式外的任何寻址方式。

指令对标志位的影响:

CF=1 不为0的操作数求补时

CF=0 为0的操作数求补时

OF=1操作数为-128(字节运算)或操作数为-32768(字运算)

OF=0当求补运算的操作数不为-128(字节)或-32768(字)时

三、乘法指令

20、无符号乘法指令NUL(unsignedmultiple)

有符号乘法指令IMUL(signedmuliple)

指令的汇编格式:

NULsrc

IMULsrc

指令的基本功能:

(AX)<-(AL)*(src)

(DX,AX)<-(AX)*(src)

指令支持的寻址方式:

src可以使用除立即数方式以外的任一种寻址方式。

指令对标志位的影响:

乘法指令只影响标志位CF和OF,其他条件码位无定义。

MUL指令的条件码设置为:

CFOF=00乘积的高一半为0(字节操作的(AH)或字操作的(DX))

CFOF=11乘积的高一半不为0

IMUL指令的条件码设置为:

CFOF=00乘积的高一半为低一半的符号扩展.

CFOF=11其他情况

指令的特殊要求:

MUL和IMUL指令的区别仅在于操作数是无符号还是带符号数,它们的共同点是,指令中只给出源操作数src,目的操作数是隐含的,它只能是累加器(字运算为AX,字节运算为AL)。

隐含的乘积寄存器是AX或DX(高位)和AX(低位)。

 

四、符号扩展指令

21、节扩展为字CBW(convertbytetoword)

指令的汇编格式:

CBW

指令的基本功能:

(AH)=00H当(AL)的最高有效位为0时

(AH)=FFH当(AL)的最高有效位为1时

指令对标志位的影响:

不影响标志位

指令的特殊要求:

这是条无操作数的指令,进行符号扩展的操作数必须存放在AL寄存器或AX寄存器中。

22、字扩展为双字CWD(convertwordtodoubleword)

指令的汇编格式:

CWD

指令的基本功能:

(DX)=0000H当(AX)的最高有效位为0时

(DX)=FFFFH当(AX)的最高有效位为1时

指令对标志位的影响:

不影响标志位

指令的特殊要求:

这是条无操作数的指令,进行符号扩展的操作数必须存放在AL寄存器或AX寄存器中。

五、除法指令

23、无符号数除法DIV(unsigneddivide)

带符号数除法IDIV(singeddivide)

指令的汇编格式:

DIVsrc

IDIVsrc

指令的基本功能:

字操作

(AL)<-(AX)/src的商

(AH)<-(AX)/src的余数

字节操作

(AX)<-(DX,AX)/src的商

(DX)<-(DX,AX)/src的余数

指令支持的寻址方式:

src作为除数,可用除立即数以外的任一种寻址方式来取得。

指令对标志位的影响:

不影响条件码。

指令的特殊要求:

除法指令要求字操作时,被除数必须为32位,除数是16位,商和余数是16位的;

 字节操作时,被除数必须为16位,除数是8位,得到的商和余数是8位的。

六、十进制调整指令

[逻辑指令]

一、逻辑运算

24、逻辑与AND(logicand)

指令的汇编格式:

ANDdst,src

指令的基本功能:

(dst)<-(dst)与(src)

指令支持的寻址方式:

两个操作数不能同时为存储器寻址。

即为除源操作数为立即数的情况外,源操作数和目地操作数必须有一个寄存器寻址方式。

指令对标志位的影响:

指令执行后CF和OF置零,AF无定义。

SF=1指令执行后的结果为负数(符号位为1)

SF=0指令执行后的结果为正数(符号位为0)

ZF=1指令执行后的结果为零

ZF=0指令执行后的结果不为零

PF=1结果操作数中1的个数为偶数时置1

PF=0结果操作数中1的个数为奇数时置0

25、逻辑或OR(logicor)

指令的汇编格式:

ORdst,src

指令的基本功能:

(dst)<-(dst)或(src)

指令支持的寻址方式:

两个操作数不能同时为存储器寻址。

即为除源操作数为立即数的情况外,原操作数和目的操作数必须有一个寄存器寻址方式。

指令对标志位的影响:

令执行后CF和OF置零,AF无定义。

SF=1指令执行后的结果为负数(符号位为1)

SF=0指令执行后的结果为正数(符号位为0)

ZF=1指令执行后的结果为零

ZF=0指令执行后的结果不为零

PF=1结果操作数中1的个数为偶数时置1

PF=0结果操作数中1的个数为奇数时置0

26、逻辑非NOT(logicnot)

指令的汇编格式:

NOTorc

指令的基本功能:

(dst)<-(opr)

指令支持的寻址方式:

除立即数寻址方式以外的其余寻址方式

指令对标志位的影响:

对标志位无影响

27、异或XOR(exclusiceor)

指令的汇编格式:

XORdst,src

指令的基本功能:

(dst)<-(dst)异或(src)

指令支持的寻址方式:

两个操作数不能同时为存储器寻址。

即为除源操作数为立即数的情况外,原操作数和目的操作数必须有一个寄存器寻址方式。

指令对标志位的影响:

令执行后CF和OF置零,AF无定义。

SF=1指令执行后的结果为负数(符号位为1)

SF=0指令执行后的结果为正数(符号位为0)

ZF=1指令执行后的结果为零

ZF=0指令执行后的结果不为零

PF=1结果操作数中1的个数为偶数时置1

PF=0结果操作数中1的个数为奇数时置0

28、测试指令TEST

指令的汇编格式:

TESTopr1,opr2

指令的基本功能:

(opr1)与(opr2)

指令支持的寻址方式:

两个操作数不能同时为存储器寻址,即为除源操作数为立即数的情况外,源操作数和目的操作数必须有一个寄存器寻址方式。

指令对标志位的影响:

令执行后CF和OF置零,AF无定义。

SF=1指令执行后的结果为负数(符号位为1)

SF=0指令执行后的结果为正数(符号位为0)

ZF=1指令执行后的结果为零

ZF=0指令执行后的结果不为零

PF=1结果操作数中1的个数为偶数时置1

PF=0结果操作数中1的个数为奇数时置0

二、移位指令

29、逻辑左移SHL(shiftlogicalleft)

指令的汇编格式:

SHLdst,cnt

指令的基本功能:

SHL指令向左逐位移动cnt次,每次逐位移动后,最低位用0来补充,最高位移入CF。

指令支持的寻址方式:

目的操作数dst可以是除立即数外的任何寻址方式。

移位次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。

指令对标志位的影响:

CF=移入的数值

OF=1当cnt=1时,移动后最高位的值发生变化。

OF=0当cnt=1时,移动时最高位的值未发生变化。

SF、ZF、PF根据移动后的结果设置。

30、逻辑右移SHR(shiftlogicalright)

指令的汇编格式:

SHRdst,cnt

指令的基本功能:

SHR指令向右逐位移动cnt次,每次逐位移动后,最高位用0来补充,最低位移入CF。

指令支持的寻址方式:

目的操作数dst可以是除立即数外的任何寻址方式。

移位次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。

指令对标志位的影响:

CF=移入的数值

OF=1当cnt=1时,移动后最高位的值发生变化。

OF=0当cnt=1时,移动时最高位的值未发生变化。

SF、ZF、PF根据移动后的结果设置。

31、算术左移SAL(shiftarithmeticleft)

指令的汇编格式:

SALdstcnt

指令的基本功能:

SAL指令向左逐位移动cnt次,每次逐位移动后,最低位用0来补充,最高位移入CF。

指令支持的寻址方式:

目的操作数dst可以是除立即数外的任何寻址方式。

移位次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。

指令对标志位的影响:

CF=移入的数值

OF=1当cnt=1时,移动后最高位的值发生变化。

OF=0当cnt=1时,移动时最高位的值未发生变化。

SF、ZF、PF根据移动后的结果设置。

32、算术右移SAR(shiftarithmeticright)

指令的汇编格式:

SARdst,cnt

指令的基本功能:

SAR指令向右逐位移动cnt次,每次逐位移动后,最高位用符号位来补充,最低位移入CF。

指令支持的寻址方式:

目的操作数dst可以是除立即数外的任何寻址方式。

移位次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。

指令对标志位的影响:

CF=移入的数值

OF=1当cnt=1时,移动后最高位的值发生变化。

OF=0当cnt=1时,移动时最高位的值未发生变化。

SF、ZF、PF根据移动后的结果设置。

33、循环左移ROL(rotateleft)

指令的汇编格式:

ROLdst,cnt

指令的基本功能:

ROL对由dst指定的寄存器或存储器操作数左移循环移动cnt所指定的次数,每左移一次,把最高位同时移入CF和操作数最低位。

指令支持的寻址方式:

目的操作数dst可以是除立即数外的任何寻址方式。

移动次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。

指令对标志位的影响:

CF=移入的数值

OF=1当cnt=1时,移动后最高位的值发生变化。

OF=0当cnt=1时,移动时最高位的值未发生变化。

SF、ZF、PF根据移动后的结果设置。

34、循环右移ROR(rotateright)

指令的汇编格式:

RORdst,cnt

指令的基本功能:

ROR对由dst指定的寄存器或存储器操作数右移循环移动cnt所指定的次数,每右移一次,把最低位同时移入CF和操作数最高位。

指令支持的寻址方式:

目的操作数dst可以是除立即数外的任何寻址方式。

移动次数(或位数)cnt=1时,1可以直接写在指令中,cnt>1时,cnt必须放入CL寄存器中。

指令对标志位的影响:

CF=移入的数值

OF=1当cnt=1时,移动后最高位的值发生变化。

OF=0当cnt=1时,移动时最高位的值未发生变化。

SF、ZF、PF根据移动后的结果设置。

35、带进位的循环左移RCL(rotateleftthroughcarry)

指令的汇编格式:

RCLdst,cnt

指令的基本功能:

RCL对由dst指定的寄存器或存储器操作数,连同进位标志CF左循环移动,m所指定的次数,每左移一次,把操作数的最高位移入CF,而CF中原有内容移入操作数的最低位。

指定支持的寻址方式:

目的操作数dst可以是除立即数外的任何寻址方式。

移动次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。

指令对标志位的影响:

CF=移入的数值。

OF=1当cnt=1时,移动后最高位的值未发生变化。

OF=0当cnt=1时,移动后最高位的值发生变化。

SF、ZF、PF标志位不受影响。

36、带进位的循环右移RCR(rotaterightthroughcarry)

指令的汇编格式:

RCRdst,cnt

指令的基本功能:

RCR对由d

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2