汇编基础知识1

152 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。 MOV AX,BX

 

BX寄存器中的内容移动至寄存器AX中

image.png

寄存器:嵌入CPU中的内存 CPU中的存储器

AX,BX都是寄存器的代号

寄存器的功能是存储 二进制代码 ,它是由具有存储功能的 触发器 组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。

 

 

MOV

JMP

 

汇编的核心是汇编指令

 

运行软件时 ,观察其MOV JMP

例如用户登入校验时 若校验成功则 JMP至程序入口,此时将JMP目标改至程序入口,则实现了一定意义上的软件破解 此为最简单的思维

现在的程序一般都加上了花指令,加壳以及没用的代码,将程序改的乱七八糟,迷惑程序入口

 

image.png 内存是主要的存储器

 

CPU调动内存

 

image.png

CPU与内存、硬盘间的工作关系为:

当我们在计算机上执行一个程序时,首先由输入设备向CPU发出操作指令,CPU接收到操作指令后,硬盘中对应的程序指令被直接加载到内存中,此后,CPU再对内存进行寻址操作,将加载到内存中的指令翻译出来,而后发送操作信号给操作控制器,实现程序的运行或数据的处理。

CPU从内存调用数据,为什么不从硬盘中获取呢?这就牵扯到一个访问速度的问题。

比较三种存储器:硬盘、内存和高速存储器的存取速度,我们发现:

内存的存取速度远高于硬盘的存取速度,而CPU内高速存储器的存取速度更是远高于内存的存取速度。

当我们把程序从硬盘放到内存以后,CPU就直接在内存运行程序,这样比CPU直接在硬盘运行程序就要快很

多。

内存解决了一部分CPU运行过快,而硬盘数据存取太慢的问题。 提高了我们的电脑的运行速度。

内存就如同一条“高速车道”一般,数据由传输速度较慢的硬盘通过这条高速车道传送至CPU进行处理。

其实内存在这里起了两个作用:

  1. 保存从硬盘读取的数据,提供给CPU使用

  2. 保存CPU的一些临时执行结果,以便CPU下次使用或保存到硬盘

关于三者之间的关系进行总结,CPU运行的速度很快,但是储存空间很小,如果是大量的数据或是很大的程序就无法运行了,因而如果CPU接收到了指令运行储存在硬盘之中的程序,就需要通过内存这一中枢去传导数据,使得处理数据与传输数据的速度相匹配。硬盘是永久保存数据,拿出来之后就暂时储存在内存里面了,因为这样提取数据的时候速度快比较方便,之后CPU便可以进行数据处理了。


 

CPU处理二进制代码 该代码可当成指令或数据(取决于程序员对代码的应用)

 

 

GPU读取显卡内存(显存)

image.png 内存 硬盘 网卡的地址

控制信息:读取数据写入数据等等

数据信息:读什么? 写什么?

image.png

image.png

image.png

内存并不单纯指内存条,还有例如网卡、显卡的内存等

 

CPU从内存中读取数据的过程

CPU首先从地址线向内存发送要读取的地址信息

image.png 而后再通过控制线发送要进行的读取控制信息

image.png 最后内存通过数据线向CPU返还该地址上的数据

image.png  

CPU写入数据的过程

前两步与上个过程相同

在最后一步中

CPU通过数据线把数据写入内存中的3号地址,覆盖原来的东西

image.png