当前位置:文档之家› 汇编语言指令系统.

汇编语言指令系统.

汇编语言--指令系统整理总结--转贴2007-05-1722:36对于计算机软件专业的学生,适当的学习一些汇编语言知识,我认为很重要,有助于你对于计算机底层工作的了解,帮助你更好的理解计算机高级语言,汇编原理,也对于学习操作系统很有帮助...近来自己在学汇编语言... 整理总结了常用的一些指令,认为对于学习汇编的龙友会有一些帮助以下内容均为个人整理...错误不当之处还望大家指出更正..谢谢..每条指令均按照1、指令的汇编格式2、指令的基本功能3、指令的寻址方式4、指令对标志位的影响5、指令的特殊要求这 5条内容的形式来对每条指令进行归纳总结....[数据传送指令]一、通用数据传送指令1、传送指令 MOV (move指令的汇编格式:MOVDST,SRC指令的基本功能:(DST<-(SRC将原操作数(字节或字传送到目的地址。

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

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

指令的特殊要求:目的操作数 DST 和源操作数 SRC 不允许同时为段寄存器;目的操作数 DST 不能是 CS,也不能用立即数方式。

2、进栈指令 PUSH (pushonto the stack出栈指令 POP (popfrom the stack指令的汇编格式:PUSHSRC ;POP DST指令的基本功能:PUSH指令在程序中常用来暂存某些数据,而 POP 指令又可将这些数据恢复。

PUSH SRC (SP<-(SP-2;(SP<-(SRCPOP DST (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,port port<=0FFHIN ac,DX port>0FFHOUT port,ac port<=0FFHOUT DX,ac port>0FFH指令的基本功能:对 8086及其后继机型的微处理机,所有 I/O端口与 CPU 之间的通信都由输入输出指令 IN 和 OUT 来完成。

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

IN ac,port port<=0FFH(AL<-(port传送字节或 (AX<-(port+1,port传送字IN ac,DX port>0FFH(AL<-((DX传送字节或 (AX<-((DX+1,(DX传送字OUT port,ac port<=0FFH(port<-(AL传送字节或 (port+1,port<-(AX传送字OUT DX,ac port>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 (loadeffective address指令的汇编格式:LEAreg,src指令的基本功能:LEA指令把源操作数的有效地址送到指定的寄存器,这个有效地址是由 src 选定的一种存储器寻址方式确定的。

指令支持的寻址方式:各种存储器寻址方式。

指令对标志位的影响:不影响标志位。

指令的特出要求:指令中 reg 不能是段寄存器;7、指针送寄存器和 DS LDS (loadDS with point指针送寄存器和 ES LES (loadES with point指令的汇编格式:LDSreg,srcLES reg,src指令的基本功能:LDS和 LES 指令把确定内存单元位置的偏移地址送寄存器,段地址 DS 或 ES。

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

LDS reg,src (reg<-(src(DS<-(src+2LES reg,src (reg<-(src(ES<-(src+2指令支持的寻址方式:src必须为存储器寻址方式指令对标志位的影响:不影响标志位。

指令的特殊要求:指令中 REG 不能是段寄存器;四、标志寄存器传送指令8、标志寄存器的低字节送 AH LAHF (loadAH with FLAGS 指令的汇编格式:LAHF指令的基本功能:(AH<-(FLAGS0-7指令对标志位的影响:不影响标志位9、AH 送标志寄存器低字节 SAHF(storeAH into FLAGS指令的汇编格式:SAHF指令的基本功能:(FLAGS0-7<-(AH指令对标志位的影响:由装入值来确定标志位的值。

10、标志进栈 PUSHF (pushthe flags指令的汇编格式:PUSHF指令的基本功能:(SP<-(SP-2((SP+1,(SP<-(FLAGS0-1511、标志出栈 POPF (popthe FLAGES指令的汇编格式:POPF指令的基本功能:(FLAGS0-15<-((SP+1,(SP(SP<-(SP+2指令对标志位的影响:由装入值来确定标志位的值。

[算术指令]一、加法指令 12、加法指令 ADD (addition指令的汇编格式:adddst,src指令的基本功能:(dst<-(src+(dst指令支持的寻址方式:他们两个操作数不能同时为存储器寻址。

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

指令对标志位的影响:SF=1加法结果为负数(符号位为 1SF=0加法结果为正数(符号位为 0ZF=1加法结果为零ZF=0加法结果不为零CF=1最高有效位向高位有进位CF=0最高有效位向高位无进位OF=1两个同符号数相加(正数+正数或负数+负数,结果符号与其相反。

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

13、带进为加法指令 ADC (addwith carry指令的汇编格式: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减法结果为负数(符号位为 1ZF=1减法结果为零ZF=0减法结果不为零CF=1二进制减法运算中最高有效位向高位有借位(被减数小于减数,不够减的情况CF=0二进制减法运算中最高有效为向高位无借位(被减数〉=减数,够减的情况OF=1两数符号相反(正数-负数,或负数-正数,而结果符号与减数相同。

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

16、带借位减法指令 SBB (subtractwith borrow指令的汇编格式:SBBdst,src指令的基本功能:(dst<-(dst-(src-CF指令支持的寻址方式:他们两个操作数不能同时为存储器寻址。

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

指令对标志位的影响:SF=1减法结果为负数(符号位为 1SF=0减法结果为正数(符号位为 0ZF=1减法结果为零ZF=0减法结果不为零CF=1二进制减法运算中最高有效位向高位有借位(被减数小于减数,不够减的情况CF=0二进制减法运算中最高有效为向高位无借位(被减数〉=减数,够减的情况OF=1两数符号相反(正数-负数,或负数-正数,而结果符号与减数相同。

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

17、减 1指令 DEC (decrement指令的汇编格式:DECopr指令的基本功能:(opr<-(opr-1指令支持的寻址方式:可以使用除立即数方式外的任何寻址方式。

指令对标志位的影响:SF=1减法结果为负数(符号位为 1SF=0减法结果为正数(符号位为 0ZF=1减法结果为零ZF=0减法结果不为零OF=1两数符号相反(正数-负数,或负数-正数,而结果符号与减数相同。

相关主题