常用汇编指令(备忘)

1 取补指令NEG(NEGate)

    32位汇编指令格式:
    NEG OPRD

    32位汇编指令功能:
    本指令用来对操作数OPRD进行取补操作,然后将结果送回OPRD.取补操作也叫作求补操作,就是求一个数的相反数的补码.

   32位汇编指令说明:
       1. OPRD为任意通用寄存器或存储器操作数.
       2. 示例:(AL)=44H,取补后,(AL)=0BCH(-44H).
       3. 本指令影响标志位CF、OF、SF、PF、ZF

   说明:取补与取补码不同。

2 无符号数乘法指令MUL(MULtiply)

32位汇编指令格式:
MUL OPRD

32位汇编指令功能:
OPRD为源操作数,即作乘数;目的操作数是隐含的,即被乘数总是指定为累加器AX或AL的内容.16位乘法时,AX中为被乘数;8位乘法时,AL为被乘数.当16位乘法时,32位的乘积存于DX及AX中;8位乘法的16位乘积存于AX中.

32位汇编指令说明:
1. OPRD为通用寄存器或存储器操作数.
2. 操作过程
字节相乘:(AX)<--(AL)*OPRD,当结果的高位字节(AH)不等于0时,则CF=1、OF=1.
字相乘: (DX)(AX)<--(AX)*OPRD,当(DX)不等于0时,则CF=1、OF=1.
示例:MUL BETA[BX]
MUL DI
MUL BYTE PTR ALFA
3. 本指令影响标志位CF及OF.
例如:设在W1和W2字单元中各有一个16位数,若求其乘积并存于W3开始的字单元中,可用以下指令组实现:
MOV AX,W1
MUL W2
MOV W3,AX
MOV W3+2,DX

3 测试指令TEST

32位汇编指令格式:
TEST OPRD1,OPRD2

32位汇编指令功能:
其中OPRD1、OPRD2的含义同AND指令一样,也是对两个操作数进行按位的‘与’运算,唯一不同之处是不将‘与’的结果送目的操作数,即本指令对两个操作数的内容均不进行修改,仅是在逻辑与操作后,对标志位重新置位.

32位汇编指令说明:
TEST与AND指令的关系,有点类似于CMP与SUB指令之间的关系.

 

 

 

 

 

 

参考:http://www.feiesoft.com/cmd/win32asm/index1.html

 

 

 

你可能感兴趣的:(汇编,测试,存储,byte)