逆向-数据宽度与逻辑运算

来源:互联网 发布:little mac 唇膏 编辑:程序博客网 时间:2024/05/17 06:52

本学习过程参考滴水逆向第三期视频
[toc]

数据宽度

  • 数学上的数字,是没有大小限制的,可以无限大。但是在计算机中,由于受硬件的限制,数据都是由长度限制的,我们称为数据的宽度,超过宽度的数据会被丢掉

    这里写图片描述

  • 两个本质:

    1.计算机啥都不认识,只认识0和1
    2.如果你存的数超过了存储界限,计算机会毫不犹豫的扔掉–这也是数据宽度的本质

除此以外,我们定义的无符号数、有符号数,完全是我们自己定义的,计算机根本不知道,它只知道0和1,以及存储的数据宽度。

计算机存储的容器:

BYTE 字节 8BIT 1字节 WORD 字 16BIT 2字节 DWORD 双字 32BIT 4字节

逻辑运算

当我们知道计算机中存数后,接下来就是数据的运算

拓展知识:数据电路逻辑运算

1.或运算(or |) 只要由一个是1就是1
2.与运算(and &)两个都是1才是1
3.异或(xor ^)不一样才是1
4.非(not !)1是0 0是1

CPU如何计算2+3?
汇编是这样:
mov eax 2
add eax 3

计算机计算真正的本质:电路运算
1.把2存到一个容器中 x 0010
2.把3存到例外一个容器中y 0011
3.对x和y进行异或运算,并把结果存到容器r中
blob.png
4.对x和y进行与操作,并对结果进行左移1位
blob.png
5.如果4步骤中的结果为0,则r为计算结果;如果不为0,则把r放入x容器里,4步骤结果放入y容器里,循环1-4步骤

1 0
原创粉丝点击