过多的废话就不多说了,只把每次的课程笔记整理一下,可能比较繁琐,但希望一来可以加深记忆,二是可以方便日后复习。

1.cpu对设备的读写

在学习这个问题之前,我们先了解一个问题:“程序是如何运行的呢?(运行程序的先决条件)

答案:首先找到程序的位置,然后通过某种途径把程序输送给cpu执行。在这里,整个主板是通过地址总线、数据总线、控制总线 来进行交互

接下来了解cpu是如何通过这些总线来进行交互。

  • 1.cpu必须找到程序在内存中的具体位置,通过cpu与内存之间的地址总线。
  • 2.找到地址之后,通过cpu与内存之间的数据总线传递给cpu执行。
  • 3.cpu控制外围设备的通道,控制总线。

8086 CPU 有20根地址总线,从cpu连接到内存单元,寻址范围就是2的20次方=1MB

数据传送示意:

地址总线从cpu到内存把地址传送给内存,找到内存中的数据,然后通过数据总线,再把数据传输给cpu,此时通过控制总线告诉内存进行读和写操作。

总线的宽度:cpu有多少根线连接到内存中。或者说地址总线有多少条。

什么是cpu寻址能力?地址总线有多少条就决定了cpu最大的内存使用量。

cpu内部是由以下部件组成:寄存器,存放数据的仓库;运算器,对数据进行运算;控制器,用来控制各个器件的运行、内部总线连接各种器件,在他们之间进行数据传输

2.寄存器的概念 (重点)以及寄存器的作用

寄存器就是用来存放cpu要执行的数据或者指令

寄存器分为通用寄存器和段寄存器

下面我们以8086CPU为例了解cpu寄存器:

AX寄存器 (通过寄存器、专门存放数据库的仓库)
分为AH AL,其中,AH表示高位寄存器、AL表示低位寄存器、AX寄存器有两个字节 有16位二进制。

如果对二进制进行组织呢?

  • 字节:用8个二进制数表示一个字节
  • 字:用两个字节表示一个字,即16个二进制表示
  • 双子:用两个字表示,即32个二进制数

3.段地址和偏移地址 (重点)

物理地址的表示方法:以下以8086cpu为例:

8086主板地址线20根要进行寻址必须一次传20位二进制数,但CPU最大一次只能传16个二进制位,如何解决?

引入“地址加法器”概念

234+23?xxxx

234*10+23

234成为基地址,23表示偏移地址。

内存地址的表示方法:

  • 基地址:偏移地址=实际内存地址
  • 实际内存地址=基地址*16+偏移地址

具体例子:

1402:100 cpu表示物理内存的方式:

1402H*16+0100=14120H

16进制一般用四位表示

14020

+0100=

14120

debug

-d 查看物理内存信息

段概念:

  • 10000H 转换为内存地址:1000H:0000
  • 1007FH 转换为内存地址:1007H:000F
  • 10000H-1007FH 这样组成一个段。

这里引出,段寄存器就是专门存放基地址的。

汇编语言基础(2)cpu结构

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.