段寄存器中究竟存储了什么? 加油

发布于 科技 2024-04-07
8个回答
  1. 匿名用户2024-01-27

    由于8086CPU中的数据线是20位,但寄存器实际上是16位,数据线可以访问2的20字节数据,即1M数据,但是寄存器只有16位,所以只能用两个寄存器来存储地址,两个寄存器都是16位, 一个称为段寄存器,另一个称为偏移寄存器,它将段寄存器乘以 16 以将段寄存器的内容相加。

    例如,内存等于一条街道,地址从 0 到 100,如果你的家是 56,那么段地址是 50 + 偏移地址 6,这是你的家,但在处理器中段寄存器是 16 位,但实际上段地址是 20 位,只将段地址除以 16 或将 16 位数据放入段寄存器中, 然后在使用时乘以 16,并添加偏移地址。

  2. 匿名用户2024-01-26

    每个段寄存器保存每个段的段头地址的,..

    这句话。 有点接近正确答案。

    在它后面的“段寄存器”的内容上加四个二进制零,这是每个段开头的地址。

    例如,如果数据段寄存器的内容为:0010 0011 0100 1000,则数据段的起始地址为:0010 0011 0100 1000 0000

    将四个零相乘,再乘以 16,即左边的四个位置。

    要知道,地址的位数总数为20位,段寄存器中只能存储16位,后跟4个零,这是物理地址的起始位置。

  3. 匿名用户2024-01-25

    段寄存器“具有以下功能:

    1、在保护模式下,段寄存器实际上是一个段选择器,它起到获取段描述表中某项的索引作用等;

    2.在实模式下,段寄存器起到寻址的作用,指示某个数据段的基址。

    “段寄存器”的类别是:

    1.段寄存器CS指向存储程序的存储器段,肢体IP用于存储段中要执行的下一条指令的偏移量,它们可以组合在一起,得到存储器段中要执行的下一条指令。

    2.段寄存器SS指向用于堆栈的内存段,SP用于指向堆栈的顶部,通过组合可以访问堆栈的顶部单元。 此外,当偏移量使用指针寄存器 bp 时,默认段寄存器也是 ss,并且 bp 可以访问整个堆栈,而不仅仅是堆栈的顶部。

    3.段寄存器DS指向数据段,ES指向附加段,在访问操作数时,可以将两者中的一个和一个偏移量组合在一起,得到存储单元的物理地址。 此偏移量可以是特定数值、符号地址、指针寄存器值等之一,具体取决于指令的寻址方式。

  4. 匿名用户2024-01-24

    在古代,正如楼上所说,段寄存器指定了某条数据的存储位置及其长度。

    但现在段寄存器的作用更多的是控制权限,我们可以通过od、windbg等模态工具看到每个进程寄存器的值,包括段寄存器、CS DS SS FS ES GS等。 每个段寄存器中的数据可以看作是一个结构体。 包括 16 位段选择器、32 位基数、32 位限制、16 位属性,共 96 位。

    不难发现,在几个段寄存器中的基数是0,极限是ffffffff,我们都知道每个进程都有一个虚拟独立的4GB空间,而0-ffffffffff能找到的范围只有4GB,但是有很多地方在用户模式下是无法访问的(可以理解为我们自己编写的程序), 而如果要访问那些无法访问的地方,则需要修改段寄存器的值,以达到访问的目的。

    当然,有些地方是不能单独修改部分寄存器的,有页面机制来保护这些地方。

    如果想更深入,可以看一下CPU保护模式。

  5. 匿名用户2024-01-23

    1、段寄存器CS:存储当前运行的程序所在的段的段基值,表示当前使用的指令可以从段寄存器指定的存储段中获取,对应的偏移值由IP提供。

    4. 附加段寄存器ES:当前程序使用附加数据段的段的基址,即字符串操作指令中目标字符串所在的段。

    段注册是地址或数据还是其他东西? 它是段的基值,是段的起点(具体地址是段的基值+偏移量),这个值是地址而不是数据。

  6. 匿名用户2024-01-22

    1.寄存器主要由一个触发器和一些控制门组成,每个触发器可以存储一点二进制代码,并存储n位数字,应该有一个n位触发器。 为了使触发器与寄存器一起正常工作,还必须有适当的门电路来形成控制电路。

    2.锁存器由电平触发器完成,N级触发器的时钟端连接在一起,在CP的作用下接受n位二进制信息。 图1所示为一个四位锁存器的电路,四电平触发的D触发器可以寄存四位二进制数。

    当CP为高电平时,将D1 D4的数据分别发送到四个触发器,使输出Q1 Q4与输入数据一致,当CP为低时,触发器状态保持不变,从而达到锁存数据的目的。 大多数集成锁存器由电平 D 触发器组成,有些具有三态栅极输出,便于连接到总线。

    从寄存器数据来看,锁存器和寄存器的功能是一样的,区别只是锁存器使用电平触发器,而寄存器使用边缘触发器。

    移位寄存器。 它由一个 RS 触发器和一些栅极电路组成。

  7. 匿名用户2024-01-21

    例如,当你编写一个程序时,你需要定义自己的变量,你可以指定这些变量放在某个寄存器中(类似于超市的临时储物柜)。 你可以自己指定,也可以请他们的工作人员帮你放)或者电脑在计算时会生成一些数据,这些数据会暂时放在寄存器中,程序会在必要时从寄存器中检索数据,当然寄存器中的数据也可以被覆盖。

    如果你用C语言写,电脑会分配自己的寄存器,就像你让超市工作人员帮你把物品一个一个地存放起来一样,如果是组装,你就要分配每个寄存器里要存储的东西,区别在于你在计算过程中就知道数据, 一是电脑自己安排,你不需要知道太多。青姬孝道。

    寄存器的数据来自要定义的变量,以及操作过程中生成的数据。 此数据不受丢失保护,并存储在寄存器中。

  8. 匿名用户2024-01-20

    寄存器是处理器的一部分。 寄存器是存储容量有限的高速存储组件,可用于暂存指令、数据和地址。 在处理器的控制部分,有指令寄存器(IR)和程序计数器等寄存器。

    在处理器的算术和逻辑组件中,包含的寄存器中有累加器。

    在计算机体系结构中,处理器中的暂存器是少量且快速的计算机内存,它通过提供对值的快速和通用访问来加速计算机程序:通常是在已知时间点进行的计算之间的值。

    暂存器是内存层次结构的最顶层部分,也是系统操作数据的最快方式。 暂存器通常根据它们可以保存的位数来衡量,例如,8 位暂存器或 32 位暂存器。 暂存器现在被实现为暂存器阵列,但它们也可以在几台机器上使用单独的反射、高速内核存储器、薄膜存储器和其他方法实现。

    该术语通常用于指一组寄存器,这些寄存器可以直接由指令的输出或输入进行索引。 称它们为“模式暂存器”更为合适。 例如,x86 指令集定义了 8 个 32 位暂存器的集合,但实现 x86 指令集的 CPU 可以包含 8 个以上。

相关回答
6个回答2024-04-07

数据寄存器。

8086 有 8 个 8 位数据寄存器,每个 8 位寄存器都可以组合成一个 16 位寄存器 >>>More

3个回答2024-04-07

您好,亲爱的,寄存器根据功能的不同可以分为并行寄存器和移位寄存器。 并行寄存器是并行输入和输出寄存器。 除了寄存器的功能外,存储的数字还可以在时钟脉冲的作用下移位。 >>>More

9个回答2024-04-07

注册。 与内存的区别如下:

1.记忆功能:存储指令和数据,并可由第一处理器使用。 >>>More

6个回答2024-04-07

由于 ARM 有 7 种处理器模式(用户 USR、中断 IRQ、快速中断 FIQ、管理 SVC、中止 ABT、未定义 UND、系统 SYS),因此 37 个寄存器划分如下: >>>More

13个回答2024-04-07

绝对位置控制指令 DRVA --- Mitsubishi FX 系列 PLC 应用说明 绝对位置控制指令 DRVA 是一个非常实用的脉冲指令,应用的关键是了解 D8140 或 D8142 寄存器的使用。 绝对位置控制命令drva的格式:drvad0d2y0y2*d0: >>>More