常用汇编指令

2020-03-29  本文已影响0人  欧皇ff
指令 注释
r 通用寄存器
m 内存
imm 立即数
r8 8位通用寄存器
m8 8位内存
imm8 8位立即数
MOV 指令格式: 赋值指令
// 寄存器赋值到 寄存器或内存
// 举例:
// mov al,cl 
// mov byte ptr ds:[12fff0],al
MOV r/m8,r8   
// mov ax,cx
// mov word ptr ds:[12ffcc],ax
MOV r/m16,r16
//mov eax,ecx
//mov dword ptr ds:[12ffcc],eax
MOV r/m32,r32

//寄存器或内存 赋值到 寄存器
//mov al,byte ptr ds:[12ffe0]
MOV r8,r/m8
//mov ax,word ptr ds:[12ffe0]
MOV r16,r/m16
MOV r32,r.m32

//寄存器 赋值 立即数
MOV r8,imm8
MOV r16,imm16
MOV r32,imm32

ADD 指令格式:加指令
//寄存器或内存 加 立即数 结果保存到 寄存器或内存
//例子:
//add al, cl
//add ax, word ptr ds:[12fff0]
add r/m8,imm8
add r/m16,imm16
add r/m32,imm32
//寄存器或内存 加 寄存器 结果保存到 寄存器或内存
add r/m8,r8
add r/m16,r16
add r/m32,r32
//寄存器 加 寄存器或内存 结果保存到 寄存器
add r8,r/m8
add r16,r/m16
add r32,r/m32
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
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

思考:0x0000 0001 AND 0x0000 0002 = ?
1 = 0001
2 = 0010
AND
0 = 0000
故输出 0x0000 0000

OR指令格式: 或 指令
OR r/m8, imm8
OR r/m16,imm16 
OR r/m32,imm32 
OR r/m16, imm8 
OR r/m32, 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

思考:0x0000 0001 OR 0x0000 0002 = ?
1 = 0001
2 = 0010
OR
3 = 0011
故输出 0x0000 0003

XOR指令格式:异或 指令
XOR r/m8, imm8 
XOR r/m16,imm16 
XOR r/m32,imm32 
XOR r/m16, imm8 
XOR r/m32, imm8 
XOR r/m8, r8 
XOR r/m16, r16 
XOR r/m32, r32 
XOR r8, r/m8 
XOR r16, r/m16 
XOR r32, r/m32
1.思考:0x0000 0003 XOR 0x0000 0002 = ?

3 = 0011
2 = 0010
XOR
1 = 0001
故输出 0x0000 0001

2.思考: 0x0000 0001 XOR 0x0000 0002 = ?

试写出结果。
答案:0x0000 0003

NOT指令格式: 非 指令
NOT r/m8 
NOT r/m16 
NOT r/m32

思考:NOT 0x0000 0000 = ?
答案:0xFFFFFFFF

上一篇下一篇

猜你喜欢

热点阅读