精华内容
下载资源
问答
  • 寄存器cpu工作原理)

    万次阅读 多人点赞 2016-12-02 21:06:37
    1、一个典型的CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。 区别: 内部总线实现CPU内部各个器件之间的联系。 外部总线实现CPU和主板上其它器件的联系。 8086CPU有14个寄存器 它们...

    来源:王爽老师的《汇编语言

    1、一个典型的CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。

    区别:

    内部总线实现CPU内部各个器件之间的联系。

    外部总线实现CPU和主板上其它器件的联系。

    8086CPU有14个寄存器 它们的名称为:

       AX、BX、CX、DX、SI、DI、SP、BP、

       IP、CS、SS、DS、ES、PSW。


    8086CPU所有的寄存器都是16位的,可以存放两个字节,一个字节8位。

    AX、BX、CX、DX 通常用来存放一般性数据被称为通用寄存器。

    一个16位寄存器所能存储的数据的最大值为多少? 

    因为每一位存放的数据是0或1,那么最大的数值自然就是 1111 1111 1111 1111(2),也就是2^16-1。


    2、通用寄存器(重点)

    8086上一代CPU中的寄存器都是8位的,为保证兼容性,

    这四个寄存器都可以分为两个独立的8位寄存器使用。
    AX可以分为AH和AL;
    BX可以分为BH和BL;
    CX可以分为CH和CL;
    DX可以分为DH和DL。

    AX的低8位(0位~7位)构成了AL寄存器,高8位(8位~15位)构成了AH寄存器。

    AH和AL寄存器是可以独立使用的8位寄存器,如果当成是8位寄存器使用,那么他们就是独立的,没有任何关系。

    一个8位寄存器所能存储的数据的最大值是多少?二进制数值 1111 1111 ,也就是 2^8-1。


    3、字在寄存器中的存储





    注意:在进行数据传送或运算时,要注意指令的操作数的位数要匹配。


    4、物理地址的表示(重点)

    CPU访问内存单元时要给出内存单元的地址,所有的内存单元构成的存储空间是一个一维的线性空间。

    我们将这个唯一的地址称为物理地址。

    不同的CPU有不同的形成物理地址的方式。

    (1)16位结构的CPU

    8086内部为16位结构,它只能传送16位的地址,表现出的寻址能力却只有64K。

    8086外部有20位地址总线,可传送20位地址,寻址能力为1M。

    那么,8086CPU如何用内部16位的数据,转换成20位的地址呢?

    8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。

    段地址+偏移地址 -> 地址加法器 -> 20位的物理地址。

    地址加法器合成物理地址的方法:段地址×16+偏移地址=物理地址

    “段地址×16”有一个更为常用的说法就是数据左移4位。(二进制位)

    二进制的数据左移4位,意味着乘以2^4=16。

    这样做的目的主要是为了弥补内部总线16位的缺陷而设计的。






    5、关于段空间

    内存没有分段,段的划分来自于CPU,

    由于8086CPU用“(段地址×16)+偏移地址=物理地址”的方式给出内存单元的物理地址,

    使得我们可以用分段的方式来管理内存。

    以后,在编程时可以根据需要,将若干地址连续的内存单元看作一个段,

    用段地址×16定位段的起始地址(基础地址),用偏移地址定位段中的内存单元。

    (1)段地址×16 必然是 16的倍数,所以一个段的起始地址也一定是16的倍数;

    (2)偏移地址为16位,16 位地址的寻址能力为 64K,所以一个段的长度最大为64K。

    CPU可以用不同的段地址和偏移地址形成同一个物理地址。

    如果给定一个段地址,仅通过变化偏移地址来进行寻址,最多可以定位多少内存单元?

    因为偏移地址16位,变化范围为0~FFFFH,仅用偏移地址来寻址最多可寻64K个内存单元。

    比如:给定段地址1000H,用偏移地址寻址,CPU的寻址范围为:10000H~1FFFFH。

    6、地址的描

    在8086PC机中,存储单元的地址用两个元素来描述。即段地址和偏移地址。

    “数据在21F60H内存单元中。”对于8086PC机的两种描述:

    (a)数据存在内存2000:1F60单元中;

    (b)数据存在内存的2000段中的1F60H单元中。

    可根据需要,将地址连续、起始地址为16的倍数的一组内存单元定义为一个段。


    7、段寄存器就是提供段地址的。

    8086CPU有4个段寄存器: CS、DS、SS、ES。

    CS和IP是8086CPU中最关键的寄存器,它们指示了CPU当前要读取指令的地址。

    CS为代码段寄存器,IP为指令指针寄存器。

    在 8086CPU 加电启动或复位后( 即 CPU刚开始工作时)CS和IP被设置为CS=FFFFH,IP=0000H。

    即在8086PC机刚启动时,CPU从内存FFFF0H单元中读取指令执行。

    FFFF0H单元中的指令是8086PC机开机后执行的第一条指令。










    8、修改CS,IP

    mov指令不能用于设置CS、IP的值,8086CPU没有提供这样的功能。

    8086CPU为CS、IP提供了另外的指令来改变它们的值:转移指令

    JMP 段地址:偏移地址

    JMP 2AE3:3

    功能:用指令中给出的段地址修改CS,偏移地址修改IP。CS = 2AE3H, IP = 0003H。

    仅修改IP的内容:

    jmp 某一合法寄存器

    jmp ax   (类似于 mov IP,ax)

    功能:用寄存器中的值修改IP。

    8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。



    9、关于debug指令(Win7没有这个指令,XP才有)

    R命令查看、改变CPU寄存器的内容;

    D命令查看内存中的内容;

    E命令改写内存中的内容;

    U命令将内存中的机器指令翻译成汇编指令;

    T命令执行一条机器指令;

    A命令以汇编指令的格式在内存中写入一条机器指令。

    展开全文
  • 寄存器(CPU工作原理)

    2017-01-21 13:40:45
    CPU概述寄存器概述通用寄存器 字在寄存器中的存储关于数制的讨论几条汇编指令 物理地址 段的概念 段寄存器 ...

    CPU概述

    这里写图片描述

    寄存器概述

    这里写图片描述

    通用寄存器

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    字在寄存器中的存储

    这里写图片描述

    关于数制的讨论

    这里写图片描述

    几条汇编指令

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    物理地址

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    段的概念

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    段寄存器

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    如何在64位系统上使用DeBug
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    展开全文
  • 汇编语言之寄存器CPU工作原理)

    千次阅读 2016-10-30 21:17:56
    不同的CPU寄存器的个数、结构是不相同的,8086CPU有14个寄存器,每个寄存器有一个名称,我们对它进行分类: 1.通用寄存器:AX、BX、CX、DX 2.段寄存器:CS、SS、DS、ES 3.指针寄存器:SP、BP 4.变址寄存器:SI...

    1、介绍

    一个典型的CPU,由运算器、控制器、寄存器等器件组成,对于游戏修改者来说,重点学习寄存器,其它不必管。
    不同的CPU,寄存器的个数、结构是不相同的,8086CPU有14个寄存器,每个寄存器有一个名称,我们对它进行分类:

    1.通用寄存器:AX、BX、CX、DX

    2.段寄存器:CS、SS、DS、ES

    3.指针寄存器:SP、BP

    4.变址寄存器:SI、DI

    5.指令指针寄存器:IP

    6.标志寄存器:FR

    2、通用寄存器

    AX、BX、CX、DX这4个寄存器通常用来存放一般性的数据,被称为通用寄存器。
    以AX为例,寄存器的逻辑结构图如下:

    字在寄存器中的存储字在寄存器中的存储

    3 字在寄存器中的存储

    4、物理地址

    存储单元又叫内存单元,以后我们多数用内存单元这一名称。
    所有的内存单元构成的存储空间是一个一维的线性空间,每一个内存单元在这个空间中都有唯一的地址,我们将这个唯一的地
    址称为物理地址。
    CPU通过地址总线送入内存的,必须是一个内存单元的物理地址,在CPU向地址总线上发出物理地址之前,必须要在内部先
    形成这个物理地址,不同的CPU可以有不同的形成物理地址的方式,我们现在讨论8086CPU是如何在内部形成内存单元的物理
    地址的。

    5、 8086CPU给出物理地址的方法

    8086CPU有20位地址总线,可以传送20位地址,而8086CPU内部结构是16位的,一次性只能传送16位的地址,怎么

    解决20位地址与16位地址不一致的问题呢?8086CPU采用一种在内部用2个16位地址合成的方法来形成一个20位的物理地

    址。

    当8086CPU要读写内存时,怎样在CPU内部形成物理地址的呢?

    1:CPU中的相关部件提供2个16位的地址,一个称为段地址,另一个称为偏移地址。

    2:段地址和偏移地址通过内部总线送入一个称为地址加法器的部件。

    3:地址加法器将这两个16位地址合成为1个20位的物理地址。

    地址加法器采用“段地址×16+偏移地址”的方法合成物理地址。即:段地址×16+偏移地址=物理地址。

    “段地址×16”可以理解为段地址的16倍,以下这个说法更好理解。

    我们把16转化为十六进制10,然后计算一下。假设段地址=2A7,2A7×10=2A70,计算结果2A70相对于段地址2A7左

    移了一位,所以,段地址×16可以理解为:段地址左移一位。

    问答题:如果段地址=A100,偏移地址=42B,那么,物理地址=?

    答:段地址×16=段地址左移一位,即A100左移一位=A1000,A1000+42B=A142B,所以,物理地址是:A142B。

    8086CPU要访问地址为123C8H的内存单元,此时,地址加法器的工作过程如下图所示(图中数据皆为十六进制表示):

    6  CS和IP

    8086CPU在访问内存时,要由相关部件提供内存单元的段地址和偏移地址,然后送入地址加法器合成物理地址,那么,是什

    么部件提供段地址呢?是段寄存器提供段地址。8086CPU有4个段寄存器:CS、DS、SS、ES,本章先讲解CS。

    CS和IP是8086CPU中2个最为关键的寄存器,它们指示了CPU当前要读取指令的地址,我们看一下CE,可以看出在游

    戏中,什么是CPU要读取的指令地址,见下图:


     

     

    上图指令执行后,AX中的数值为0123H。那么,接下来就是读取、执行下一条指令 BB 03 00(mov bx,0003h)了。

    CS和IP的重要性在于它们的数值提供了CPU要执行指令的地址。

    在1.5节中,我们说过,在内存中指令和数据没有任何区别,都是二进制信息,CPU在工作的时候,把有的信息看作指令,

    把有的信息看作数据,那么,CPU在什么时候把它看作指令?在什么时候把它看作数据呢?现在我们可以回答第一个问题了。

        答:只要内存单元(二进制信息)被CS:IP指向,那么,这些内存单元就会被CPU看作指令执行。

    7  修改CS和IP的指令

    Mov被称为传送指令,可以修改大部分寄存器的值。如:mov ax,123H,将ax中的值设为123H,同样地,我们可以mov
    bx,2a4H  mov cx,5f0H  mov dx,b29H 等等。但是,mov不能修改CS和IP这两个寄存器的值,因为8086CPU没有提

    供这样的功能。

    要修改CS和IP的值,可以用jmp指令,事实上,还有一些指令是可以修改CS和IP的,这些指令被统称为转移指令,这

    个在后面的课程会讲到,现在先学习这个最简单的转移指令:jmp。

    若想同时修改CS和IP的值,可用形如“jmp 段地址:偏移地址”的指令完成。如:jmp 2ae3:9,执行后:CS=2ae3H,

    IP=9H,CPU将从2ae39H处读取指令。

    “jmp 段地址:偏移地址”指令的功能为:用指令中给出的段地址修改CS,偏移地址修改IP。

    若想仅修改IP的值,可用形如“jmp 某一合法寄存器”的指令完成。如:jmp ax,执行前ax=437aH,CS=17f0H,IP=

    423cH,执行后,CS不变,IP=437aH。

    “jmp 某一合法寄存器”指令的功能为:用寄存器中的值修改IP。为什么叫“某一合法寄存器”?因为不是所有寄存器都可

    以修改IP。


    8 代码段

    在编程时,可以根据需要,将一组内存单元定义为一个段。段分3种类型:代码段、数据段、栈段。

    对于8086PC机,我们可以将长度为N(N≤64KB)的一组代码(机器指令和汇编指令),存在一组地址连续、起始地址为

    16的倍数的内存单元中,我们将这一组内存单元定义为代码段。

    比如,将:  机器指令        汇编指令

                B8 00 00       mov ax,0000H

                05 23 01       add ax,0123H

                8B D8          mov bx,ax

                FF E3          jmp bx

    这段长度为10字节的指令,存放在123B0H~123B9H的一组内存单元中,我们就可以认为这是一个代码段。若要让CPU

    执行这些指令,必须要将CS:IP指向代码段中第一条指令的首地址(123B0H)

     

    展开全文
  • 寄存器cpu工作原理)(一)

    千次阅读 2017-11-13 19:06:19
    一个典型的cpu由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。 区别 内部总线实现cpu内部各个器件之间的联系 外部总线实现cpu外部和主板上其他器件的联系8060cpu有14个寄存器 8086cpu所有寄存器...

    cpu概述
    一个典型的cpu由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。
    区别
    内部总线实现cpu内部各个器件之间的联系
    外部总线实现cpu外部和主板上其他器件的联系

    8060cpu有14个寄存器
    这里写图片描述

    8086cpu所有寄存器都是16位的,可以存放两个字节。
    AX、BX、CX、DX通常用来存放一般性数据被称为通用寄存器。

    AX(16位)寄存器的逻辑结构
    一个16位的寄存器可以存储一个16位的数据
    这里写图片描述
    这里写图片描述

    8086上一代cpu中的寄存器都是8位的
    为保证兼容性,这四个寄存器都可以分为两个独立的8位寄存器使用。
    AX可以分为AH和AL;
    BX可以分为BH和BL;
    CX可以分为CH和CL;
    DX可以分为DH和DL;

    8086cpu的8位寄存器存储逻辑
    如果要兼容以前的系统,AH全部填0
    这里写图片描述

    展开全文
  • 第二章 寄存器(cpu工作原理)

    千次阅读 2014-01-31 19:27:29
    第二章 寄存器(cpu工作原理) 概述 一个典型的cpu由运算器 控制器 寄存器等器件组成,这些器件靠内部总线相连 8086 cpu有14个存储器,他们的名称为: AX BX CX DX SI DI SP BP IP CS SS DS ES ...
  • 寄存器CPU工作原理)

    千次阅读 2019-05-03 21:21:59
    8086CPU有14个寄存器,他们的名字称为诶:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。 8086CPU所有的寄存器都是16位的,可以存放两个字节。 为了保证兼容性,这四个寄存器都可以分为两个独立的8位...
  • Intel CR寄存器CPU工作模式

    千次阅读 2007-05-14 16:08:00
    intel中的cr寄存器: 控制寄存器(CR0、CR 1、CR2和CR3)用於控制和确定处理器的操作模式以及当前执行任务的特性。 CR0:中含有控制处理器操作模式和状态的系统控制标志; CR1:保留不用; CR2:含有导致页错误的線性...
  • 运算器进行信息处理,寄存器进行信息存储,控制器控制各个器件进行工作,内部总线连接各个器件,在他们之间进行数据的传送。 对于程序员来说,cpu的主要器件就是寄存器寄存器cpu中程序员可以用指令读写的的部件,...
  • CPU工作原理 CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连 2.1通用寄存器 8086有14个寄存器(16位):AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW AX,BX,CX,DX称为通用寄存器,用来存放一般...
  • 寄存器 一个典型的CPU由运算器、控制器、寄存器等器件组成,...CPU中主要的部件是寄存器寄存器CPU中我们可以使用指令读写的部件(通过改变各种寄存器的内容来实现对CPU的控制) 不同的CPU寄存器的个数也不同,...
  • 8086CPU有14个寄存器(8个通用寄存器),分别为: AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW 8086CPU所有寄存器都是16位的,可以存放两个字节(一个字) AX,BX,CX,DX是通用寄存器,存放一般性数据 8086上...
  • 16位的CPU如何用内部16位的数据转换成20位的地址呢? 内存单元地址小结: debug使用: 转载于:https://www.cnblogs.com/souhaite/p/10838019.html...
  •  CPU主要由:运算器、控制器、寄存器、等构件组成,这些器件在CPU的内部是靠总线相连的。在CPU中:运算器进行信息处理;寄存器进行信息存储;控制器控制各种器件进行工作;内部总线连接各种器件,在它们之间进行...
  • 1. 一个典型的CPU有运算器、控制器、寄存器等器件构成,这些器件靠内部总线相连。 2. 前一章所说的总线,相对于CPU内部总线来说是外部总线。内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上...
  • PC寄存器(指令地址寄存器): 用来存放在内存中的下一条指令所在的地址 指令寄存器: 用来存放当前正在执行的指令 ...CPU 中有很多用来存放数据或者内存地址的寄存器,通常一类中不止一个,通...
  • 寄存器CPU缓存内存的关系

    千次阅读 2013-06-17 14:08:53
    寄存器属于CPU的一个组成部分而缓存只是集成到CPU封装内完全是和CPU独立的器件。另外二者速度相差很大,寄存器存取速度最快 其次缓存最后是内存。三张容量上的关系就像饭碗、饭锅和米缸的关系,容量越大级别越低,...
  • 问题:单片机8051中的一些寄存器到底算CPU的还是RAM的? 请高手指点,像累加器DPTR,A,PSW等一些寄存器是属于CPU的,但书上又说他们都属于RAM中的特殊功能寄存器(SFR),这是什么道理? 另外,存储器和寄存器...
  • linux读写cpu寄存器 linux寄存器读写 linux操作cpu寄存器实例 linux应用层读写寄存器代码 QString Mcu::get_cpu_serial_number() { QString serialNo; int fd = ::open("/dev/mem", O_RDWR | O_NDELAY); ...
  • 题目:有关TI DSP的一些东西(整理一些网络资源及手册资料)--外设寄存器CPU控制寄存器、数据类型、中断的使用 原文:http://blog.csdn.net/jbb0523/article/details/7799919 ===========================...
  • GIC-400寄存器CPU接口

    千次阅读 2017-06-21 16:50:59
    偏移 名称 可读写类型 复位 ...CPU Interface Control Register  使能位。写入1使能 0x0004 GICC_PMR RW 0x00000000 Interrupt Priority Mask Register 限制中断最低优先级,
  • 附上本人绘制的cache、寄存器cpu、内存之间的关系脑图,如果你有所收获希望大家看完能给我的脑图点个赞谢谢!!! https://www.processon.com/view/link/6038cc331e085364c6761ffb 问题起因: 陈铁力在公司的一...
  • CPU通用寄存器

    2019-12-02 16:54:01
    要想真正的了解计算机,首先要了解的便是CPUCPU是计算机的核心部件,因为计算机的所有指令都是由CPU处理的,而CPU的核心部件之一就是寄存器。所以了解寄存器寄存器是如何工作的才能真正明白计算机的工作原理。 ...
  • CPU寄存器

    千次阅读 2010-11-07 00:20:00
     4个数据寄存器(EAX、EBX、ECX和EDX)  2个变址和指针寄存器(ESI和EDI)  2个指针寄存器(ESP和EBP)  6个段寄存器(ES、CS、SS、DS、FS和GS)  1...32位CPU有4个32位的通用寄存器EAX、EBX、
  • CPU寄存器详解

    千次阅读 2018-10-23 20:06:36
    在学习汇编和操作系统的过程中,总是要与许多的寄存器打交道,因此写下这篇文章,总结一下CPU寄存器的基本知识。 1.CS:IP寄存器 CS为代码段寄存器,IP为段偏移寄存器,CS:IP指示了CPU当前要读取的指令的地址。在...
  • 所谓通用,即这些寄存器CPU没有特殊的用途,交给应用程序“随意”使用。注意,这个随意,我打了引号,对于有些寄存器,CPU有一些潜规则,用的时候要注意。 eax: 通常用来执行加法,函数调用的返回值一般也放在这...
  • eip: 指令寄存器可以说是CPU中最最重要的寄存器了,它指向了下一条要执行的指令所存放的地址,CPU工作其实就是不断取出ip指向的指令并指行,同时指令寄存器继续指向下面一条指令,如此不断重复,这就是CPU的执行...
  • CPU的内部工作原理(寄存器)

    千次阅读 2016-10-29 14:34:38
    一个典型CPU(X86)由运算器、控制器和寄存器等器件组成,这些器件靠内部总线相连。 内部总线:实现CPU内部各个器件之间的联系。 外部总线:实现CPU和主板上其它器件的联系。 8086CPU有14个寄存器:AX、BX、CX、DX、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 220,879
精华内容 88,351
关键字:

寄存器如何让cpu工作