逆向汇编与反汇编——基本数据类型

 -1:0xFFFFFFFF

为什么内存使用补码来存储数据?

》因为CPU的设计只有加法器,没有减法,需要使用补码来实现减法

 

大端:数值的高位放到内存的低字节

小端模式验证:78 78

 浮点型:单精度float和双精度double,扩展精度(long long等)

使用科学计数法:

10.25=1.025*10^1

101.01=1.0101*2^2

规定最高位不能为0

阶码:存放多少次幂

阶符:1/0:次幂的+/-

数符:1/0:整个数的+/- 

十进制转换为二进制要把整数部分和小数部分分开转换 

小数:✖2取整。整数部分:➗2取余

 

解码<127的就是负数,>就是正数,所以127相当于0 

验证:

所以浮点数据寄存器有时候也被成为浮点数据栈 

ld就是load的意思,st是store的意思,p是pop的意思,com>compare,tst>test

fild dword ptr [ebp-4],就是把这个地址的数保存到st(0)

 32位可以先取到寄存器eax,然后再压栈,浮点数

实现浮点数的传参:

浮点转换函数__ftol:fistp qdword otr [ebp-0ch] ,将浮点数先转化成long,然后再取long的低32位就是int

long的低32位是int

猜你喜欢

转载自blog.csdn.net/Tandy12356_/article/details/130918622