计算机需要指令去执行动作,也需要数据作为计算的材料。在DOSBox中debug模式下可以看到指令与数据的存储情况,可以发现指令与数据是存放在一起的,并没有去做具体的划分。CPU是如何去区分指令和数据的呢?(挖坑,后面解释)另外,指令和数据是存放在哪里呢?一部分是放在CPU中,另一部分放在内存中,内存的一个具体载体之一就是内存条。CPU要从内存条中存取命令和读写数据应该要怎么做?如果你拆开过计算机的机箱并仔细观察,你就会发现CPU和内存条是插在同一块电路板上的,他们之间由许多印刷在电路板上的线路联结,这些通路至少要包含三种功能:
传递内存地址信息—地址线
传递数据信息---------数据线
传递读写信号---------控制线
清楚了这些需求,就要考虑实现上的可行性了。数据的传输通过电路来实现,一条线路能表示的状态只有0或者1故而电路的数量将会决定能传达信息的多少:CPU与内存条之间如果只有一条线,那么这一线路只能表示0或1两种状态的信息
内存条之间如果有两条线,那么这一线路能够表示00-01-10-11这四种信息
内存条之间如果有三条线,那么这一线路能够表示000-001-011-101-110-111-100-010这四种信息(信息转化在硬件实现上可详见编码器-译码器,数电知识)
以此类推,可见
一条线路最多能找到内存中编号为2的1次方的地方
两条线路最多能找到内存中编号为2的2次方的地方
三条线路最多能找到内存中编号为2的3次方的地方
随着线路的增多,能寻找到的内存地址就更大,术语上叫做寻址能力。所以内存编号为什么从0开始这一问题也就迎刃而解了。
汇编语言3---存储与传输以及硬件上的思考
最新推荐文章于 2022-08-24 10:12:38 发布