第二章 寄存器相关内容总结

对于一个汇编程序员来说,CPU中的主要部件是寄存器。寄存器是CPU中程序员可以用指令读写的部件。程序员通过改变各种寄存器中的内容来实现对CPU的控制。不同的CPU,寄存器的个数、结构是不相同的。8086CPU有14个寄存器,每个寄存器有一个名称。

8086CPU的所有寄存器都是16位的,可以存放两个字节。AX、BX、CX、DX、这4个寄存器通常用来存放一般性的数据,被称为通用寄存器。出于对兼容性的考虑,8086CPU可以一次性处理以下两种尺寸的数据。字节:记为byte,一个字节由8个bit组成,可以存在8位寄存器中。字:记为word,一个字由两个字节组成,这两个字节分别称为这个字的高位字节和低位字节。

我们知道,CPU访问内存单元时,要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间,每一个内存单元在这个空间中都有唯一的地址,我们将这个唯一的地址称为物理地址。CPU通过地址总线送入存储器的,必须是一个内存单元的物理地址。在CPU向地址总线上发出物理地址之前,必须要在内部先形成这个物理地址。不同的CPU可以有不同的形成物理地址的方式。

8086CPU有20位地址总线,可以传送20位地址,达到1MB寻址能力。8086CPU又是16位结构,在内部一次性处理、传输、暂时存储的地址为16位。从8086CPU的内部结构来看,如果将地址从内部简单的发出,那么它只能送出16位的地址,表现出的寻址能力只有64KB。8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。

“段地址*16+偏移地址=物理地址”的本质含义是:CPU在访问内存时,用一个基础地址(段地址*16)和一个相对于基础地址的偏移地址相加,给出内存单元的物理地址。更一般的说,8086CPU的这种寻址功能是“基础地址+偏移地址=物理地址”寻址模式的一种具体实现方案。8086CPU中,段地址*16可看作是基础地址。

所以总结来说,CPU访问内存单元时,必须向内存提供内存单元的物理地址。8086CPU在内部用段地址和偏移地址移位相加的方法形成最终的物理地址。CPU可以用不同的段地址和偏移地址形成同一个物理地址。偏移地址16位,变化范围为0~FFFFH,仅用偏移地址来寻址最多可寻64KB个内存单元。比如给定段地址1000H,用偏移地址寻址,CPU的寻址范围为:10000H~1FFFFH。在8086PC机中,存储单元的地址用两个元素来描述,即段地址和偏移地址。

CS和IP是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址。CS为代码段寄存器,IP为指令指针寄存器,从名称上我们可以看出它们和指令的关系。CS存放指令的段地址,IP存放指令的偏移地址。8086机中,任意时刻,CPU将CS:IP指向的内容当做指令执行。

通过这一章的学习,我们主要从CPU如何执行指令的角度了解了8086CPU的逻辑结构、形成物理地址的方法、相关的寄存器以及一些指令。

原文地址:https://www.cnblogs.com/shxy0523/p/9827546.html

时间: 2024-11-10 04:13:21

第二章 寄存器相关内容总结的相关文章

第二章 寄存器基础概念

第二章 寄存器 1.一个典型的CPU由运算器,控制器,寄存器等器件组成. 内部总线实现CPU内部各个器件之间的联系. 外部总线实现CPU和主板上其它器件的联系. 2.8086是Intel系列中16位微处理器,地址总线20位. 8086有14个16位寄存器:AX,BX,CX,DX,是通用寄存器SI,DI,BP,SP,是基址和变址寄存器CS,SS,DS,ES,是段寄存器IP,FLAGS是指令指针和标志寄存器. 3.通用寄存器:一个CPU有多个寄存器,用来存放十六位一般性数据 下面以AX为例 4.汇编

王爽《汇编语言》第三版 第二章 寄存器

CPU概述 一个典型的CPU由运算器.控制器.寄存器等器件组成,这些器件靠内部总线相连. 内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其它器件的联系. 8086CPU有14个寄存器 它们的名称为:AX.BX.CX.DX.SI.DI.SP.BP.IP.CS.SS.DS.ES.PSW. 2.1 通用寄存器 8086CPU所有的寄存器都是16位的,可以存放两个字节. 8086上一代CPU中的寄存器都是8位的: 为保证兼容性,这四个寄存器都可以分为两个独立的8位寄存器使用. 1.

汇编语言:第二章 寄存器

一个典型的CPU由运算器.控制器.寄存器组成,内部总线连接各部分器件 寄存器是程序员可以用指令读写的部件,通过改变寄存器里的内容从而实现控制CPU, 不同CPU 寄存器的个数结构是不一样的,8086有14个寄存器 2.1通用寄存器 8086所有的寄存器都是16位的,可以存放2个字节,AX.BX.CX.DX用于存放一般性数据,成为通用寄存器 为了兼容旧的8位寄存,每个16位寄存器可以分为2个单独的8位寄存器来使用,名字分别用AH.AL来表示高8位和低8位 2.2字在寄存器中的存储 字节byte:可

博客园第二章寄存器

CPU中的运算器.控制器.寄存器等器件考内部总线相连. 在CPU中:运算器进行信息处理:寄存器进行信息存储:控制器控制各种器件进行工作:内部总线连接各种器件在他们之间进行数据的传输, 不同的CPU种寄存器的个数结构是不相同的.8086CPU由14个寄存器分别是:AX.BX.CX.DX.SI.DI.SP.IP.CS.SS.DS.ES.PSW 一.通用寄存器 8086CPU中所有的寄存器都是16位的,可以存放两个字节.AX.BX.CX.DX这四个寄存器通常用于存放一般性的数据,被称为通用寄存器. A

第二章 寄存器小结

存储器从功能和连接上分为:随机存储器:用于存放CPU的绝大部分程序和数据:装有BIOS的ROM:用于存储设备的基本输入输出系统:接口卡上的RAM:接口卡需要对大批量输入.输出数据进行暂存时使用,如显存.CPU在操作它们的时候,把它们都当做内存来对待,把它们总的看做一个由若干存储单元组成的逻辑存储器,这个逻辑存储器就是我们所说的内存地址空间. 2.在8086机中,任意时刻,CPU将CS:IP指向的内容当做指令执行,在加电或复位后CS和IP被设置为CS=FFFFH,IP=0000H,即FFFF0H单

汇编语言第三版 第二章 寄存器

问题1.8086CPU的地址总线为20bit,而数据总线为16bit--也就是说每次传输的数据为16bit,那么如何使用16bit的数据总线来实现20bit的地址总线的地址传输? 答:8086CPU使用两个16bit的地址合成一个20bit的物理地址. 16bit A: XXXX 16bit B: XXXX 20bit物理地址的合成 A *16 也就是将A(16进制表示的数值),向左移动一位,然后加上B.A * 16  +  B.物理地址 = 段地址 * 16 + 偏移地址 16bit A: X

汇编语言 第二章 寄存器检测点2.2 第二题

这道题是汇编语言第二版的习题,一开始我也是百思不得其解,下面看看吧: 有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻址到此单元, 则SA 应满足的条件是:最小为 1001H 最大为 2000H :最大值: (很多人最大值很容易算出来,但是最小值卡住了,很纳闷为什么是1001H)我们可以根据原题列出一个式子: X * 10H + 0H = 20000H 我们之前是乘以16,但是那个16是十进制的,因为整个式子里都是16进制,加入个10进制去算会出错的所以呢,我们把16转

第二章寄存器

寄存器有:AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW等等 通用寄存器有AX.BX.CX.DX 8086又分为两个8位寄存器:AX = AH和AL,BX=BH和BL...等如下 监测点: F4A3 31A3 3123 6246 826C 6246 826C 04D8 0482 6C82 D882 D888 D810 6246 段地址:   段地址*16+偏移地址 =就是物理地址 段地址必须是16的倍数,偏移地址 监测点2.2 0010FH-1000FH 1

第二章 寄存器

1.一个典型的CPU由运算器,控制器,寄存器(CPU工作原理)等器件构成,这些器件靠内部总线相连. 2.不同的CPU,寄存器的个数,结构是不相同的.8086CPU有14个寄存器: AX,BX,CX,DX(通用寄存器),SI,DI,SP,BP(基址和变址寄存器),CS,SS,DS,ES(段寄存器),IP,FR(指令指针和标志寄存器) AX:Accumlator Register BX:Base Register CX:Count Register DX:Data Register CS:Code