精华内容
下载资源
问答
  • 寄存器CS指向存放程序的内存段,IP是用来存放下条待执行的指令该段的偏移量,把它们合一起可该内存段内取到下次要执行的指令。 段寄存器SS指向用于堆栈的内存段,SP是用来指向该堆栈的栈顶,把它们合...

    含义编辑

    段寄存器CS指向存放程序的内存段,IP是用来存放下条待执行的指令在该段的偏移量,把它们合在一起可在该内存段内取到下次要执行的指令。
    段寄存器SS指向用于堆栈的内存段,SP是用来指向该堆栈的栈顶,把它们合在一起可访问栈顶单元。另外,当偏移量用到了指针寄存器BP,则其缺省的段寄存器也是SS,并且用BP可访问整个堆栈,不仅仅是只访问栈顶。
    段寄存器DS指向数据段,ES指向附加段,在存取操作数时,二者之一和一个偏移量合并就可得到存储单元物理地址。该偏移量可以是具体数值、符号地址和指针寄存器的值等之一,具体情况将由指令的寻址方式来决定。
    通常,缺省的数据段寄存器是DS,只有一个例外,即:在进行串操作时,其目的地址的段寄存器规定为ES。当然,在一般指令中,我们还可以通过改变前缀中的“段取代”字段来改变操作数的段寄存器。
    “可选用的段寄存器”即是可以用强置说明这些段寄存器的值来作为其操作数地址的段地址

    2组成编辑

    段寄存器:在8086系统中,访问存储器地址码段地址和段内偏移地址两部分组成。段寄存器用来存放各分段的逻辑基值,并指示当前正在使用的4个逻辑段,包括代码段寄存器CS、堆栈段寄存器SS、数据段寄存器DS和附加段数据寄存器ES。

    3分类编辑

    1,代码段寄存器CS(Code Segment):存放当前正在运行的程序代码所在段的段基址,表示当前使用的指令代码可以从该段寄存器指定的存储器段中取得,相应的偏移量则由IP提供。
    2,数据段寄存器DS(Data Segment):指出当前程序使用的数据所存放段的最低地址,即存放数据段的段基址。
    3,堆栈段寄存器SS(Stack Segment):指出当前堆栈的底部地址,即存放堆栈段的段基址。
    4, 附加段寄存器ES(Extra Segment):指出当前程序使用附加数据段的段基址,该段是串操作指令中目的串所在的段。

    代码段寄存器与数据段寄存器有什么区别?

    举报|2009-10-31 11:16xzuok | 分类:网站使用 | 浏览1719次
    代码和数据不是一回事吗?
    2009-10-31 14:57提问者采纳
    区别就是一个放代码一个放数据~所谓的数据就是比如你定义了一个字符串~然后想对这个字符串进行什么什么操作~这个你定义的字符串就是数据~而代码就是比如你想把这个字符串循环3变输出~这个描述循环3遍的就是代码~
    
    
    s8435330songya2014-8-17 17:20
    当然还有一个堆栈段,这些就是c的内存分布,栈、堆、常量,静态常量,全局变量、代码段。要理解程序具体是如何运行的,还要知道内存管理,如何从逻辑地址到线性地址再到最终的物理地址。回复
    s8435330songya2014-8-17 17:16
    我感觉是这样的,CPU对数据进行运算和操作,都是通过寄存器来实现的,CPU通过数据总线和地址总线来寻找数据放在寄存器里。数据段寄存器加上地址偏移量sp或bp,就寻址到一个真实的物理地址,里面存着数据。cpu就可以对这个数据进行操作了。如何操作,这个要代码段寄存器和ip来寻找操作指令。这就是CPU的工作模式回复

    展开全文
  • 64位环境,通常使用名称x0-x30来引用这些寄存器32位环境寄存器是使用w0-w30指定的。 此外,堆栈指针寄存器SP可以与数量有限的指令一起使用。SP堆栈指针r30 LR链接寄存器r29 FP框架指针r19…r28被调用...

    对于64位ARM,为A64(来自ARM 64位体系结构的过程调用标准)

    A64指令集可见31个64位通用(整数)寄存器。 这些标记为r0-r30。 在64位环境中,通常使用名称x0-x30来引用这些寄存器。 在32位环境中,寄存器是使用w0-w30指定的。 此外,堆栈指针寄存器SP可以与数量有限的指令一起使用。

    SP堆栈指针

    r30 LR链接寄存器

    r29 FP框架指针

    r19…r28被调用者保存的寄存器

    r18平台寄存器(如果需要); 否则为临时寄存器。

    r17 IP1第二个过程内调用临时寄存器(可以使用通过呼叫单板和PLT代码); 在其他时间可用作临时注册。

    r16 IP0第一个过程内调用暂存寄存器(可由调用使用单板和PLT代码); 在其他时间可用作临时注册。

    r9…r15临时寄存器

    r8间接结果位置寄存器

    r0…r7参数/结果寄存器

    前八个寄存器r0-r7用于将参数值传递到子例程中并从函数返回结果值。 它们还可以用于在例程中保留中间值(但通常仅在子例程调用之间)。

    链接程序可以将寄存器r16(IP0)和r17(IP1)用作例程与其调用的任何子例程之间的暂存寄存器。 它们也可以在例程中使用,以保存子例程调用之间的中间值。

    寄存器r18的作用是特定于平台的。 如果平台ABI需要专用的通用寄存器来承载过程间状态(例如,线程上下文),则应为此目的使用该寄存器。 如果平台ABI没有此类要求,则应使用r18作为附加的临时寄存器。 平台ABI规范必须记录该寄存器的用法。

    SIMD

    ARM 64位体系结构还具有另外32个寄存器v0-v31,可由SIMD和浮点运算使用。 寄存器的确切名称将更改,表明访问的大小。

    注意:与AArch32不同,在AArch64中,SIMD和浮点寄存器的128位和64位视图在较窄的视图中不与多个寄存器重叠,因此q1,d1和s1都引用该寄存器中的同一条目 银行。

    前八个寄存器v0-v7用于将参数值传递到子例程中并从函数返回结果值。 它们还可以用于在例程中保留中间值(但通常仅在子例程调用之间)。

    被调用者必须在子例程调用之间保留v8-v15寄存器。 其余的寄存器(v0-v7,v16-v31)不需要保留(或应由调用方保留)。 此外,仅需要保留v8-v15中存储的每个值的最低64位; 调用方有责任保留较大的值。

    展开全文
  • JAVA的PC寄存器是对物理PC寄存器的一种抽象模拟,线程私有,生命周期和线程生命...由于保存的是线程需要执行的字节码的偏移地址,内容可知,native方法由于不是Java字节码方法,因此pc寄存器在native方法执行时...

           JAVA中的PC寄存器是对物理PC寄存器的一种抽象模拟,线程私有,生命周期和线程生命周期保持一致,,pc寄存器就保存java虚拟机正在执行的字节码地址,如果是native方法,pc寄存器的值为空(undefined)。

    PC寄存器为什么不会溢出

           由于保存的是线程需要执行的字节码的偏移地址,内容可知,native方法由于不是Java字节码方法,因此pc寄存器在native方法执行时未指定具体指。

    展开全文
  • 程序计数器(PC)又称指令计数器,用来存放正在执行的指令地址或接着要...当指令从主存取出存于指令寄存器之后,执行指令的过程,指令寄存器的内容不允许发生变化,以保证实现指令的全部功能。存储器数据寄存器(M...
    f3deb357ce3d0a06a5486db70b6657b8.png

    程序计数器(PC)

    又称指令计数器,用来存放正在执行的指令地址或接着要执行的下一条指令地址

    一般情况下顺序执行,程序计数器的内容不断的+1。如果需要改变发变顺序执行,只要将跳转的目标地址送往程序计数器就可实现。

    指令寄存器(IR)

    指令寄存器用来存放从存储器中取出的指令。

    当指令从主存取出存于指令寄存器之后,在执行指令的过程中,指令寄存器的内容不允许发生变化,以保证实现指令的全部功能。

    存储器数据寄存器(MAR)

    用来暂时存放由主存储器读出的一条指令或一个数据字

    主存储器写入一条指令或一个数据字时,也暂时将它们存放在存储器数据寄存器中。

    数据字,由于计算机使用的信息既有指令又有数据,所以计算机字可以代表指令,也可以代表数据。如果某字代表要处理的数据,则称为 数据字;如果某字为一条指令,则称为指令字。

    存储器地址寄存器(MDR)

    用来保存当前CPU所访问的主存单元的地址。

    由于主存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到主存的读写操作完成为止。

    当CPU和主存进行信息交换,无论是CPU向主存写数据,还是CPU从主存中读出指令时,都要使用存储器地址寄存器数据寄存器

    状态标志寄存器(PSWR)

    用来存放程序状态字(PSW)。

    程序状态字的各位表征程序和机器运行的状态,是参与控制程序执行的重要依据之一。

    表征程序是啥?有那个同学知道可以解答一下,查阅了资料没找到。

    状态标志寄存器的位数往往等于机器字长,各类机器的状态标志寄存器的位数和设置位置不尽相同。

    机器字长,是指计算机进行一次整数运算所能处理的二进制数据的位数(整数运算即定点整数运算)。因为计算机中数的表示有定点数和浮点数之分,定点数又有定点整数和定点小数之分,这里所说的整数运算即定点整数运算。机器字长也就是运算器进行定点数运算的字长,通常也是CPU内部数据通道的宽度。

    8086微处理器的状态标志寄存器

    8ced510dd4ea33875622f95f8fcb6519.png

    状态标志

    进位标志位(CF)

    辅助进位标志位(AF)

    溢出标志位(OF)

    零标志位(ZF)

    符号标志位(SF)

    奇偶校验标志位(PF)

    控制标志

    方向标志(DF),表示串操作指令中字符串操作的方向。

    中断允许标志位(IF),表示CPU是否能够响应外部的可屏蔽中断请求。

    陷阱标志位(TF),为了方便程序的调试,使处理器的执行进入单步方式而设置的控制标志位。

    aab904ccd718558bdf5c110bc30b5749.png

    参考资料: 《计算机组成原理教程》

    展开全文
  • KEIL如何查看寄存器的值与地址

    万次阅读 2019-04-08 22:46:35
    正确连接硬件,编译程序后,按下工具栏的调试按钮进入调试模式。...例如AHBIENR寄存器的值是0x0010 0084,将此十六进制的数据按照二进制展开,数据手册找到相应的寄存器,按位对照,并借助说明即可理...
  • 寄存器什么比内存快

    千次阅读 2017-05-22 16:02:03
    计算机最快的是寄存器,内存其次,最慢的是硬盘. 1.硬件设计不同: 相比较内存寄存器就是比较稀有的宝贵资源了,所以高性能,高成本,高耗电的设计都用在寄存器上.事实上确实如此,内存设计相对简单,每个位...
  • fs:[0]到底表示什么?TEB,PEB,TIB,PCRB结构的表示。 fs段寄存器在WINDOWS系统的作用
  • 了解移位寄存器,包括它们如何工作以将并行连接转换为串行连接。 所需的组件 ● Arduino Uno开发板 ...什么是移位寄存器? 移位寄存器是存储单个数据字的同步设备,并且可以对这些位执行逻辑移位操...
  • 寄存器

    2020-11-09 19:55:09
    CPU,一个二进制位被看作是一位,八位就是一个字节。内存,就是一字节单位来存储信息的,每一个字节单元给以一唯一存储器地址,称为物理地址,到时候访问相应的内存,就是通过这个地址。 八个二进制位可以...
  • 一、芯片结构ICode:Instruction 指令单元,程序存储FLASH,CPU通过ICode总线从FLASH读取程序进行执行4个主动单元:DCode:Data指的数据,程序常量放在FLASH,变量SRAM,内核取数据通过DCode数据总线...
  • 定时器分类为通用型定时器(T0-T245)与累积定时器(T246-255断电时当前值寄存器的值给予保存,再次通电原有值的基础上“累计”时间)。 1、定时器有两个与其相关的寄存器,分别是当前值寄存器和设定值寄存器。...
  • 众所周知,标准C或C++代码是没有HDL代码的并行性和时序性的,那么如何C代码插入寄存器呢?Vivado HLS提供了IP库,这些IP库使得HLS可直接从相应的C代码推断出对应的Vivado的IP。其中,这个IP库里就包含了移位...
  • 计算机的存储层次(memory hierarchy)之寄存器(register)最快,内存其次,最慢的是硬盘。 具体原因如下 一、距离不同 距离不是主要因素,但是最好懂,所以放在最前面说。内存离CPU比较远,所以要耗费...
  • 原创文章,转载请注明出处。...计算复杂表达式的过程产生的中间结果也保存在寄存器中。更复杂的编译器会把经常使用的变量放在寄存器里,来避免反复地存取。如果是优化的编译器,会把公共子表达式消除...
  • 什么寄存器

    2016-07-01 22:44:00
    图5-4,连接被控总线的是FLASH,RAM和片上外设,这些功能部件共同排列一个 4GB 的地址空间内。我们编程的时候,操作的也正是这些功能部件。 存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给...
  • 所以,B的栈帧保存A当时的指令地址(当时PC寄存器的值),当B执行完后,根据此返回地址跳回A。没有PC寄存器,执行器也会按照指令的顺序一条条正常执行。PC寄存器的作用在于多线程切换的时候,能找到每个线程执行的...
  • 我是知道寄存器CPU的,但是内存存储空间是硬件的哪里呢?知道这个问题的答案之后,觉得自己问这种问题确实点憨。你是不是啥傻?忘了有个东西叫做内存条?它是CPU之外的。想了这个问题之后,更加认识到实践...
  • 我有一个C函数,它可以通过打开设备描述符(nf10)将其完全读/写...有没有更好的方法硬件读/写寄存器相关Python代码:#! /usr/bin/env pythonimport osfrom fcntl import *from struct import *SIOCDEVPRIVAT...
  • KEIL如何查看寄存器

    千次阅读 2019-06-14 14:02:54
    正确连接硬件,编译程序后,按下工具栏的调试按钮进入调试模式。...例如AHBIENR寄存器的值是0x0010 0084,将此十六进制的数据按照二进制展开,数据手册找到相应的寄存器,按位对照,并借助说明即可理...
  • 所以,B的栈帧保存A当时的指令地址(当时PC寄存器的值),当B执行完后,根据此返回地址跳回A。没有PC寄存器,执行器也会按照指令的顺序一条条正常执行。PC寄存器的作用在于多线程切换的时候,能找到每个线程执行的...
  • 一、什么寄存器寄存器,是集成电路非常重要的一种存储单元,通常由触发器组成。集成电路设计寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两类。内部寄存器不能被外部电路或软件访问,只是...
  • 下面将要介绍的是一组非常非常重要的寄存器,即 CS:IP 。... 8086 CPU ,为什么 CPU 会自动的执行指令呢? 这些指令肯定是存放内存的,但是 CPU 怎么知道这些指令存放内存的那个位置呢...
  • CPU的寄存器中,()对用户是完全透明的。

    千次阅读 多人点赞 2020-06-16 11:03:24
    CPU的寄存器中,()对用户是完全透明的。 A.程序计数器 B.指令寄存器 C.状态寄存器 D.通用寄存器 答案:【B】 解析: 首先,了解一下计算机网络对用户“透明”是什么意思? 1、“透明”一次计算机领域通常是指...
  • 第5章 什么寄存器

    2019-09-29 20:47:03
    本章参考资料:《STM32F76xxx参考手册》、《STM32F76xxx数据手册》、学习本章时,配合《STM32F76xxx参考手册》“存储器和总线架构”、“嵌入式FLASH...这是我们本章需要讲解的内容,学习的过程,大家带着这个疑...
  • 什么寄存器寄存器,是集成电路非常重要的一种存储单元,通常由触发器组成。集成电路设计寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两类。内部寄存器不能被外部电路或软...
  • 我们希望普通计算机上的Windows操作系统编写并运行一个程序,来实时监控这台计算机的寄存器值以及运行的指令信息。 1.我们原先是QEMU虚拟机下收集相关的寄存器信息,以及正在执行的所有指令操作,希望通过...
  • 寄存器什么?就像人的正常生活需要吃喝拉撒,一个程序的运行也需要各方面的东西,如堆、栈和寄存器,今天首先谈一下寄存器。如果使用过OD、x64dbg之类的调试器,可以发现汇编代码大多是对寄存器进行操作。为什么...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,025
精华内容 1,610
关键字:

寄存器在什么中