滴水逆向笔记系列-汇编总结1-1.进制-2.数据宽度_逻辑运算-3.通用寄存器_内存读写

第一课 进制

这节课讲进制计算的核心就是查表
image.png
例:3+5,就是从上表的3开始往后数五个数,10
image.png
例:46则是看作6+6+6+6,6+6由上表可知为14,14再往后数12个数得出为46=30
image.png
八进制复杂计算(文字比较难说明,但是大致还是和我们十进制的计算方式一样,只是九九乘法表换成上面三张表
image.png

作业

image.png
1.成立。可以以5进制计算
(老师答案是元素可以自定义,如:0 2 3 1 8 7 6 9 5 4)
2+3等于在2这个符号往后数2个数字,因为按0123456789算,3这个位置在2,所以往后数2个数字
2.C B 5 4 E B 5 7 B 4 A B
-577536813.png
image.png
<1>image.png

进制2

image.png
还是想告诉我们进制要用查表的思想去思考也就是计算机的思考方式去思考,但是到这里我还没悟透老师怎么做的含义,觉得很麻烦
image.png(这里下面的+1理解成往后数一个数
直到看到这张表,顺序被打乱了,才知道为什么需要查表,如果还按照计算的方式去思考,这里会乱
如果只用查表的方式,把数字当作符号,而不是数字,就能完成后面的题目

作业

4进制定义:由4个符号组成,分别是:3、8、2、4,逢4进1
答、
image.png
image.png
1、
image.png
2、
image.png

第二课 数据宽度_逻辑运算

1.数据

按照圆圈理解
有符号数与无符号数是人类自由定义的,计算机只认得0和1
而且这里可以按照平时讲的补码验证一下,0-7是正数,8-F是负数,8到F的十六进制都是1开头(1000,1001,1010....1111)对应着平时说的1开头即是负数
image.png
image.png
image.png
image.png

2.计量单位

BYTE 字节 = 8(BIT) 一字节
WORD 字 = 16(BIT) 两字节
DWORD 双字 = 32(BIT) 四字节

1KB = 1024BYTE
1MB = 1024KB
1GB = 1024MB

3.逻辑运算

1.或(or |)运算

只要有一个1就是1
image.png

2.与(and &&)运算

两个都为1才是1
image.png

3.异或(xor ^)运算

不一样就是1(图片运算处缩进有问题)
image.png

4.非(not !)

1是0,0是1
image.png

5.左移( << )

image.png

逻辑运算具体运用:

1.cpu加法运算原理
想异或运算再and运算,左移1后结果不全为0,则继续用异或出来的数与左移出来的结果去异或和and运算,循环至左移1后结果全为0

image.png

2.如果想获取某个值的第N位的值是多少?
image.png
想知道第四位的值是0或1,就在and第四位下为1,其他位为0,之后看结果,若第四位结果为1,则第四位就为1,反之为0。

4.寄存器

image.png

作业

image.png
1、在32位中十进制的-3十六进制表示为FFFFFFFD,八进制则表示为题目结果,可参考上面的圆形图
3、

第三课 通用寄存器_内存读写

寄存器

image.png
32位寄存器和16位和8位都存在包含关系
image.png

mov等常用指令语法

mov:(不可mov edx,[ebx-0x4])注意语法
image.png
image.png
image.pngimage.pngimage.pngimage.png

寄存器与内存

1.寄存器和内存没有本质区别,都是用于存储数据的容器
2.寄存器位于CPU内部,执行速度快但是比较贵
3.内存速度相对较慢,但成本较低,所以可以做的很大
4.内存的数量特别庞大,无法每个内存单元都起一个名,,所以用编号来代替◇我们称计算机 CPU 是32位或者64位◇
有很多书上说之所以叫32位计算机是因为寄存器的宽度是32位,是不准确的,因为还有很多寄存器是大于32位的。
计算机内存的每一个字节会有一个编号(即内存编号的单位是字节),如下图
image.png
我的个人理解是一块内存就是1字节,32位(32个0和1)用十六进制表示则为8bit,然后我们可以给他排编号,最大编号为FFFFFFFF的内存,注意这是十六进制的FFFFFFFF,它是从0开始的,所以一共可以有FFFFFFFF+1=100000000块内存,转化为十进制,可以算出有4,294,967,296这么多块内存,因为一块内存1字节,4,294,967,296字节除以1024=4,194,304kb=4,096mb=4G
最后是4G,说明32位的计算机能识别的最大内存就是4G,因为他只能有这么多块内存,内存寻址最大范围只有4G,甚至实际使用的内存小于4G,因为有些硬件固定占着那些内存了

  • 32位能识别的内存最多是4G(×)不一定,可以通过打补丁等形式拓展

内存

image.png

posted @ 2024-03-14 10:22  小新07  阅读(113)  评论(0编辑  收藏  举报