关于浮点运算的一点补充 (1千字)
关于浮点运算的一点补充㈠ 关于协处理器指令
数值运算协处理器和处理器(现在的CPU都内置协处理器)共同监视着指令流,
如果是数值运算协处理器指令则由协处理器执行,如果不是协处理器指令,则由处
理器执行.
㈡ 关于ST(0)、ST(1)、...ST(n)
ST(n)为堆栈寄存器,也叫做浮点寄存器. 运算结果及出栈,入栈都是对ST(n)的
操作.这也正是用TRW2000等调试工具代过浮点运算指令时看不到动静的原因.因为
用TRW2000代过浮点运算指令时,浮点运算的结果在堆栈寄存器,出栈入栈也是对堆
栈寄存器操作,所以在TRW2000的寄存器窗口中看不出变化.
㈢ 关于指令中的P、R、I。
① 命令后面加上字母P,则表示该指令执行完后再进行一次堆栈寄存器弹出操作,
如:FADD和FADDP .
② 命令后面加上字母R,表示该命令是反向模式。如:FDIV 和 FDIVR
③ 命令中第二个字母是I,表示以整数操作。如:FLD 和 FILD
㈣ 浮点数的阶码部分为偏移阶码.
① 32位长浮点数用 7FH 为偏移
② 64位长浮点数用 3FFH 为偏移
③ 80位长浮点数用 3FFFH 为偏移
㈤ 关于协处理器与处理器之间的数据交换
指令 FSTSW AX 可以直接将状态寄存器的内容复制到AX.
另外 FSTSW指令可以将状态寄存器的内容复制到内存
㈥ 关于标记寄存器
每个协处理器堆栈寄存器对应一个标记寄存器,来标明堆栈寄存器中的内容.它标
明了堆栈中的各数是合法还是非法,是无穷还是为0或空.
00=合法
01=0
10=非法或无穷
11=空
㈦ 关于指令系统
在《加密与解密--软件保护技术及完全解决方案》一书的附录部分,有浮点指令小结,
在352页,指令很全, 而且附带了一个例子。
好了,先写这么些吧
破解勇[CCG]
