【新书推荐】1.4节 存储器的读写

本节内容:内存的读写。

内存的线性地址:CPU的寻址范围由地址总线的数量决定。8086计算机有20根地址线,其寻址范围为0~220-1,即1M大小的空间,分配0~220-1线性地址编号,每个地址对应一个字节的存储单元。

指令的解析:一条汇编指令对应一条机器指令(也称为硬编码),每条机器指令可以分解为若干微指令。

CPU对内存的读写过程:地址线加载地址、控制线传送控制指令、数据线传输数据。

机器码:又称为硬编码或机器指令,与汇编指令一一对应。对应关系可以查阅Intel或AMD技术白皮书的硬编码表。

1.4.1 内存的线性地址

假如计算机有8根地址线:     

最多可以有0~255共计256个地址编号,每个地址编号对应8个数据位,即一个字节,那么该计算机的最大内存寻址范围是28 ,即256个字节。如表1-3所示:

                                                       

                                 表1-3  8根地址线可以表示的地址编号

注意

在计算机中,是从0开始计数的,8个数据位,即第0位到第7位。表1-3中,左边为高位,右边为低位。

提示

每根地址线有低电平和高电平两种状态,分别用0和1表示,使用8根地址线编写地址标号,即代表每个地址编号由8个数据位组成,8位0和1的任意组合刚好是28,即256种组合。内存以字节为单位,每个地址标号代表一个字节,即内存的最大寻址范围就是256个字节。

计算机的内存是以字节为单位的线性地址空间,如表1-4所示:

表1-4中假设有8根地址线,即地址编号为8位,最多可以编写256个地址编号,用16进制数表示,即地址0~FFH。其中地址3处对应的存储空间存放的数值为十六进制数12H。

同理,如果有20根地址线,寻址范围是220,即1MB,32根地址线,寻址范围就是232即4GB。

1-4 线性内存

1.4.2 指令解析

■MOV AX,[3];表示将内存地址3处对应的存储单元存放的数据读到AX寄存器中。

需要三个条件:

●存储单元的地址(地址信息)

●器件的选择,读或写的命令(控制信息)

●读或写的数据(数据信息)

CPU要从内存中读取数据

首先要知道存储单元的地址。就是要确定从哪个存储单元中读取数据。存储器被划分成很多个存储单元,从零开始按顺序编号,这些编号被看作是门牌号,方便查找,进房间找人。存储单元中要有数据,如果家里没人,即为空。

其次,在一台微机中有很多个部件,CPU读写数据时,要知道对哪个器件进行操作,进行哪种操作,是从中读数据,还是写入数据。

信息的传输:总线

CPU是通过什么将地址、数据和控制信息传送到存储芯片的呢?

计算机中专门有连接CPU和其他芯片的导线,通常称为总线,总线是这些导线的集合,用来传送的信息皆为电信号,即高低电平,高电平为1,低电平为0。

1.4.3 CPU对存储器读写的过程

总线逻辑上分为:地址总线、数据总线和控制总线三类。地址总线加载地址编号,数据总线传输数据,控制总线加载控制命令。

图1-16描述CPU通过地址总线、数据总线和控制总线与内存连接。

图1-17描述了CPU从内存地址3对应的存储单元读取数据的过程。

图1-18描述了CPU向内存地址3对应的存储单元写入数据的过程。

                            图1-16 总线在逻辑上的划分

                                                                     图1-17 CPU从内存地址3号单元读取数据的过程

                                图1-18 CPU向内存地址3号单元写数据的过程

1.4.4 机器码

要让计算机处理器工作,需要输入能够驱动它进行工作的机器码。

例如表1-6所示8086 CPU机器码:

                                                                                  

                                                                  表1-6 机器码

机器码含义:从3号单元读取数据送入寄存器AX。CPU接到机器码将完成上面所述的工作。但是机器码难于书写和记忆,所以我们使用指令助记符(汇编指令)表示。                  

机器码:10100001 00000011 00000000

汇编指令:MOV AX,[3]

由于汇编指令和机器码是一一对应的关系,我们只需要查表1-6就可以将汇编指令和机器码相互转换。

                                表1-6 汇编指令对应表

注意

X86 CPU指令集机器码(又称为硬编码),可以查阅Intel或AMD技术白皮书的硬编码表。

表1-4 中[mem8]表示8位内存操作数,[mem16]表示16位内存操作数。

本文摘自编程达人系列教材《X86汇编语言基础教程》。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值