汇编 计算机基本原理

汇编 计算机基本原理

一、8086计算机的基本结构

1.1 计算机基本结构图

  • 对汇编语言程序员来说,计算机硬件的结构如下图所示(CPU、内存储器、接口(外设)):

1.2 微处理器

  1. 定义:CPU是中央处理器(Central Processing Unit)的简称,是计算机内部对数据进行处理并对处理过程进行控制的部件。
  1. 微处理器:伴随着大规模集成电路技术的迅速发展,芯片集成密度越来越高,CPU可以集成在一个半导体芯片上。这种具有中央处理器功能的大规模集成电路器件,被统称为“微处理器(MPU)”。

  2. 组成:
    (1)运算器:完成各种算术运算和逻辑运算。
    (2)控制器:取指令,经译码分析后发出各种控制命令,如取数、存数、发出执行指令的命令等。
    (3)寄存器:CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。

  3. 微型机的产生和发展
    在这里插入图片描述

  4. 8086微处理器的一般性能特点
    (1)16位的内部结构,16位双向数据线;
    (2)20位地址线,可寻址1M字节存储单元;
    (3)较强的指令系统;
    (4)利用第16位的地址总线来进行I/O端口寻址,可寻址64K个I/O端口;
    (5)中断功能强,可处理内部软件中断和外部中断,中断源可达256个;
    (6)单一的+5V电源,单相时钟5MHz;
    (7)8086可以和浮点运算器、I/O处理器或其他处理器组成多处理器系统,从而极大地提高了系统的数据吞吐能力和数据处理能力。

1.3 内存储器

  • 存放程序和数据的部件;由许多内存单元组成;每个内存单元有一个地址。 8086计算机的内存以字节编址。
1.3.1 内存单元的地址
  1. 定义:内存单元的地址是为了标识和存取每一个存储单元,以正确地存放或取得信息,给每个存储单元规定一个唯一的地址(物理地址)。
  2. 地址的形成:由CPU和存储芯片共同决定。
  3. 物理地址的空间:呈线性增长,地址从0开始编号,顺序地每次加1。
  4. 物理地址的表示:在机器里用无符号二进制数表示,书写格式为十六进制数。如23450H、0A209FH。
  5. 表示的地址范围:8086地址总线为20位,可访问的字节单元地址范围为 00000H~0FFFFFH也就是1MB的寻址空间。
1.3.2 内存单元的内容
  1. 定义:一个内存单元中存放的信息,每个单元中可存放一个字节。

  2. 特点:可重复读取内存单元中的数据,写则覆盖原数据。

  3. 内存容量:内存所具有的单元数。基本单位是B(字节)

  4. 目前常用的容量单位:KB、MB、GB、TB等。传说中还有NB、DB、CB。

  5. 字节(Byte):简写为B,1个字节由8个二进制位组成。是计算机中用来表示存储空间大小的基本容量单位。计算机内存的存储容量,磁盘的存储容量等都是以字节为单位表示的。

  6. 位(bit):计算机所能表示的最小的数据单位。简称为位(bit,比特)。是计算机中最直接最基本的操作。

  7. 关系
    (1) 1 B = 8 b i t 1B=8bit 1B=8bit
    (2) 1 K B = 1024 B = 2 10 B 1KB=1024B=2^{10} B 1KB=1024B=210B
    (3) 1 M B = 1024 K B = 2 10 K B = 2 20 B 1MB=1024KB=2^{10}KB=2^{20} B 1MB=1024KB=210KB=220B
    (4) 1 G B = 1024 M B = 2 10 M B = 2 30 B 1GB=1024MB=2^{10}MB=2^{30} B 1GB=1024MB=210MB=230B
    (5) 1 T B = 1024 G B = 2 10 G B = 2 40 B 1TB=1024GB=2^{10}GB=2^{40} B 1TB=1024GB=210GB=240B
    (5) 1 P B = 2 10 T B , 1 E B = 2 10 P B , 1 Z B = 2 10 E B , 1 Y B = 2 10 Z B 1PB=2^{10}TB,1EB=2^{10}PB,1ZB=2^{10}EB,1YB=2^{10}ZB 1PB=210TB1EB210PB1ZB210EB1YB210ZB

1.3.3 字和字长
  1. 定义:在计算机中作为一个整体被存取、传送或处理的二进制位数称为一个字,每个字中二进制位数的长度,称为字长。
  2. 一个字由若干个字节组成,不同的计算机系统的字长是不同的,常见的有8位、16位、32位、64位等,字长越长,计算机一次处理的信息位就越多,精度就越高,字长是计算机性能的一个重要指标。
  3. 字与字长的区别:
    (1)字是单位,而字长是指标,指标需要用单位去衡量。正象生活中重量与公斤的关系,公斤是单位,重量是指标。
    (2)字节长度是固定的;字的长度是不固定的,不同计算机的字长是不同的。 8086CPU中的1个字包含2个字节。

1.4 系统总线

  1. 定义:是将CPU与存储器及外部设备连接起来的,用来传输信息的一组公共导线。共有三条总线。

  2. 三条总线
    (1)地址总线(AB):指出信息的来源和目的地。
    (2)数据总线(DB):传送数据,数据总线赿宽,数据处理的能力就赿强。
    (3)控制总线(CB):控制总线主要用来传送控制信号和时序信号。

  3. 总线图

二、8086寄存器组

  • 按用途分可以分为4种类型,分别是数据寄存器、地址寄存器、段寄存器和控制寄存器;

2.1 数据寄存器

  1. 通用寄存器分为4个16位的寄存器。

  2. 基本功能

寄存器功能
AX作为累加器用,所以它是算术运算的主要寄存器。在乘除指令中指定用来存放操作数。另外,所有的I/O指令都使用AX或AL与外部设备传送信息。
BX在计算存储器地址时,可作为基址寄存器使用。
CX常用来保存计数值,如在移位指令、循环指令和串处理指令中用作隐含的计数器。
DX在作双字长运算时,可把DX和AX组合在一起存放一个双字长数,DX用来存放高16位数据。此外,对某些I/O操作,DX可用来存放I/O的端口地址。
  1. 这4个16位寄存器又可分别分成高8位(AH、BH、CH、DH)和低8位(AL、BL、CL、DL)。因此它们既可作为4个16位数据寄存器使用,也可作为8个8位数据寄存器使用,在编程时可存放源操作数、目的操作数或运算结果。
  2. 数据寄存器是存放操作数、运算结果和运算的中间结果,以减少访问存储器的次数,或者存放从存储器读取的数据以及写入存储器的数据的寄存器。

2.2 地址寄存器

  1. 定义:用来存放存储器操作数的偏移地址,包括指针和变址寄存器SI、DI、SP、BP四个16位寄存器。
  2. 基本功能
寄存器名称功能
SP堆栈指针寄存器与SS(堆栈段寄存器)一起确定栈顶的当前位置
BP基址指针寄存器与SS用来确定堆栈段中的某一存储单元的地址
SI源变址寄存器在串操作指令中,以SI表示源数据串的地址
DI目的变址寄存器在串操作指令中,以DI表示目的数据串的地址

2.3 段寄存器

  1. 定义:用于存放逻辑段的段基地址,将程序的不同部分放入相应段;
  2. 基本共能
寄存器名称功能
CS代码段寄存器代码段用于存放指令代码
DS数据段寄存器用于指出存放数据的数据段的段地址
ES附加段寄存器附加段用来存放操作数
SS堆栈段寄存器堆栈段用于存放返回地址,保存寄存器内容,传递参数

2.4 控制寄存器

  1. 定义:控制寄存器包括指令指针寄存器和标准寄存器,用于控制程序执行;
  2. 指令指针寄存器IP:是计算机中很重要的一个控制寄存器,用来存放代码段当中的偏移地址。在程序运行的过程中,它始终指向下一条指令的首地址,它和CS一起形成取下一条指令的实际地址;
  3. 标志寄存器Flags:共16位,一般把每一位分别使用,8086使用其中的9位,用于存放当前程序执行的状况和运算结果的特征。9个标志位可分为二组:状态标志和控制标志;
  4. 状态标志:用于反映指令执行的结果(受算术运算和逻辑运算结果的影响)。
寄存器功能
进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。
奇偶标志PF用于反映运算结果中低8位中含有“1”的个数的奇偶性,如果“1”的个数为偶数,则PF的值为1,否则为0。
溢出标志OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。
辅助进位标志AF主要用来反映D3位向D4位产生进位或借位的情况,如果有进位或借位,那么,其值为1,否则其值为0。
零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。
符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1 。
  1. 控制标志:通过执行特定指令来设置,以控制某些指令的执行方式。 控制标志位是用来控制CPU操作的,它们要通过专门的指令才能使之发生改变。
寄存器功能
追踪标志TF控制CPU是否进入单步调试方式。当TF=1时,每执行一条指令,产生一个单步中断请求。这种方式主要用于程序的调试。指令系统中没有专门的指令来改变标志位TF的值,但程序员可用其它办法来改变其值
中断允许标志IF用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求。具体规定如下:(1)当IF=1时,CPU响应外部的可屏蔽中断发出的中断请求(2)当IF=0时,CPU不响应外部的可屏蔽中断发出的中断请求
方向标志DFDF用来决定在串操作指令执行时有关指针寄存器发生调整的方向。当DF=0时,内存地址自动递增;当DF=1时,内存地址自动递减。CPU的指令系统中有专门的指令来改变DF的值

三、8086内存管理

3.1 8086的物理内存组织

  1. 8086计算机的内存以字节编址,每个内存单元有一个惟一的地址,可存放一个字节。字节是8086程序对数据的最小存取单位。
  2. 8086存取一个字或双字采用“小端方式”的方案:1个字占据两个相邻的内存单元。低字节放在低地址单元,高字节放在高地址单元;字的地址由其低地址来表示。
  3. 对于同一个内存地址,既可以看作是字节单元的地址,也可以看作是字或双字单元的地址,取决于存取的数据类型。

3.2 内存的分段管理

  1. 为何分段:CPU有20根地址线,可直接访问的物理空间为1M字节,其编码区间为:00000H ~ FFFFFH。而CPU的数据总线是16位,寄存器也是16位或8位,它们的编码范围仅为:0000H ~ FFFH。这样,如果用16位寄存器来访问1MB内存的话,则只能访问内存的最低端的64KB,其它的内存空间将无法访问。为了能用16位寄存器来有效地访问1MB的存储空间,16位CPU采用了内存分段的管理模式。
  2. 段的分法:把1MB内存空间划分成若干个逻辑段(简称段),每个逻辑段的要求:
    (1)逻辑段的起始地址(通常简称为段地址)必须是16的倍数,即最低4位二进制必须全为0;
    (2)逻辑段的最大容量为64KB;
  3. 偏移地址(段内偏移量或有效地址):表示段内某单元相对本段起始地址的偏移值(即该内存单元相对其所在段的段首址间的字节距离,偏移地址为16位,可直接放入16位寄存器中表示。
  4. 逻辑地址:存储单元地址的表达形式,由程序给出。即,段地址:偏移地址
  5. 物理地址:存储单元在1MB空间内的实际地址,每一个内存单元有一个唯一的地址号。由系统根据逻辑地址自动转换生成的。
  6. 注意
    (1)段地址表示段的起始地址(xxxxxH),并不是任意一个单元的地址都能作段的起始地址,只有那些形式为xxxx0H的地址才能作段的起始地址,该起始地址存入16位寄存器时,将0省略即可。存放在DS、CS、ES、SS段寄存器中。
    (2)每个段的大小最大64KB,但在实际编程中,系统根据需要来分配,不一定非要占用64KB的最大空间。
    (3)逻辑段之间可以重叠,也可以不重叠。
    (4)下图中是各逻辑段之间的分布情况示意图,其中有相连的段(如C和D段)、不相连的段(如A和B段)以及相互重叠的段(如B和C段)。

3.3 物理地址的形成方式

  • 对物理地址来说,当段地址变化时,只要对其偏移地址进行相应的调整就可对应同一个物理地址,所以,同一个物理地址可有多个逻辑地址,例如4106H:400AH,42AEH :258AH,3507H :0FFFAH……都表示同一个存储单元,其物理地址为4506AH。
    在这里插入图片描述

3.4 段寄存器的引用

  • 段寄存器是因为对内存的分段管理而设置的。16位CPU有4个段寄存器(CS、DS、ES、SS),所以,其程序可同时访问四个不同含义的段。段寄存器及其偏移量的引用关系如图 。CS指向存放程序的内存段,IP是用来存放下条待执行的指令在该段的偏移量,它们合在一起可在该内存段内取到下次要执行的指令。SS指向用于堆栈的内存段,SP是用来指向该堆栈的栈顶,把它们合在一起可访问栈顶单元。另外,当偏移量用到了指针寄存器BP,则其缺省的段寄存器也是SS,并且用BP可访问整个堆栈,不仅仅是只访问栈顶。DS指向数据段,ES指向附加段,在存取操作数时,二者之一和一个偏移量合并就可得到存储单元的物理地址。该偏移量可以是具体数值、符号地址和指针寄存器的值等之一,具体情况将由指令的寻址方式来决定 。
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、资源详解 实验报告:通过实际操作与数据记录,让您深入理解计算机内部的工作原理。每份实验报告都详细记录了实验步骤、结果及分析,助您巩固知识点。 学习笔记:由资深学者精心整理的学习笔记,重点突出,为您梳理课程脉络,把握核心内容。 复习资料与试卷:涵盖了各类复习资料和历年试卷,助您备战考试,查漏补缺,提高应试能力。 作业答案:提供完整的作业答案及解析,让您在完成课后作业时更有信心,确保理解每一个知识点。 一二、计算机组成原理:从基础到进阶,全面突破的必备资源 在信息爆炸的时代,计算机组成原理作为计算机科学的核心课程,显得尤为重要。为了帮助广大学子更好地掌握这一关键领域,我们特地整理了这一系列与计算机组成原理相关的资源,助力您的学术旅程。 三、适用场景广泛 无论是期末考试冲刺、计算机组成原理实验报告作业、还是复习题、试题、考研资料等需求,这些资源都能满足您的要求。全面覆盖理论要点与实践操作,让您在学习和备考过程中游刃有余。 四、使用建议 系统学习:建议按照章节顺序进行系统学习,结合实验报告进行实践操作,以加深理解。 备考策略:利用复习资料与试卷资源,制定有效的备考计划,提高考试通过率。 持续反馈与改进:根据作业答案进行自我评估,找出薄弱环节,及时调整学习策略。 五、版权与安全提示 尊重知识产权:在使用这些资源时,请尊重原作者的权益,遵守版权法规。 安全使用:确保在使用过程中不侵犯他人权益,避免任何形式的学术不端行为。 感谢您选择我们的计算机组成原理资源库!让我们一起深入探索计算机的奥秘,用知识武装自己,开启精彩的学术之旅!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值