32位汇编基础

来源:互联网 发布:java培训大概要多少钱 编辑:程序博客网 时间:2024/04/29 22:11
EAX 是Win32 API默认返回值存放处
ECX 是计数寄存器,可用于计算loop的循环次数
ESP 是堆栈指针
EBP 通常用来作为子程序局部变量指针
ESI 用于存放存储单元在段内的偏移量


mov ax,word prt[ebp-06]
将一个2字节的内存地址送入ax中
lea 寄存器,[ ]
装入有效地址,将一个存储单元的有效地址传送到目的操作数,举例:lea eax,[ebp-4c]
adc 操作对象1,操作对象2
功能:操作对象1=操作对象1+操作对象2+CF
sbb 操作对象1,操作对象2
功能:操作对象1=操作对象1-操作对象2-CF
inc
功能:++
dec
功能:--
cmp 操作对象1,操作对象2
功能:计算操作对象1-操作对象2,不会保存计算结果,但会改变相关标志寄存器的值


逻辑运算指令
and
or
xor
test


程序转移指令
call
retn/retf
je
jne
jb
jnb
ja
jna


leave


标志寄存器
ZF ZF标志位记录相关指令执行后,其结果是否为0。如果为0,那么ZF=1,如果结果不为0,那么ZF=0
PF PF标志是奇偶标志位,相关指令执行后,其结果的所有bit位中1的个数是否为偶数。如果1的个数为偶数,PF=1,如果为奇数,那么PF=0
SF SF是符号标志位,相关指令执行后,其结果是否为负。如果加过为负,SF=1;如果非负,SF=0
CF CF是进位标志位,在进行无符号数运算的时候,它记录了运算结果的最高有效位向更高的进位值,或从更高位的借位值。
原创粉丝点击