软件破解系列教程-第四节浮点指令


软件破解系列教程-第四节 浮点指令

对下面的指令先做一些说明:
st(i):代表浮点寄存器,所说的出栈、入栈操作都是对st(i)的影响
src,dst,dest,op等都是指指令的操作数,src表示源操作数,dst/dest表示目的操作数
mem8,mem16,mem32,mem64,mem80等表示是内存操作数,后面的数值表示该操作数的内存位数(8位为一字节)
x <- y 表示将y的值放入x,例st(0) <- st(0) - st(1)表示将st(0)-st(1)的值放入浮点寄存器st(0)
1. 数据传递和对常量的操作指令
指令格式
指令含义
执行的操作
FLD src
装入实数到st(0)
st(0) <- src (mem32/mem64/mem80)
FILD src
装入整数到st(0)
st(0) <- src (mem16/mem32/mem64)
FBLD src 
装入BCD数到st(0)
st(0) <- src (mem80)
 
FLDZ
将0.0装入st(0)
st(0) <- 0.0
FLD1
将1.0装入st(0)
st(0) <- 1.0
FLDPI
将pi装入st(0)
st(0) <- ?(ie, pi)
FLDL2T
将log2(10)装入st(0)
st(0) <- log2(10)
FLDL2E
将log2(e)装入st(0)
st(0) <- log2(e)
FLDLG2
将log10(2)装入st(0)
st(0) <- log10(2)
FLDLN2
将loge(2)装入st(0)
st(0) <- loge(2)
 
FST dest
保存实数st(0)到dest
dest <- st(0) (mem32/mem64)
FSTP dest
 
dest <- st(0) (mem32/mem64/mem80);然后再执行一次出栈操作
FIST dest
将st(0)以整数保存到dest
dest <- st(0) (mem32/mem64)
FISTP dest
 
dest <- st(0) (mem16/mem32/mem64);然后再执行一次出栈操作
FBST dest
将st(0)以BCD保存到dest
dest <- st(0) (mem80)
FBSTP dest 
 
dest<- st(0) (mem80);然后再执行一次出栈操作
2.比较指令
指令格式
指令含义
执行的操作
FCOM
实数比较
将标志位设置为 st(0) - st(1) 的结果标志位
FCOM op
实数比较
将标志位设置为 st(0) - op (mem32/mem64)的结果标志位
 
FICOM op
和整数比较
将Flags值设置为st(0)-op 的结果op (mem16/mem32)
FICOMP op
和整数比较
将st(0)和op比较 op(mem16/mem32)后;再执行一次出栈操作
 
FTST 
零检测 
将st(0)和0.0比较
FUCOM st(i) 
 
比较st(0) 和st(i)                  [486]
FUCOMP st(i)      
 
比较st(0) 和st(i),并且执行一次出栈操作
FUCOMPP st(i)    
 
比较st(0) 和st(i),并且执行两次出栈操作
FXAM  
 
Examine: Eyeball st(0) (set condition codes)

| 本站声明 | 关于我们 | 广告服务 |
注册码错误网站,提供大量注册码-序列号-SN-CDKEY-KEYGEN-注册机-破解补丁-破解教程,使用前请查看声明
© 2006-2008 注册码大全网站-征友情链接reg99#126.com-京ICP备07023817号-