谁能帮我详细解释下下面这段汇编是什么意思
- Assembly code
004013EE push %ebp004013EF mov %esp,%ebp004013F1 sub $0x18,%esp004013F4 and $0xfffffff0,%esp004013F7 mov $0x0,%eax004013FC add $0xf,%eax004013FF add $0xf,%eax00401402 shr $0x4,%eax00401405 shl $0x4,%eax00401408 mov %eax,-0x14(%ebp)0040140B mov -0x14(%ebp),%eax0040140E call 0x40d104 <_alloca>00401413 call 0x40cc84 <__main>00401418 movl $0xa,-0x4(%ebp)0040141F fildl -0x4(%ebp)00401422 fstpl -0x10(%ebp)00401425 mov $0x0,%eax0040142A leave0040142B ret
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
fildl -0x4(%ebp)
fstpl -0x10(%ebp)
fildl和fstpl应该是80387以后的指令(80387汇编指令未发现),fildl是向st(即浮点数操作堆栈,深度一般为8)栈顶放置一个长(最后一个l)整数(标志i),其值是[ebp-4]单元,若是fld则是装入一个浮点数。
同理,fstpl就是从栈顶弹出一个长整型数,放置在[ebp-10h]这个地方。