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

 -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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值