zoukankan      html  css  js  c++  java
  • 寄存器

    一、简介

    寄存器组是CPU中的一个重要组成部分,它是CPU内部的临时存储空间。寄存器既可以用来存放数据和地址,也可以存放控制信息或CPU工作时的状态。

    二、分类

    CPU中的寄存器通常分为存放数据的寄存器、存放地址的寄存器、存放控制信息的寄存器、存放状态信息的寄存器和其他寄存器等类型。

    PC:程序计数器;IR:指令寄存器;PSW:状态字寄存器;通用寄存器组。

    三、优点、缺点

    在CPU中增加寄存器的数量,可以使CPU把执行程序时所需的数据尽可能地放在寄存器中,从而减少访问内存的次数,提高其运行速度。

    但是,寄存器的数目也不能太多,除了增加成本外,寄存器地址编码增加还会增加指令的长度。

    四、详解

    PC:存放指令地址的寄存器,当程序顺序执行时,每取出一条指令,PC内容自动增加一个值,指向下一条要取的指令。当程序出现转移时,则将转移地址送入PC,然后由PC指向新的指令地址。

    IR:存放正在执行的指令,指令从内存取出后送入指令寄存器。其操作码部分经指令译码器送微操作信号发生器,其地址码部分指明参加运算的操作数的地址形成方式。在指令执行过程中,指令寄存器中的内容保持不变。

    PSW:用于保存指令执行完成后产生的条件码,例如运算是否有溢出,结果为正还是为负,是否有进位等。此外,PSW还保存中断和系统工作状态等信息。

    通用寄存器组:是CPU中的一组工作寄存器,运算时用于暂存操作数或地址。在程序中使用通用寄存器可以减少访问内存的次数,提高运算速度。

    累加寄存器是一个数据寄存器,在运算过程中暂时存放被操作数和中间运算结果,累加器不能用于长时间地保存一个数据。

    地址寄存器包括程序计数器、堆栈指示器、变址寄存器和段地址寄存器等,用于记录各种内存地址。

    在汇编语言程序中,程序员可以直接访问通用寄存器以存取数据,可以访问状态字寄存器以获取有关数据处理结果的相关信息,可以通过相对程序计数器进行寻址,但是不能访问指令寄存器。指令寄存器对用户是完全透明的。

  • 相关阅读:
    command injection命令注入
    使用burp进行brute force破解
    vim 常用命令
    mysql.ini 配置
    便捷的 chrome/Firefox扩展
    canves 图片旋转 demo
    lucene 学习一
    php 命令行方式运行时 几种传入参数的方式
    mysql 命令行参数
    java 实现WebService 以及不同的调用方式
  • 原文地址:https://www.cnblogs.com/SQP51312/p/6018281.html
Copyright © 2011-2022 走看看