编程语言
首页 > 编程语言> > 汇编语言学习笔记

汇编语言学习笔记

作者:互联网

CPU

CPU是核心,读取指令和数据,并将其写入存储器,即寄存器内存,再进行运算
一个CPU由寄存,控制器,运算器等构成
磁盘不同于内存,需要通过指令或者程序将磁盘上的数据读入内存,才能被CPU使用
微型存储器是以字节为最小单位来计算的,一个存储器拥有128个存储单元,则其容量是128字节(128B)

总线

CPU通过一根根导线与各个存储芯片连接

CPU读操作

  1. CPU通过地址总线存储芯片地址
  2. 通过控制总线发出内存读命令,即可选中存储芯片,并通知它将要读取数据
  3. 存储芯片将对应存储单元的数据通过数据总线送入CPU

CPU写操作

  1. CPU通过地址总线存储芯片地址
  2. 通过控制总线发出内存写命令,即可选中存储芯片,并通知它将要写入数据
  3. CPU通过数据总线将数据送入存储芯片将对应存储单元

地址总线对应存储芯片的存储单元地址,总线根数对应了寻址能力
数据总线对应数据传输,总线根数对应一次能够传输的数据量,8根即一个字节
控制总线控制外部器件,一根被称为"读信号输出"的控制线负责由CPU向外传送读信号

内存地址空间

一个PC有若干个存储芯片,这些物理独立的存储器件,都通过总线与CPU相连,CPU把它们当作一个逻辑存储器来操作,及内存空间
内存大小受到地址总线限制,一个地址总线有20根,其可以传送220个地址信息,即可定位220个存储单元,因此内存地址空间大小为1M

寄存器

普通寄存器:ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl,sp,bp,si,di
只有bx和si,bx和di,bp和si,bp和di可组合出现
段寄存器:ds,ss,cs,es

CPU寻址

对于一个16位结构的CPU,运算器一次最多可以处理16位的数据,寄存器最大宽度16位,寄存器和运算器直接一次最多可以传递16位数据

如果地址总线最多16根,则对应的寻址能力为216,即64K
如果地址总线为20根呢?理论上寻址能力为220,即1M,但是CPU使用地址总线一次只能传递16位数据,显然不能满足220地址能力,因此给CPU提供两个16位的地址总线,然后合成为一个20位的地址

地址合成的格式为基础地址+偏移地址,而偏移范围即表示这一段内存地址空间,所以这段内存空间的起始位置为段地址,对应段寄存器CS,而偏移地址对应指令指针寄存器IP
CPU任意时刻都是将CS:IP指向的内容作为指令执行

IP的值也是16位的,因此一段程序的大小最多为216,CPU从程序起始即代码段开始执行

标签:16,汇编语言,存储芯片,学习,地址,笔记,寄存器,地址总线,CPU
来源: https://blog.51cto.com/u_15091798/2782936