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

逆向汇编与反汇编——基本数据类型_第1张图片

 -1:0xFFFFFFFF

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

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

逆向汇编与反汇编——基本数据类型_第2张图片

 逆向汇编与反汇编——基本数据类型_第3张图片

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

小端模式验证:78 78

逆向汇编与反汇编——基本数据类型_第4张图片

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

逆向汇编与反汇编——基本数据类型_第5张图片

使用科学计数法:

10.25=1.025*10^1

101.01=1.0101*2^2

规定最高位不能为0

阶码:存放多少次幂

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

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

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

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

逆向汇编与反汇编——基本数据类型_第6张图片

 逆向汇编与反汇编——基本数据类型_第7张图片

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

逆向汇编与反汇编——基本数据类型_第8张图片

验证:

逆向汇编与反汇编——基本数据类型_第9张图片

逆向汇编与反汇编——基本数据类型_第10张图片

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

逆向汇编与反汇编——基本数据类型_第11张图片

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

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

逆向汇编与反汇编——基本数据类型_第12张图片

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

实现浮点数的传参:

逆向汇编与反汇编——基本数据类型_第13张图片

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

逆向汇编与反汇编——基本数据类型_第14张图片

long的低32位是int

你可能感兴趣的:(逆向学习,汇编,windows,c语言)