通用寄存器学习

滴水逆向视频笔记:

符号 含义
r 寄存器
m 内存
imm 立即数
r8 8位通用寄存器
m8 8位内存
imm8 8位立即数

# MOV指令
MOV 目标操作数,源操作数

    MOV  r/m8,r8
    MOV  r/m16,r16
    MOV  r/m32,r32
    MOV  r8,r/m8
    MOV  r16,r/m16
    MOV  r32,r/m32
    MOV r8,  imm8
    MOV r16,  imm16
    MOV r32,  imm32

作用:拷贝源操作数到目标操作数
    源操作数可以是立即数、通用寄存器、段寄存器、或者内存单元
    目标操作数可以是通用寄存器、段寄存器或者内存单元
    操作数的宽度必须一样
    源操作数和目标操作数不能同时为内存单元

# ADD指令

    ADD r/m8,  imm8
    ADD  r/m16,imm16
    ADD  r/m32,imm32
    ADD r/m16,  imm8
    ADD r/m32,  imm8
    ADD r/m8,  r8
    ADD r/m16,  r16
    ADD r/m32,  r32
    ADD r8,  r/m8
    ADD r16,  r/m16
    ADD r32,  r/m32
    
 MOV eax,1
 add eax,2 eax值最后为3

ADD 目标操作数,源操作数
作用:将源操作数加到目标操作数上

#SUB指令
SUB 的语法:

    SUB r/m8, imm8
    SUB r/m16,imm16
    SUB r/m32,imm32
    SUB r/m16, imm8
    SUB r/m32, imm8
    SUB r/m8, r8
    SUB r/m16, r16
    SUB r/m32, r32
    SUB r8, r/m8
    SUB r16, r/m16
    SUB r32, r/m32

SUB 目标操作数,源操作数
作用:将源操作数减到目标操作数上

#AND指令

AND 的语法:

    AND r/m8, imm8
    AND r/m16,imm16
    AND r/m32,imm32
    AND r/m16, imm8
    AND r/m32, imm8
    AND r/m8, r8
    AND r/m16, r16
    AND r/m32, r32
    AND r8, r/m8
    AND r16, r/m16
    AND r32, r/m32

AND 目标操作数,源操作数
作用:将源操作数与目标操作数与运算后将结果保存到目标操作数中
 mov eax, 2
 add EAX, 3
 2 的二进制 0010  3的二进制0011 
 0010 and 0011 值为2
  

#OR指令

OR 的语法:

    OR r/m8, imm8
    OR r/m16,imm16
    OR r/m32,imm32
    OR r/m16, imm8
    OR r/m8, r8
    OR r/m16, r16
    OR r/m32, r32
    OR r8, r/m8
    OR r16, r/m16
    OR r32, r/m32

OR 目标操作数,源操作数
作用:将源操作数与目标操作数或运算后将结果保存到目标操作数中

 mov eax, 2
 OR EAX, 3 
 0010 | 0011 结果为3

#XOR指令
XOR 的语法:

    XOR r/m8, imm8
    XOR r/m16,imm16
    XOR r/m32,imm32
    XOR r/m16, imm8
    XOR r/m8, r8
    XOR r/m32, r32
    XOR r8, r/m8
    XOR r16, r/m16
    XOR r32, r/m32

XOR 目标操作数,源操作数
作用:将源操作数与目标操作数异或运算后将结果保存到目标操作数中

mov eax, 2
xor EAX, 3 
0010 XOR 0011 结果为0001 结果为1

#NOT指令

NOT 的语法:

NOT r/m8

NOT r/m16

NOT r/m32

NOT 操作数

作用:取反

mov eax, 2
NOT EAX

2的二进制0010 取反1101 1101的值为 D

上一篇
内存寻址
下一篇
域渗透-PTH
发表评论 / Comment

用心评论~