0x01:前言
有关整数的运算在汇编中很常见,这次机缘巧合遇见了浮点数的相关运算,确实懵了一下,不过还是觉得很有必要总结一下相关知识点,下面借助一个ctf题,简单了解浮点数的相关知识。
0x02:代码参考
下面代码是直接从ida中拷贝出来的,很多汇编语句就不一一介绍了,把其中浮点数相关着重解释一下。
.call near ptr 48CACDh
.text:00401267 xor ax, 7
.text:0040126B movsx eax, byte ptr [ebp-1Ah]
.text:0040126F sub eax, ecx
.text:00401271 mov [ebp-4], eax
.text:00401274 movsx eax, byte ptr [ebp-1Ch]
.text:00401278 fild dword ptr [ebp-4]
这部分代码理解起来就一些异或以及寄存器操作就不详解了fild 浮点数相关汇编指令是将整数转化为长双精FP80压栈(压到st0)
.text:0040127B sub eax, ecx
.text:0040127D mov