知识点:
浮点数的存放方式
st0至st7
FLD,FST,FADD指令一、浮点数的存放方式
00401000  /$  55            PUSH EBP
00401001  |.  8BEC          MOV EBP,ESP
00401003  |.  51            PUSH ECX                                 ;  float f;
00401004  |.  D905 F0204000 FLD DWORD PTR DS:[4020F0]                ;  8.765
0040100A  |.  D95D FC       FSTP DWORD PTR SS:[EBP-4]
0040100D  |.  D945 FC       FLD DWORD PTR SS:[EBP-4]
00401010  |.  DC05 E8204000  FADD QWORD PTR DS:[4020E8]               ;  1.0
00401016  |.  D95D FC       FSTP DWORD PTR SS:[EBP-4]                ;  f=9.765
00401019  |.  33C0          XOR EAX,EAX
0040101B  |.  8BE5          MOV ESP,EBP
0040101D  |.  5D            POP EBP
0040101E  \.  C3            RETN二、st0至st7 浮点寄存器
三 FLD,FSTP,FADD指令
1.FLD类似于   PUSH指令
2.FSTP类似于  POP指令
3.FADD类似于  ADD指令
4.FCOM、FCOMP、FCOMPP、FICOM、FICOMP 比较指令(至于 FCOMP 和 FCOMPP 分别是比较后弹出一次和弹出两次,这里弹出的数会丢失而不会存入内存中,这点和 FSTP 不同。而 FICOM 和 FICOMP 是用来比较整数的)
5.FILD:把整数型转换成长双精,然后保存进ST0-9(汇编语言的指令 fild是一种计算机处理器指令~ fild和fstp都是x87指令 fild是将整数转化为长双精FP80压栈(压到st0) fstp是将弹栈指令,将st0弹出)
6.fidiv:讲ST0值除以操作数后保存进ST0(fidiv dword ptr ss:[ebp-0x4] ; sto/[ebp-0x4])
7.fsubp st(1),st:st(1)-st并保存在st(0)中
8.fimul:st(0)乘以操作数 保存进ST(0)
9.fmul:st(0)乘以操作数 保存进ST(0)
10.设置标志指令SAHF
格式:SAHF
功能:将AH的内容送给标志寄存器搜索的低八位
直接就是指令格式
 
 
(文章今日已有 1 人访问,总访问量 10 ::>_<::)