汇编指令大全(免费下载)

汇编指令大全(免费下载)
汇编指令大全(免费下载)

汇编指令大全

(DST:destination目的操作数/地址;SRC:source源操作数/地址;port:端口;ac:Accumulator累加器;reg:register寄存器;cnt:counter计数器;opr:除了立即数之外的所有寻址方式(寄存器);立即数:直接包含在代码中,作为代码的一部分,不需要保存在寄存器中的操作数,相当于高级语言中的常量;r8/r16:8位通用寄存器/16位通用寄存器;SR:segment register段寄存器,包括DS、SS、ES、CS;mem:memory,表示存储器操作数;addr:address,表示内存单元地址;) [数据传送指令]

一、通用数据传送指令

1、传送指令 MOV (move)

指令的汇编格式:MOV DST,SRC

指令的基本功能:(DST)←(SRC) 将原操作数(字节或字)传送到目的地址。

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

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

指令的特殊要求:目的操作数DST和源操作数SRC不允许同时为段寄存器;

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

2、进栈指令 PUSH (push onto the stack)

出栈指令 POP (pop from the stack)

指令的汇编格式:PUSH SRC ;POP DST

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

PUSH SRC (SP)←(SP)-2 ;(SP)←(SRC)

POP DST (DST)←((SP));(SP)←(SP)

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

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

指令的特殊要求:PUSH 和 POP指令只能是字操作,因此,存取字数据后,SP的修改必须是+2 或者 -2;POP指令的DST不允许是CS寄存器;

3、交换指令 XCHG (exchange)

指令的汇编格式:XCHG OPR1,OPR2

指令的基本功能:(OPR1)←>(OPR2)

指令支持的寻址方式:一个操作数必须在寄存器中,另一个操作数可以在寄存器或存储器中。

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

指令的特殊要求:不允许使用段寄存器。

二、累加器专用传送指令

4、输入指令 IN (input)

输出指令 OUT(output)

指令的汇编格式:IN ac,port port<=0FFH

IN ac,DX port>0FFH

OUT port,ac port<=0FFH

OUT 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)

指令的汇编格式:XLAT opr 或 XLAT

指令的基本功能:这条指令根据AL寄存器提供的位移量,将BX指使的字节表格中的代码换存在AL中。(AL)←((DS)*16+(BX)+(AL))

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

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

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

三、地址传送指令

6、有效地址传送器 LEA (load effective address)

指令的汇编格式:LEA reg,src

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

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

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

指令的特出要求:指令中reg不能是段寄存器;

7、指针送寄存器和DS LDS (load DS with point)

指针送寄存器和ES LES (load ES with point)

指令的汇编格式:LDS reg,src

LES reg,src

指令的基本功能:LDS和LES指令把确定内存单元位置的偏移地址送寄存器,段地址DS或ES。这个偏移地址和段地址(也称地址指针)是由src指定的两个相继字单元提供的。

LDS reg,src (reg)←(src) (DS)←(src+2)

LES reg,src (reg)←(src) (ES)←(src+2)

指令支持的寻址方式:src必须为存储器寻址方式

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

指令的特殊要求:指令中REG不能是段寄存器;

四、标志寄存器传送指令

8、标志寄存器的低字节送AH LAHF (load AH with FLAGS)

指令的汇编格式:LAHF

指令的基本功能:(AH)←(FLAGS)0-7

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

9、AH送标志寄存器低字节 SAHF(store AH into FLAGS)

指令的汇编格式:SAHF

指令的基本功能:(FLAGS)0-7←(AH)

指令对标志位的影响:由装入值来确定标志位的值。

10、标志进栈 PUSHF (push the flags)

指令的汇编格式:PUSHF

指令的基本功能:(SP)←(SP)-2 ((SP)+1,(SP))←(FLAGS)0-15

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

11、标志出栈 POPF (pop the FLAGES)

指令的汇编格式:POPF

指令的基本功能:(FLAGS)0-15←((SP)+1,(SP)) (SP)←(SP)+2

指令对标志位的影响:由装入值来确定标志位的值。

[算术指令]

一、加法指令

12、加法指令 ADD (addition)

指令的汇编格式:add dst,src

指令的基本功能:(dst)←(src)+(dst)

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

指令对标志位的影响:SF=1 加法结果为负数(符号位为1)

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

ZF=1 加法结果为零

ZF=0 加法结果不为零

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

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

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

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

13、带进为加法指令 ADC (add with carry)

指令的汇编格式:ADD dst,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)

指令的汇编格式:INC opr

指令的基本功能:(opr)←(opr)

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

指令对标志位的影响:SF=1 加法结果为负数

SF=0 加法结果为正数

ZF=1 加法结果为零

ZF=0 加法结果不为零

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

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

二、减法指令

15、减法指令 SUB (subtract)

指令的汇编格式:SUB dst,src

指令的基本功能:(dst)←(dst)-(src)

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

指令对标志位的影响:SF=1 减法结果为负数(符号位为1)

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

ZF=1 减法结果为零

ZF=0 减法结果不为零

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

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

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

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

16、带借位减法指令 SBB (subtract with borrow)

指令的汇编格式:SBB dst,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)

指令的汇编格式:DEC opr

指令的基本功能:(opr)←(opr)-1

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

指令对标志位的影响:SF=1 减法结果为负数(符号位为1)

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

ZF=1 减法结果为零

ZF=0 减法结果不为零

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

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

18、比较指令 CMP (compare)

指令的汇编格式:CMP opr1,opr2

指令的基本功能:(opr1)-(opr2),根据相减结果设置条件码,但不回送结果。

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

指令对标志位的影响:SF=1 减法结果为负数(符号位为1)

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

ZF=1 减法结果为零

ZF=0 减法结果不为零

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

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

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

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

19、求补指令 NEG (negate)

指令的汇编格式:NEG opr

指令的基本功能:(opr)← -(opr)

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

指令对标志位的影响:CF=1 不为0的操作数求补时

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

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

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

三、乘法指令

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

有符号乘法指令 IMUL(signed muliple)

指令的汇编格式:NUL src

IMUL src

指令的基本功能:(AX)←(AL)*(src)

(DX,AX)←(AX)*(src)

指令支持的寻址方式:src可以使用除立即数方式以外的任一种寻址方式。

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

MUL指令的条件码设置为:

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

CF OF=1 1 乘积的高一半不为0

IMUL指令的条件码设置为:

CF OF=0 0 乘积的高一半为低一半的符号扩展.

CF OF=1 1 其他情况

指令的特殊要求:MUL和IMUL指令的区别仅在于操作数是无符号还是带符号数,它们的共同点是,指令中只给出源操作数src,目的操作数是隐含的,它只能是累加器(字运算为AX,字节运算为AL)。隐含的乘积寄存器是AX或DX(高位)和AX(低位)。

四、符号扩展指令

21、节扩展为字 CBW (convert byte to word)

指令的汇编格式:CBW

指令的基本功能:(AH)=00H 当(AL)的最高有效位为0时

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

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

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

22、字扩展为双字 CWD (convert word to double word)

指令的汇编格式:CWD

指令的基本功能:(DX)=0000H 当(AX)的最高有效位为0时

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

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

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

五、除法指令

23、无符号数除法 DIV (unsigned divide)

带符号数除法 IDIV (singed divide)

指令的汇编格式:DIV src

IDIV src

指令的基本功能:字操作

(AL)←(AX)/src的商

(AH)←(AX)/src的余数

字节操作

(AX)←(DX,AX)/src的商

(DX)←(DX,AX)/src的余数

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

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

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

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

六、十进制调整指令

[逻辑指令]

一、逻辑运算

24、逻辑与 AND (logic and)

指令的汇编格式:AND dst,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 (logic or)

指令的汇编格式:OR dst,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 (logic not)

指令的汇编格式:NOT orc

指令的基本功能:(dst)←(opr)

指令支持的寻址方式:除立即数寻址方式以外的其余寻址方式

指令对标志位的影响:对标志位无影响

27、异或 XOR (exclusice or)

指令的汇编格式:XOR dst,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

指令的汇编格式:TEST opr1,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 (shift logical left)

指令的汇编格式:SHL dst,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 (shift logical right)

指令的汇编格式:SHR dst,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 (shift arithmetic left)

指令的汇编格式:SAL dst cnt

指令的基本功能: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 (shift arithmetic right)

指令的汇编格式:SAR dst,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 (rotate left)

指令的汇编格式:ROL dst,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 (rotate right)

指令的汇编格式:ROR dst,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 (rotate left through carry)

指令的汇编格式:RCL dst,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 (rotate right through carry)

指令的汇编格式:RCR dst,cnt

指令的基本功能:RCR 对由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标志位不受影响。

[串处理指令]

一、设置方向标志指令

37、DF置零 CLD (clear direction flag)

DF置一 STD (set direction flag)

指令的汇编格式:CLD

STD

指令的基本功能:CLD DF=0

STD DF=1

二、串处理指令

38、串传送 MOVSB / MOVSW (move string byte/word)

指令的汇编格式:MOVSB

MOVSW

指令的基本功能:(ES:DI)←(DS:SI)

(SI)←(SI) +/- 1(字节)或 +/- 2(字)

(DI)←(DI) +/- 1(字节)或 +/- 2(字)

指令对条件码的影响:不影响条件码。

指令的特殊要求:源串必须在数据段中,目的串必须在附加段中,串处理指令隐含的寻址方式是SI和DI 寄存器的间接寻址方式。源串允许使用段跨越前缀来指定段。

39、存串 STOSB / STOSW (stroe from string byte/word)

指令的汇编格式:STOSB

STOSW

指令的基本功能:(ES:DI)←(AL)或(AX)

(DI)←(DI) +/- 1(字节)或 +/- 2(字)

指令对条件码的影响:不影响条件码。

指令的特殊要求:源串必须在数据段中,目的串必须在附加段中,串处理指令隐含的寻址方式是SI和DI 寄存器的间接寻址方式。源串允许使用段跨越前缀来指定段。

40、取串LODSB / LODSW (load from string byte/word)

指令的汇编格式:LODSB

LODSW

指令的基本功能:(AL)或(AX)←(DS:SI)

(SI)←(SI) +/- 1(字节)或 +/- 2(字)

指令对条件码的影响:不影响条件码。

指令的特殊要求:源串必须在数据段中,目的串必须在附加段中,串处理指令隐含的寻址方式是SI和DI 寄存器的间接寻址方式。源串允许使用段跨越前缀来指定段。

41、串比较 CMPSB / CMPSW (compare string byte/word)

指令的汇编格式:CMPSB

CMPSW

指令的基本功能:(DS:SI)-(ES:DI) 根据比较结果设置条件码

(SI)←(SI) +/-1 (字节)或+/-2(字)

(DI)←(DI) +/-1 (字节)或+/-2(字)

指令对条件码的影响:SF=1 减法结果为负数(符号位为1)

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

ZF=1 减法结果为零

ZF=0 减法结果不为零

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

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

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

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

42、串扫描 SCASB / SCASW (scan string byte / word)

指令的汇编格式:SCASB

SCASW

指令的基本功能:(AL)←(ES:DI)或(AX)←(ES:DI) 根据扫描比较的结果设置条件码。

(DI)←(DI) +/-1 (字节)或+/-2(字)

指令对条件码的影响:SF=1 结果为负数(符号位为1)

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

ZF=1 结果为零

ZF=0 结果不为零

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

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

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

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

三、串重复前缀

43、重复执行串 REP

指令的汇编格式:REP (CX)=重复次数

指令的基本功能:① (CX)=0时,串指令执行完毕,否则执行② - ④

②(CX)←(CX)-1

③执行串指令(MOVS或STOS)

④重复执行①

44、相等/为零时重复执行串指令 REPE/REPZ

指令的汇编格式:REPE / REPZ (CX)=比较/扫描的次数

指令的基本功能:① (CX)=0或ZF=0时,结束执行串指令,否则继续② - ④

②(CX)←(CX)-1

③执行串指令(CMPS或SCAS)

④重复执行①

45、不等/不为零时重复执行串指令 REPNE / PEPNZ

指令的汇编格式:REPNE / PEPNZ (CX)=比较/扫描的次数

指令的基本功能:① (CX)=0或ZF=1,结束执行串指令,否则继续② - ④

②(CX)←(CX)-1

③执行串指令(CMPS或SCAS)

④重复执行①

[控制转移指令]

一、无条件转移指令

46、短转移 JMP SHORT label (short jump)

指令的汇编格式:JMP SHORT label

指令的基本功能:(IP)←当前(IP)+8位位移量 8位位移量是汇编程序在汇编源程序时,根据目标地址和当前IP之间的距离自动生成的。

指令对条件码的影响:对标志位无影响。

47、近转移 JMP NEAR PTR label (near jump)

指令的汇编格式:直接转移 JMP label (direct jump)

寄存器间接转移 JMP reg (register indirect jump)

存储器间接转移 JMP WORD PTR OPR (memory indirect jump)

指令的基本功能:JMP label (IP) ← OFFSET label = (IP)当前+16位位移量

JMP reg (IP) ← (reg)

JMP WORD PTR OPR (IP) ← (PA+1,PA)

指令支持的寻址方式:指令中的转向地址可以是直接寻址方式、寄存器寻址方式、寄存器间接寻址方式和存储器寻址方式。

指令对条件码的影响:对标志位无影响。

48、远转移 JMP FAR PTR label (for jump)

指令的汇编格式:JMP FAR PTR label

指令的基本功能:(IP)←label的段内偏移地址

(CS)←label所在段的段地址

指令支持的寻址方式:远转移的目的地址可以使用除立即寻址方式外的任何寻址方式来表示。

指令对条件码的影响:对标志位无影响。

二、条件转移指令

指令的汇编格式及功能

根据条件码的值转移:()

49、JZ(JE) OPR ZF=1

50、JNZ(JNE) OPR ZF=0

51、JS OPR SF=1

52、JNS OPR SF=0

53、JO OPR OF=1

54、JNO OPR OF=0

55、JP OPR PF=1

56、JNP OPR PF=0

57、JC OPR CF=1

58、JNC OPR CF=0

比较两个无符号数,根据比较的结果转移

59、JB(JNAE,JC) OPR CF=1 被减数小于减数则转移

60、JNB(JAE,JNC) OPR CF=0 被减数大于或等于减数则转移

61、JBE(JNA) OPR CF或ZF=1 被减数小于或等于减数则转移

62、JNBE(JA) OPR CF或ZF=0 被减数大于减数则转移

比较两个带符号数,根据比较结果转移

63、JL/JNGE (OPR SF异或OF=1) 被减数小于减数则转移

64、JNL/JGE (SF异或OF=0) 被减数不小于减数则转移

65、JLE/JNE [(SF异或OF)与ZF=1] 被减数不大于减数则转移

66、JNLE/JG [(SF异或OF)与ZF=0] 被减数大于减数则转移

根据CX寄存器的值转移

67、JCXZ (CX)=0 CX内容为零则转移(Jump if CX equals Zero)

指令的特殊要求:所有条件转移指令都是短转移指令,转移的目标地址必须在当前IP地址的-128至+127字节范围之内,因此条件转移指令是2字节指令。

三、循环指令

68、循环 LOOP (loop)

指令的汇编格式:LOOP label

指令的基本功能:① (CX)←(CX)-1

② 若(CX)≠0,则(IP)←(IP)当前+位移量,否则循环结束。

指令的特殊要求:循环指令都是短转移格式的指令,也就是说,位移量是用8位带符号数来表示的,转向地址在相对于当前IP值的(-128)-(+127)字节范围之内。

69、为零/相等时循环 LOOPZ/LOOPE (loop while Zero or Equal)

指令的汇编格式:LOOPNZ/LOOPNE label

指令的基本功能:① (CX)←(CX)-1

②若ZF=1且(CX)≠0,则(IP)←(IP)当前+位移量,否则循环结束。

指令的特殊要求:循环指令都是短转移格式的指令,也就是说,位移量是用8位带符号数来表示的,转向地址在相对于当前IP值的(-128) - (+127)字节范围之内。

70、不为零/不相等时循环 LOOPNZ/LOOPNE (loop while nonZero or Not Equal)

指令的汇编格式:LOOPNZ/LOOPNE label

指令的基本功能:① (CX)←(CX)-1

②若ZF=0且(CX)≠0,则(IP)←(IP)当前+位移量,否则循环结束。

指令的特殊要求:循环指令都是短转移格式的指令,也就是说,位移量是用8位带符号数来表示的,转向地址在相对于当前IP值的(-128) - (+127)字节范围之内。

四、子程序调用

71、段内直接近调用 CALL SUBROUT

指令的基本功能:

(SP)←(SP)-2

((SP)+1,(sp))←(IP)

(IP)←(IP)+16位位移量

段内间接近调用 CALL DESTIN

指令的基本功能:

(SP)←(SP)-2

((SP)+1,(SP))←(IP)

(IP)←(EA)

72、段间直接调用 CALL FAR PTR SUBROUT

指令的基本功能:(SP)←(SP)-2,((SP))←(CS)当前

(SP)←(SP)-2,((SP))←(IP)当前

(IP)←偏移地址(在指令的第2、3个字节)

(CS)←段地址(在指令的第4、5个字节)

五、返回指令

73、段内返回(近返回) RET

指令的基本功能:(IP)←((SP)+1,(SP))

(SP)←(SP)+2

段间返回(远返回) RET

指令的基本功能:(IP)←((SP)),(SP)←(SP)+2

(CS)←((SP)),(SP)←(SP)+2

带立即数返回 RET N

执行操作:① 返回地址出栈(操作同段内或段间返回)

②修改堆栈指针:(SP) ← (SP)+N

六、中断及中断返回指令

74、INT n 中断指令(interrupt),n为中断类型号

执行操作:①入栈保存FLAGS:(SP) ← (SP)-2,((SP)) ← (FLAGS)

②入栈保存返回地址:(SP) ← (SP)-2,((SP)) ← (CS)

(SP) ← (SP)-2,((SP)) ← (IP)

③转中断处理程序:(IP) ← (n×4)

(CS) ← (n×4+2)

75、IRET 中断返回指令(return from interrupt)

执行操作:①返回地址出栈:(IP) ← ((SP)),(SP) ← (SP)+2

(CS) ← ((SP)),(SP) ← (SP)+2

② FLAGS出栈:(FLAGS) ← ((SP)),(SP) ← (SP)+2

76、INTO 溢出则中断(中断类型为4)

执行操作:若OF=1(有溢出),则:

①入栈保存FLAGS:(SP) ← (SP)-2,((SP)) ← (FLAGS)

②入栈保存返回地址:(SP) ← (SP)-2,((SP)) ← (CS)

(SP) ← (SP)-2,((SP)) ← (IP)

③转中断处理程序:(IP) ← (4×4)= (10H)

(CS) ← (4×4+2)= (12H)

天正建筑命令大全整理篇详解

天正建筑命令快捷键大全一 1 轴网菜单 2 重排轴号CPZH 改变图中一组轴线编号,该组编号自动进行重新排序 3 4 倒排轴号DPZH 倒排轴线编号,适用于特定方向的立剖面轴线绘制 5 单轴变号DZBH 只改变图中单根轴线的编号 6 绘制轴网HZZW 包括旧版本的直线轴网和弧线轴网 7 两点轴标LDZB 选择起始轴与结束轴标注其中各轴号与尺寸 8 墙生轴网QSZW 在已有墙中按墙基线生成定位轴线 9 删除轴号SQZH 在已有轴网上删除轴号, 其余轴号自动重排 10 添补轴号TBZH 在已有轴号基础上,关联增加新轴号 添加径轴TJJZ 在已有圆弧轴网上添加新的径向轴线,并插入轴号 11 12 添加轴线TJZX 在已有轴网基础上增加轴线,并插入轴号 13 绘制轴网HZZW 包括旧版本的直线轴网和弧线轴网 逐点轴标ZDZB 逐个选择轴线,标注不相关的多个轴号 14 15 轴线裁剪ZXCJ 用矩形或多边形裁剪轴网的一部分 轴改线型ZGXX 切换轴线的线型 16 墙体菜单 17 边线对齐BXDQ 墙基线不变, 墙线偏移到过给定点 18 19 单线变墙DXBQ 将已绘制好的单线或者轴网转换为双线表示的墙对象 20 倒墙角DQJ 将转角墙按给定半径倒圆角生成弧墙或将墙角交接好 21 等分加墙DFJQ 将一段墙按轴线间距等分, 垂直方向加墙延伸到给定边界 22 改墙厚GQH 批量改墙厚: 墙基线不变,墙线一律改为居中 23 改外墙高GWQG 修改已定义的外墙高度与底标高, 自动将内墙忽略 24 改外墙厚GWQH 注意修改外墙墙厚前, 应先进行外墙识别,否则命令不会执行 25 绘制墙体HZQT 连续绘制双线直墙、弧墙,包括幕墙、弧墙、矮墙、虚墙等墙类型 26 墙保温层JBWC 在墙线一侧添加保温层或撤销保温层 27 加亮外墙JLWQ 亮显已经识别过的外墙 28 矩形立面JXLM 在立面显示状态, 将非矩形的立面部分删除, 墙面恢复矩形 29 净距偏移JJPY 按墙体净距离偏移平行生成新墙体 30 平行生线PXSX 在墙任意一侧, 按指定偏移距离生成平行的线或弧 31 墙面UCS QMUCS 临时定义一个基于所选墙面(分侧)的UCS, 在指定视口转为立面显示32 墙端封口QDFK 打开和闭合墙端出头的封口线 33 墙体造型QTZX 构造平面形状局部凸出的墙体,附加在墙上形成一体 34 识别内外SBNW 自动识别内外墙, 适用于一般情况 35 修墙角XQJ 清理互相交叠的两道墙或者更新融合同材质的墙与墙体造型 36 异型立面YXLM 在立面显示状态, 将墙按给定的轮廓线切割生成非矩形的立面 37 指定内墙ZDNQ 人工识别内墙, 用于内天井、局部平面等无法自动识别的情况 38 指定外墙ZDWQ 人工识别外墙, 用于内天井、局部平面等无法自动识别的情况门窗菜单 39 40 编号复位BHFW 把用户移动过的门窗编号恢复到默认位置

(完整word版)汇编语言常用指令大全,推荐文档

MOV指令为双操作数指令,两个操作数中必须有一个是寄存器. MOV DST , SRC // Byte / Word 执行操作: dst = src 1.目的数可以是通用寄存器, 存储单元和段寄存器(但不允许用CS段寄存器). 2.立即数不能直接送段寄存器 3.不允许在两个存储单元直接传送数据 4.不允许在两个段寄存器间直接传送信息 PUSH入栈指令及POP出栈指令: 堆栈操作是以“后进先出”的方式进行数据操作. PUSH SRC //Word 入栈的操作数除不允许用立即数外,可以为通用寄存器,段寄存器(全部)和存储器. 入栈时高位字节先入栈,低位字节后入栈. POP DST //Word 出栈操作数除不允许用立即数和CS段寄存器外, 可以为通用寄存器,段寄存器和存储器. 执行POP SS指令后,堆栈区在存储区的位置要改变. 执行POP SP 指令后,栈顶的位置要改变. XCHG(eXCHanG)交换指令: 将两操作数值交换. XCHG OPR1, OPR2 //Byte/Word 执行操作: Tmp=OPR1 OPR1=OPR2 OPR2=Tmp 1.必须有一个操作数是在寄存器中 2.不能与段寄存器交换数据 3.存储器与存储器之间不能交换数据. XLAT(TRANSLATE)换码指令: 把一种代码转换为另一种代码. XLAT (OPR 可选) //Byte 执行操作: AL=(BX+AL) 指令执行时只使用预先已存入BX中的表格首地址,执行后,AL中内容则是所要转换的代码. LEA(Load Effective Address) 有效地址传送寄存器指令 LEA REG , SRC //指令把源操作数SRC的有效地址送到指定的寄存器中. 执行操作: REG = EAsrc 注: SRC只能是各种寻址方式的存储器操作数,REG只能是16位寄存器 MOV BX , OFFSET OPER_ONE 等价于LEA BX , OPER_ONE MOV SP , [BX] //将BX间接寻址的相继的二个存储单元的内容送入SP中 LEA SP , [BX] //将BX的内容作为存储器有效地址送入SP中 LDS(Load DS with pointer)指针送寄存器和DS指令 LDS REG , SRC //常指定SI寄存器。 执行操作: REG=(SRC), DS=(SRC+2) //将SRC指出的前二个存储单元的内容送入指令中指定的寄存器中,后二个存储单元送入DS段寄存器中。

x86汇编指令集

x86汇编指令集 数据传输指令它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. MOVSX reg16,r/m8 ; o16 0F BE /r [386] MOVSX reg32,r/m8 ; o32 0F BE /r [386] MOVSX reg32,r/m16 ; o32 0F BF /r [386] MOVZX reg16,r/m8 ; o16 0F B6 /r [386] MOVZX reg32,r/m8 ; o32 0F B6 /r [386] MOVZX reg32,r/m16 ; o32 0F B7 /r [386] PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.

PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈. POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈. BSWAP 交换32位寄存器里字节的顺序 XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX ) XADD 先交换再累加.( 结果在第一个操作数里) XLAT 字节查表转换. ── BX 指向一张256 字节的表的起点, AL 为表的索引值(0-255,即 0-FFH); 返回AL 为查表结果. ( [BX+AL]->AL ) 2. 输入输出端口传送指令. IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} ) OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器) 输入输出端口由立即方式指定时, 其范围是0-255; 由寄存器DX 指定时, 其范围是0-65535. 3. 目的地址传送指令. LEA 装入有效地址. 例: LEA DX,string ;把偏移地址存到DX. LDS 传送目标指针,把指针内容装入DS. 例: LDS SI,string ;把段地址:偏移地址存到DS:SI. LES 传送目标指针,把指针内容装入ES. 例: LES DI,string ;把段地址:偏移地址存到ES:DI. LFS 传送目标指针,把指针内容装入FS.

汇编语言知识大全

第一章基础知识: 一.机器码:1.计算机只认识0,1两种状态。而机器码只能由0,1组成。故机器码相当难认,故产生了汇编语言。 2.其中汇编由三类指令形成:汇编指令(有机器码对应),伪指令,其他符号(编译的时候有用)。 每一总CPU都有自己的指令集;注意学习的侧重点。 二.存储器:1.存储单元中数据和指令没任何差别。 2.存储单元:Eg:128个储存单元(0~127)128byte。 线: 1.地址总线:寻址用,参数(宽度)为N根,则可以寻到2^N个内存单元。 据总线:传送数据用,参数为N根,一次可以传送N/8个存储单元。 3.控制总线:cpu对元器件的控制能力。越多控制力越强。 四.内存地址空间:1.由地址总线决定大小。 2.主板:cpu和核心器件(或接口卡)用地址总线,数据总线,控制总 线连接起来。 3.接口卡:由于cpu不能直接控制外设,需通过接口卡间接控制。

4.各类存储器芯片:RAM,BIOS(主板,各芯片)的ROM,接卡槽的 RAM CPU在操控他们的时候,把他们都当作内存来对待,把他们总的看作一个由 若干个存储单元组成的逻辑存储器,即我们所说的内存地址空间。 自己的一点理解:CPU对内存的操作是一样的,但是在cpu,内存,芯片之间的硬件本身所牵扯的线是不同的。所以一些地址的功能是对应一些芯片的。 第二章寄存器 引入:CPU中含有运算器,寄存器,控制器(由内部总线连接)。而寄存器是可以用来指令读写的部件。8086有14个寄存器(都是16位,2个存储空间)。 一.通用寄存器(ax,bx,cx,dx),16位,可以分为高低位 注意1.范围:16位的2^16-1,8位的2^8-1 2.进行数据传送或运算时要注意位数对应,否则会报错 二.字:1. 1个字==2个字节。 2. 在寄存器中的存储:0x高位字节低位字节;单元认定的是低单元 数制,16进制h,2进制b

C语言指令汇总

●一、数据传送类指令 指令格式功能简述字节数周期 MOV A,Rn 寄存器送累加器1 1 MOV Rn,A 累加器送寄存器1 1 MOV A ,@Ri 内部RAM单元送累加器1 1 MOV @Ri ,A 累加器送内部RAM单元1 1 MOV A ,#data 立即数送累加器2 1 MOV A ,direct 直接寻址单元送累加器2 1 MOV direct ,A 累加器送直接寻址单元2 1 MOV Rn,#data 立即数送寄存器2 1 MOV direct ,#data 立即数送直接寻址单元3 2 MOV @Ri ,#data 立即数送内部RAM单元2 1 MOVX A ,@DPTR 外部RAM单元送累加器(16位地址) 1 2 MOVX @DPTR ,A 累加器送外部RAM单元(16位地址) 1 2 MOVC A ,@A+DPTR 查表数据送累加器(DPTR为基址) 1 2 MOVC A ,@A+PC 查表数据送累加器(PC为基址) 1 2 XCH A ,Rn 累加器与寄存器交换1 1 XCH A ,@Ri 累加器与内部RAM单元交换1 1 XCHD A ,direct 累加器与直接寻址单元交换2 1 XCHD A ,@Ri 累加器与内部RAM单元低4位交换1 1 SWAP A 累加器高4位与低4位交换1 1 POP direct 栈顶弹出指令直接寻址单元2 2 PUSH direct 直接寻址单元压入栈顶2 2 ●算术运算类指令 ADD A,Rn 累加器加寄存器1 1 ADD A,@Ri 累加器加内部RAM单元1 1 ADD A,direct 累加器加直接寻址单元2 1 ADD A,#data 累加器加立即数2 1 ADDC A,Rn 累加器加寄存器和进位标志1 1 ADDC A,@Ri 累加器加内部RAM单元和进位标志1 1 ADDC A,#data 累加器加立即数和进位标志2 1 ADDC A,direct 累加器加直接寻址单元和进位标志2 1 INC A 累加器加1 1 1 INC Rn 寄存器加1 1 1 INC direct 直接寻址单元加1 2 1 INC @Ri 内部RAM单元加1 1 1 INC DPTR 数据指针加1 1 2 DA A 十进制调整1 1 SUBB A,Rn 累加器减寄存器和进位标志1 1 SUBB A,@Ri 累加器减内部RAM单元和进位标志1 1 SUBB A,#data 累加器减立即数和进位标志2 1

(完整word版)汇编语言指令集合-吐血整理,推荐文档

8086/8088指令系统记忆表 数据寄存器分为: AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据. BH&BL=BX(base):基址寄存器,常用于地址索引; CH&CL=CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器. DH&DL=DX(data):数据寄存器,常用于数据传递。他们的特点是,这4个16位的寄存器可以分为高8位: AH, BH, CH, DH.以及低八位:AL,BL,CL,DL。这2组8位寄存器可以分别寻址,并单独使用。 另一组是指针寄存器和变址寄存器,包括: SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置; BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置; SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针; DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针。 指令指针IP(Instruction Pointer) 标志寄存器FR(Flag Register) OF(overflow flag) DF(direction flag) CF(carrier flag) PF(parity flag) AF(auxiliary flag) ZF(zero flag) SF(sign flag) IF(interrupt flag) TF(trap flag) 段寄存器(Segment Register) 为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址: CS(Code Segment):代码段寄存器; DS(Data Segment):数据段寄存器; SS(Stack Segment):堆栈段寄存器;

汇编语言指令表

汇编语言指令表文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

伪指令 1、定位伪指令 ORG m 2、定义字节伪指令 DB X1,X2,X3,…,Xn 3、字定义伪指令 DW Y1,Y2,Y3,…,Yn 4、汇编结束伪指令 END 寻址方式 MCS-51单片机有五种寻址方式: 1、寄存器寻址 2、寄存器间接寻址 3、直接寻址 4、立即数寻址 5、基寄存器加变址寄存器间接寻址 6、相对寻址 7、位寻址 数据传送指令 一、以累加器A为目的操作数的指令(4条) MOV A,Rn ;(Rn)→A n=0~7 MOV A,direct ;( direct )→A MOV A,@Ri ;((Ri))→A i=0~1 MOV A,#data ; data →A 二、以Rn为目的操作数的指令(3条) MOV Rn ,A;(A)→ Rn MOV Rn ,direct;( direct )→ Rn MOV Rn ,#data; data → Rn 三、以直接寻址的单元为目的操作数的指令(5条) MOV direct,A;(A)→direct MOV direct,Rn;(Rn)→direct MOV direct,direct ;(源direct)→目的direct MOV direct,@Ri;((Ri))→direct MOV direct,#data; data→direct 四、以寄存器间接寻址的单元为目的操作数的指令(3条) MOV @Ri,A;(A)→(Ri) MOV @Ri,direct;(direct)→(Ri) MOV @Ri,#data; data→(Ri) 五、十六位数据传送指令(1条) MOV DPTR,#data16;dataH→DPH,dataL →DPL

photoshop快捷键命令大全汇总

photoshop快捷键命令大全汇总一、文件: 新建【CTRL】+【N】 打开【CTRL】+【O】 打开为【ALT】+【CTRL】+【O】 关闭【CTRL】+【W】 保存【CTRL】+【S】 另存为【CTRL】+【SHIFT】+【S】 另存为网页格式【CTRL】+【ALT】+【S】 打印设置【CTRL】+【ALT】+【P】 页面设置【CTRL】+【SHIFT】+【P】 打印【CTRL】+【P】 退出【CTRL】+【Q】 二、编辑: 撤消【CTRL】+【Z】

向前一步【CTRL】+【SHIFT】+【Z】 向后一步【CTRL】+【ALT】+【Z】 退取【CTRL】+【SHIFT】+【F】 剪切【CTRL】+【X】 复制【CTRL】+【C】 合并复制【CTRL】+【SHIFT】+【C】 粘贴【CTRL】+【V】 原位粘贴【CTRL】+【SHIFT】+【V】 自由变换【CTRL】+【T】 再次变换【CTRL】+【SHIFT】+【T】 色彩设置【CTRL】+【SHIFT】+【K】 三、图象 调整→色阶【CTRL】+【L】 调整→自动色阶【CTRL】+【SHIFT】+【L】 调整→自动对比度【CTRL】+【SHIFT】+【ALT】+【L】

调整→曲线【CTRL】+【M】 调整→色彩平衡【CTRL】+【B】 调整→色相/饱和度【CTRL】+【U】 调整→去色【CTRL】+【SHIFT】+【U】调整→反向【CTRL】+【I】 提取【CTRL】+【ALT】+【X】 液化【CTRL】+【SHIFT】+【X】 四、图层 新建图层【CTRL】+【SHIFT】+【N】 新建通过复制的图层【CTRL】+【J】 与前一图层编组【CTRL】+【G】 取消编组【CTRL】+【SHIFT】+【G】 合并图层【CTRL】+【E】 合并可见图层【CTRL】+【SHIFT】+【E】

8086汇编指令手册

8086汇编指令手册 一、数据传输指令 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈. PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈. POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈. BSWAP 交换32位寄存器里字节的顺序 XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX ) XADD 先交换再累加.( 结果在第一个操作数里) XLAT 字节查表转换. —— BX 指向一张256 字节的表的起点, AL 为表的索引值(0-255,即 0-FFH); 返回AL 为查表结果. ( [BX+AL]->AL ) 2. 输入输出端口传送指令. IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} ) OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器) 输入输出端口由立即方式指定时, 其范围是0-255; 由寄存器DX 指定时, 其范围是0-65535. 3. 目的地址传送指令. LEA 装入有效地址. 例: LEA DX,string ;把偏移地址存到DX. LDS 传送目标指针,把指针内容装入DS. 例: LDS SI,string ;把段地址:偏移地址存到DS:SI. LES 传送目标指针,把指针内容装入ES. 例: LES DI,string ;把段地址:偏移地址存到ES:DI. LFS 传送目标指针,把指针内容装入FS. 例: LFS DI,string ;把段地址:偏移地址存到FS:DI. LGS 传送目标指针,把指针内容装入GS. 例: LGS DI,string ;把段地址:偏移地址存到GS:DI. LSS 传送目标指针,把指针内容装入SS. 例: LSS DI,string ;把段地址:偏移地址存到SS:DI. 4. 标志传送指令. LAHF 标志寄存器传送,把标志装入AH. SAHF 标志寄存器传送,把AH内容装入标志寄存器.

CMD常用命令大全(最新整理)

说起cmd大家都很熟悉吧很有用哦这里我为大家接扫常见的命令 dos命令[只列出我们工作中可能要用到的] cd\ '返回到根目录 cd.. '返回到上一级目录 1、cd 显示当前目录名或改变当前目录。 2、dir 显示目录中的文件和子目录列表。 3、md 创建目录。 4、del 删除一或数个文件。 5、chkdsk 检查磁盘并显示状态报告。 6、cacls 显示或者修改文件的访问控制表(ACL) 7、copy 将一份或多份文件复制到另一个位置。 8、date 修改日期 9、format 格式化磁盘 10、type 显示文本文件的内容。 11、move 移动文件并重命名文件和目录。 12、expand 展开一个或多个压缩文件。 13、ren 重命名文件。 14、attrib 显示或更改文件属性。 15、time 显示或设置系统时间。 16、at at命令安排在特定日期和时间运行命令和程序。要使用AT 命令,计划服务必须已在运行中。 17、net [user],[time],[use] 多,自己去查 18、netstat 显示协议统计和当前tcp/ip连接 19、nbtstat 基于NBT(net bios over tcp/ip)的协议统计和当前tcp/ip连接 20、route 操作和查看网络路由表 21、ping 就不说了,大家都熟悉吧 22、nslookup 域名查找 23、edit 命令行下的文本编辑器 24、netsh强大的命令行下修改tcp/ip配置的工具 25、fdisk 相信现在用的人比较少了,不过在没有其他工具的情况,他还是有用的 更多: attrib 设置文件属性 ctty 改变控制设备 defrag 磁盘碎片整理 doskey 调用和建立DOS宏命令 debug 程序调试命令

8086汇编语言指令的寻址方式有哪几类

1. 8086汇编语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快? 寄存器寻址最快 7. 下面这些指令哪些是正确的?哪些是错误的?如是错误的,请说明原因。 XCHG CS , AX ;不能修改CS MOV [BX] , [1000] ;不能在两个内存单元之间直接进行数据传送 XCHG BX , IP ;不能用名字直接访问IP PUSH CS POP CS ;不允许直接修改CS值 IN BX , DX ;输入数据必须使用累加器AL或AX MOV BYTE [BX] , 1000 ;格式错误,且超范围,应为MOV word PTR [BX],1000 MOV CS , [1000];不允许直接修改CS值 20.带参数的返回指令用在什么场合?设栈顶地址为3000H,当执行RET 0006后,SP的值为多少? 利用堆栈传递参数时使用;对于近调用SP=3008H,对于远调用SP=300AH 27.设当前SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶地址为多少?当执行 PUSH BX指令后,栈顶地址和栈顶2个字节的内容分别是什么? 栈顶地址:SS:SP,物理地址为:2FF00H;PUSH 完以后栈顶地址为:SS:SP=2010:FDFEH,即物理地址为:2FEFEH,内容为:57H 34H(由低地址到高地址) B P7 5. 设(DS)=3000H,(BX)=1100H,(CS)=0062H,(S1)=0002H,(31100H)=52H, (31101H)=8FH,(31162H)=6BH,(31163H)=99H,(31103H)=F6H, (32200H)=AAH,(32201H)=B6H,(32800H)=55H,(32801H)=77H,给出下列各指令执行后AX寄存器的内容: (1) MOV AX,BX (2) MOV AX,[BX] (3) MOV AX,4200H (4) MOV AX,[2800H] (5) MOV AX,1100H[BX] (6) MOV AX,[1160H+SI] 9. 分别执行下列各指令组,写出AX的内容: (1) MOV AX,93A4H NEG AX 73A4-8c5c,e689-1977 (AX)=6C5CH (2) XY DW "AB" MOV AX,XY (AX)=4142H (3) MOV AX,2B7EH MOV CX,4DB5H ADD AX,CX (AX)=7933H (4) XA DW 0BD57H MOV AX,0FBCDH AND AX,XA (AX)=B945H (5) STC MOV BX, 0B69FH MOV AX, 43A2H SBB AX, BX

8086汇编指令大全.

标志寄存器:9个有效位,分 6个状态寄存器和 3个控制寄存器 CF 当执行一个加法(减法使最高位产生进位(借位时 CF=1 否则 CF=0 PF 指令执行的结果低 8位有偶数个一时, CF=1 否则 CF=0 AF 当执行一个加法(减法使运算结果低 4位向高 4位有进位(借位时 AF=1 否则 AF+0 ZF 当前运算结果为零, ZF=1 否则 ZF=0 SF 符号标志位 OF 溢出标志位 DF 方向标志位 IF 中断允许位 IF=1时响应外部中断

TF 跟踪标志位 操作数:[目的操作数(OPD ,源操作数(OPS ] ;立即操作数,寄存器操作数,存储器操作数。寻址方式: 1 寄存器寻址例:INC AX ; MOV AX , BX 2 寄存器间接寻址 (寄存器只能是 BX , DI , SI , BP ; [PA=(BX 、 DI 、 SI +DS》 4 或 BP+SS》4] 3 寄存器相对寻址 4 基址变址寻址 5 相对基址变址寻址 6 直接寻址 7 立即数寻址 i. 立即数寻址立即数寻址不能用在单操作数指令中 ii. 在双操作数中,立即数寻址方式不能用于目的操作数字段 指令系统: 1 数据传送指令 mov 注意: 不允许在两个存储单元之间直接传送数据

不允许在两个段寄存器之间传送数据 不允许用立即数直接为段寄存器赋值 不影响标志位 不允许寄存器或存储单元到除 CS 外的段寄存器 2 入栈(出栈指令 PUSH (POP 注意: PUSH 操作数不能是“立即数” POP 操作数不能是段寄存器 CS 不影响标志位 先进后出 单操作符 3 交换指令 XCHG 注意:

单片机汇编语言指令集

汇编语言的所有指令数据传送指令集 MOV 功能: 把源操作数送给目的操作数 语法: MOV 目的操作数,源操作数 格式: MOV r1,r2 MOV r,m MOV m,r MOV r,data XCHG 功能: 交换两个操作数的数据 语法: XCHG 格式: XCHG r1,r2 XCHG m,r XCHG r,m PUSH,POP 功能: 把操作数压入或取出堆栈 语法: PUSH 操作数POP 操作数 格式: PUSH r PUSH M PUSH data POP r POP m PUSHF,POPF,PUSHA,POPA 功能: 堆栈指令群 格式: PUSHF POPF PUSHA POPA LEA,LDS,LES 功能: 取地址至寄存器 语法: LEA r,m LDS r,m LES r,m XLAT(XLATB) 功能: 查表指令 语法: XLAT XLAT m 算数运算指令 ADD,ADC 功能: 加法指令 语法: ADD OP1,OP2 ADC OP1,OP2 格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data 影响标志: C,P,A,Z,S,O SUB,SBB 功能:减法指令 语法: SUB OP1,OP2 SBB OP1,OP2 格式: SUB r1,r2 SUB r,m SUB m,r SUB r,data SUB m,data 影响标志: C,P,A,Z,S,O

INC,DEC 功能: 把OP的值加一或减一 语法: INC OP DEC OP 格式: INC r/m DEC r/m 影响标志: P,A,Z,S,O NEG 功能: 将OP的符号反相(取二进制补码) 语法: NEG OP 格式: NEG r/m 影响标志: C,P,A,Z,S,O MUL,IMUL 功能: 乘法指令 语法: MUL OP IMUL OP 格式: MUL r/m IMUL r/m 影响标志: C,P,A,Z,S,O(仅IMUL会影响S标志) DIV,IDIV 功能:除法指令 语法: DIV OP IDIV OP 格式: DIV r/m IDIV r/m CBW,CWD 功能: 有符号数扩展指令 语法: CBW CWD AAA,AAS,AAM,AAD 功能: 非压BCD码运算调整指令 语法: AAA AAS AAM AAD 影响标志: A,C(AAA,AAS) S,Z,P(AAM,AAD) DAA,DAS 功能: 压缩BCD码调整指令 语法: DAA DAS 影响标志: C,P,A,Z,S 位运算指令集 AND,OR,XOR,NOT,TEST 功能: 执行BIT与BIT之间的逻辑运算 语法: AND r/m,r/m/data OR r/m,r/m/data XOR r/m,r/m/data TEST r/m,r/m/data NOT r/m 影响标志: C,O,P,Z,S(其中C与O两个标志会被设为0) NOT指令不影响任何标志位 SHR,SHL,SAR,SAL 功能: 移位指令 语法: SHR r/m,data/CL SHL r/m,data/CL SAR r/m,data/CL SAL r/m,data/CL

(整理)广州数控指令代码大全

广州数控指令代码大全 2011-01-31 02:13 GSK980TA/D编程教材 《一》编程的基本概念 《二》常用G代码介绍 《三》单一固定循环 《四》复合型固定循环 《五》用户宏程序 《六》螺纹加工 《七》T代码及刀补 《八》F代码及G98、G99 《九》S代码及G96、G97 (注意:本教材仅供学习参考,实际操作编程时应以广数 GSK980T车床数控系统使用手册为准)2007年9月 《一》编程的基本概念: 一个完整的车床加工程序一般用于在一次装夹中按工艺要求完成对工件的加工,数控程序包括程序号、程序段。 (一)程序号:相当于程序名称,系统通过程序号可从存储器中多个程序中识别所要处理的程序,程序号由字母O及4位数字组成。

(二)程序段:相当于一句程序语句,由若干个字段组成,最后是一个分号(;)录入时在键入EOB键后自动加上。整个程序由若干个程序段构成,一个程序段用来完成刀具的一个或一组动作,或实现机床的一些功能。 (三)字段(或称为字):由称为“地址”的单个英语字母加若干位数字组成。根据其功能可分成以下几种类型的字段: ▲程序段号:由字母N及数字组成,位于程序段最前面,主要作用是使程序便于阅读,可以省略,但某些特殊程序段(如表示跳转指令的目标程序段)必须标明程序段号。 为了便于修改程序时插入新程序段,各句程序段号一般可间隔一些数字(如N0010、N0020、N0030)。 ▲准备功能:即G代码,由字母G及二位数字组成,大多数G 代码用以指示刀具的运动。(如G00、G01、G02) ▲表示尺寸(坐标值)的字段:一般用在G代码字段的后面,为表示运动的G代码提供坐标数据,由一个字母与坐标值(整数或小数)组成。字母包括: 表示绝对坐标:X、Y、Z 表示相对坐标:U、V、W 表示园心坐标:I、 J、 K (车床实际使用的坐标只有X、Z,所以Y、V、J都用不着) ▼表示进给量的字段:用字母F加进给量值组成,一般用在插补指令的程序段中,规定了插补运动的速度。

常用8086汇编指令(彩色版)

8086/8088指令系统 一、数据传送指令 1.通用数据传送指令 MOV(Move)传送 PUSH(Push onto the stack)进栈 POP(Pop from the stack)出栈 XCHG(Exchange)交换 .MOV指令 格式为:MOV DST,SRC 执行的操作:(DST)<-(SRC) .PUSH进栈指令 格式为:PUSH SRC 执行的操作:(SP)<-(SP)-2 ((SP)+1,(SP))<-(SRC) .POP出栈指令 格式为:POP DST 执行的操作:(DST)<-((SP+1),(SP)) (SP)<-(SP)+2 .XCHG交换指令 格式为:XCHG OPR1,OPR2 执行的操作:(OPR1)<-->(OPR2) 2.累加器专用传送指令 IN(Input)输入 OUT(Output)输出 XLAT(Translate)换码 这组指令只限于使用累加器AX或AL传送信息. .IN输入指令 长格式为:IN AL,PORT(字节) IN AX,PORT(字) 执行的操作:(AL)<-(PORT)(字节) (AX)<-(PORT+1,PORT)(字) 短格式为:IN AL,DX(字节) IN AX,DX(字) 执行的操作:AL<-((DX))(字节) AX<-((DX)+1,DX)(字) .OUT输出指令 长格式为:OUT PORT,AL(字节) OUT PORT,AX(字)

执行的操作:(PORT)<-(AL)(字节) (PORT+1,PORT)<-(AX)(字) 短格式为:OUT DX,AL(字节) OUT DX,AX(字) 执行的操作:((DX))<-(AL)(字节) ((DX)+1,(DX))<-AX(字) 在IBM-PC机里,外部设备最多可有65536个I/O端口,端口(即外设的端口地址)为0000~FFFFH.其中前256个端口(0~FFH)可以直接在指令中指定,这就是长格式中的PORT,此时机器指令用二个字节表示,第二个字节就是端口号.所以用长格式时可以在指定中直接指定端口号,但只限于前256个端口.当端口号>=256时,只能使用短格式,此时,必须先把端口号放到DX寄存器中(端口号可以从0000到0FFFFH),然后再用IN或OUT指令来传送信息. .XLAT换码指令 格式为:XLAT OPR 或:XLAT 执行的操作:(AL)<-((BX)+(AL)) 3.有效地址送寄存器指令 LEA(Load effective address)有效地址送寄存器 LDS(Load DS with Pointer)指针送寄存器和DS LES(Load ES with Pointer)指针送寄存器和ES .LEA有效地址送寄存器 格式为:LEA REG,SRC 执行的操作:(REG)<-SRC 指令把源操作数的有效地址送到指定的寄存器中. .LDS指针送寄存器和DS指令 格式为:LDS REG,SRC 执行的操作:(REG)<-(SRC) (DS)<-(SRC+2) 把源操作数指定的4个相继字节送到由指令指定的寄存器及DS寄存器中.该指令常指定SI寄存器. .LES指针送寄存器和ES指令 格式为:LES REG,SRC 执行的操作:(REG)<-(SRC) (ES)<-(SRC+2) 把源操作数指定的4个相继字节送到由指令指定的寄存器及ES寄存器中.该指令常指定DI寄存器. 4.标志寄存器传送指令 LAHF(Load AH with flags)标志送AH SAHF(store AH into flags)AH送标志寄存器 PUSHF(push the flags)标志进栈 POPF(pop the flags)标志出栈 .LAHF标志送AH

8086汇编指令表

8086汇编指令表

MOV MOV DST,SRC DST≠CS、IP和imm 不影响 标志位 MOV [9AF0H],AL MOVS MOVS mem, mem MOVSB/W 不影响 标志位 字符串传送ES:DI←(DS:SI) SI←(SI)(+/-)1 DI←(DI)(+/-)1 MOVS ES:BYTE PTR[DI], DS:[SI] MUL MUL r/m8 设置CF OF S Z A P无法预 测 无符号乘法:AX←AL*r/m8 MUL CL MUL r/m16 无符号乘法:DX:AX←AX*r/m16 MUL CX NEG NEG reg/mem CF OF SF ZF AF PF 求补:取反加一 0-(DST) NEG CL NOP NOP 不影响空操作NOP NOT NOT reg/mem 不影响按位取反NOT CL OR 同AND PF SF ZF CF=OF=0 逻辑或 OR AL,0FH (不变\置1) OUT OUT imm8,AL/AX/EAX 不影响 标志位 将AL/AX/EAX输出到imm8指定端 口 OUT 0FFH,AL OUT DX,AL/AX/EAX 将AL/AX/EAX输出到DX指定的端口OUT DX,AL POP POP DST DST!=imm & CS 不影响 标志位 DST←((SP)+1,(SP)) SP←(SP)+2 POP WORD Ptr [87EAH] POPF POPF 设置所有标志位从堆栈中弹出16位标志寄存器POPF PUSH PUSH SRC 8086 SRC!=imm 不影响 标志位 SP<--(SP)-2 ((SP)+1,(SP))←(SRC) [SP循 环] PUSH WORD Ptr [87EAH] PUSHF PUSHF 不影响压栈16位标志寄存器PUSHF RCL 同SHL 同ROL 带进位循环左移 RCL AL,1 RCR 同SHL 同ROL 带进位循环右移 RCR AL,1 ROL 同SHL 移一位后符号位 改变则OF=1 循环左移: ROL AL,1 ROR 同SHL 同ROL 循环右移: ROR AL,1 REP REP String operation 不影响 标志位 CX=0则终止---CX←(CX)-1 ---串操作---SI/DI增量 REPZ REPE REPE String operation AF CF OF PF SF ZF CX=0||ZF=0则终止 ---CX←(CX)-1 ---串比较---SI/DI增量 REPNZ REPNE REPNE String operation AF CF OF PF SF ZF CX=0||ZF=1则终止--- CX←(CX)-1 ---串比较---SI/DI增量 RET RET 恢复压栈标志位 POP IP[CS] 子过程返回(Near)/(Far) RET RET imm16 子过程返回后SP←(SP)+imm16 RET 08

汇编指令大全

ORG 0000H NOP ;空操作指令 AJMP L0003 ;绝对转移指令 L0003: LJMP L0006 ;长调用指令 L0006: RR A ;累加器A内容右移(先置A为88H) INC A ; 累加器A 内容加1 INC 01H ;直接地址(字节01H)内容加1 INC @R0 ; R0的内容(为地址) 的内容即间接RAM加1 ;(设R0=02H,02H=03H,单步执行后02H=04H) INC @R1 ; R1的内容(为地址) 的内容即间接RAM加1 ;(设R1=02H,02H=03H,单步执行后02H=04H) INC R0 ; R0的内容加1 (设R0为00H,单步执行后查R0内容为多少) INC R1 ; R1的内容加1(设R1为01H,单步执行后查R1内容为多少) INC R2 ; R2的内容加1 (设R2为02H,单步执行后查R2内容为多少) INC R3 ; R3的内容加1(设R3为03H,单步执行后查R3内容为多少) INC R4 ; R4的内容加1(设R4为04H,单步执行后查R4内容为多少) INC R5 ; R5的内容加1(设R5为05H,单步执行后查R5内容为多少) INC R6 ; R6的内容加1(设R6为06H,单步执行后查R6内容为多少) INC R7 ; R7的内容加1(设R7为07H,单步执行后查R7内容为多少) JBC 20H,L0017; 如果位(如20H,即24H的0位)为1,则转移并清0该位L0017: ACALL S0019 ;绝对调用 S0019: LCALL S001C ;长调用 S001C: RRC A ;累加器A的内容带进位位右移(设A=11H,C=0 ;单步执行后查A和C内容为多少) DEC A ;A的内容减1 DEC 01H ;直接地址(01H)内容减1 DEC @R0 ;R0间址减1,即R0的内容为地址,该地址的内容减1 DEC @R1 ; R1间址减1 DEC R0 ; R0内容减1 DEC R1 ; R1内容减1 DEC R2 ; R2内容减1 DEC R3 ; R3内容减1 DEC R4 ; R4内容减1 DEC R5 ; R5内容减1 DEC R6 ; R6内容减1 DEC R7 ; R7内容减1 JB 20H,L002D;如果位(20H,即24H的0位)为1则转移 L002D: AJMP L0017 ;绝对转移 RET ;子程序返回指令 RL A ;A左移 ADD A,#01H ;A的内容与立即数(01H)相加 ADD A,01H ; A的内容与直接地址(01H内容)相加 ADD A,@R0 ; A的内容与寄存器R0的间址内容相加 ADD A,@R1 ; A的内容与寄存器R1的间址内容相加

一些常用的汇编语言指令

汇编语言常用指令 大家在做免杀或者破解软件的时候经常要用到汇编指令,本人整理出了常用的 希望对大家有帮助! 数据传送指令 MOV:寄存器之间传送注意,源和目的不能同时是段寄存器;代码段寄存器CS不能作为目的;指令指针IP不能作为源和目的。立即数不能直接传送段寄存器。源和目的操作数类型要一致;除了串操作指令外,源和目的不能同时是存储器操作数。 XCHG交换指令:操作数可以是通用寄存器和存储单元,但不包括段寄存器,也不能同时是存储单元,还不能有立即数。 LEA 16位寄存器存储器操作数传送有效地址指令:必须是一个16位寄存器和存储器操作数。 LDS 16位寄存器存储器操作数传送存储器操作数32位地址,它的16位偏移地址送16位寄存器,16位段基值送入DS中。 LES :同上,只是16位段基址送ES中。 堆栈操作指令 PUSH 操作数,操作数不能使用立即数, POP 操作数,操作数不能是CS和立即数 标志操作指令 LAHF:把标志寄存器低8位,符号SF,零ZF,辅助进位AF,奇偶PF,进位CF传送到AH 指定的位。不影响标志位。 SAHF:与上相反,把AH中的标志位传送回标志寄存器。 PUSHF:把标志寄存器内容压入栈顶。 POPF:把栈顶的一个字节传送到标志寄存器中。 CLC:进位位清零。 STC:进位位为1。 CMC:进位位取反。 CLD:使方向标志DF为零,在执行串操作中,使地址按递增方式变化。 STD:DF为1。 CLI:清中断允许标志IF。Cpu不相应来自外部装置的可屏蔽中断。 STI:IF为1。 加减运算指令

注意:对于此类运算只有通用寄存器和存储单元可以存放运算结果。如果参与运算的操作数有两个,最多只能有一个存储器操作数并且它们的类型必须一致。 ADD。 ADC:把进位CF中的数值加上去。 INC:加1指令 SUB。 SBB:把进位CF中数值减去。 DEC:减1指令。 NEG 操作数:取补指令,即用0减去操作数再送回操作数。 CMP:比较指令,完成操作数1减去操作数2,结果不送操作数1,但影响标志位。可根据ZF(零)是否被置1判断相等;如果两者是无符号数,可根据CF判断大小;如果两者是有符号数,要根据SF和OF判断大小。 乘除运算指令 MUL 操作数:无符号数乘法指令。操作数不能是立即数。操作数是字节与AL中的无符号数相乘,16位结果送AX中。若字节,则与AX乘,结果高16送DX,低16送AX。如乘积高半部分不为零,则CF、OF为1,否则为0。所以CF和OF表示AH或DX中含有结果的有效数。IMUL 操作数:有符号数乘法指令。基本与MUL相同。 DIV 操作数:被除数是在AX(除数8位)或者DX和AX(除数16位),操作数不能是立即数。如果除数是0,或者在8(16)位除数时商超过8(16)位,则认为是溢出,引起0号中断。IDIV:有符号除法指令,当除数为0,活着商太大,太小(字节超过127,-127字超过32767,-32767)时,引起0号中断。 符号扩展指令 CBW,CWD:把AL中的符号扩展到寄存器AH中,不影响各标志位。CWD则把AX中的符号扩展到DX,同样不影响标志位。注意:在无符号数除之前,不宜用这两条指令,一般采用XOR 清高8位或高16位。 逻辑运算指令与位移指令 注意:只能有一个存储器操作数;只有通用寄存器或存储器操作数可作为目的操作数,用于存放结果;操作数的类型必须一致。 NOT:取反,不影响标志位。 AND 操作数1 操作数2:操作结果送错作数1,标志CF(进位)、OF(溢出)清0,PF(奇偶)ZF(0标志) SF(符号)反映运算结果,AF(辅助进位)未定义。自己与自己AND值不变,她主要用于将操作数中与1相与的位保持不变,与0相与清0。(都为1时为1)OR 操作数1 操作数2:自己与自己OR值不变,CF(进位)、OF(溢出)清0,PF(奇偶)ZF(0标志)SF(符号)反映运算结果,AF(辅助进位)未定义。她使用于将若干位置1:

相关文档
最新文档