-
由于8086CPU中的数据线是20位,但寄存器实际上是16位,数据线可以访问2的20字节数据,即1M数据,但是寄存器只有16位,所以只能用两个寄存器来存储地址,两个寄存器都是16位, 一个称为段寄存器,另一个称为偏移寄存器,它将段寄存器乘以 16 以将段寄存器的内容相加。
例如,内存等于一条街道,地址从 0 到 100,如果你的家是 56,那么段地址是 50 + 偏移地址 6,这是你的家,但在处理器中段寄存器是 16 位,但实际上段地址是 20 位,只将段地址除以 16 或将 16 位数据放入段寄存器中, 然后在使用时乘以 16,并添加偏移地址。
-
每个段寄存器保存每个段的段头地址的,..
这句话。 有点接近正确答案。
在它后面的“段寄存器”的内容上加四个二进制零,这是每个段开头的地址。
例如,如果数据段寄存器的内容为:0010 0011 0100 1000,则数据段的起始地址为:0010 0011 0100 1000 0000
将四个零相乘,再乘以 16,即左边的四个位置。
要知道,地址的位数总数为20位,段寄存器中只能存储16位,后跟4个零,这是物理地址的起始位置。
-
段寄存器“具有以下功能:
1、在保护模式下,段寄存器实际上是一个段选择器,它起到获取段描述表中某项的索引作用等;
2.在实模式下,段寄存器起到寻址的作用,指示某个数据段的基址。
“段寄存器”的类别是:
1.段寄存器CS指向存储程序的存储器段,肢体IP用于存储段中要执行的下一条指令的偏移量,它们可以组合在一起,得到存储器段中要执行的下一条指令。
2.段寄存器SS指向用于堆栈的内存段,SP用于指向堆栈的顶部,通过组合可以访问堆栈的顶部单元。 此外,当偏移量使用指针寄存器 bp 时,默认段寄存器也是 ss,并且 bp 可以访问整个堆栈,而不仅仅是堆栈的顶部。
3.段寄存器DS指向数据段,ES指向附加段,在访问操作数时,可以将两者中的一个和一个偏移量组合在一起,得到存储单元的物理地址。 此偏移量可以是特定数值、符号地址、指针寄存器值等之一,具体取决于指令的寻址方式。
-
在古代,正如楼上所说,段寄存器指定了某条数据的存储位置及其长度。
但现在段寄存器的作用更多的是控制权限,我们可以通过od、windbg等模态工具看到每个进程寄存器的值,包括段寄存器、CS DS SS FS ES GS等。 每个段寄存器中的数据可以看作是一个结构体。 包括 16 位段选择器、32 位基数、32 位限制、16 位属性,共 96 位。
不难发现,在几个段寄存器中的基数是0,极限是ffffffff,我们都知道每个进程都有一个虚拟独立的4GB空间,而0-ffffffffff能找到的范围只有4GB,但是有很多地方在用户模式下是无法访问的(可以理解为我们自己编写的程序), 而如果要访问那些无法访问的地方,则需要修改段寄存器的值,以达到访问的目的。
当然,有些地方是不能单独修改部分寄存器的,有页面机制来保护这些地方。
如果想更深入,可以看一下CPU保护模式。
-
1、段寄存器CS:存储当前运行的程序所在的段的段基值,表示当前使用的指令可以从段寄存器指定的存储段中获取,对应的偏移值由IP提供。
4. 附加段寄存器ES:当前程序使用附加数据段的段的基址,即字符串操作指令中目标字符串所在的段。
段注册是地址或数据还是其他东西? 它是段的基值,是段的起点(具体地址是段的基值+偏移量),这个值是地址而不是数据。
-
1.寄存器主要由一个触发器和一些控制门组成,每个触发器可以存储一点二进制代码,并存储n位数字,应该有一个n位触发器。 为了使触发器与寄存器一起正常工作,还必须有适当的门电路来形成控制电路。
2.锁存器由电平触发器完成,N级触发器的时钟端连接在一起,在CP的作用下接受n位二进制信息。 图1所示为一个四位锁存器的电路,四电平触发的D触发器可以寄存四位二进制数。
当CP为高电平时,将D1 D4的数据分别发送到四个触发器,使输出Q1 Q4与输入数据一致,当CP为低时,触发器状态保持不变,从而达到锁存数据的目的。 大多数集成锁存器由电平 D 触发器组成,有些具有三态栅极输出,便于连接到总线。
从寄存器数据来看,锁存器和寄存器的功能是一样的,区别只是锁存器使用电平触发器,而寄存器使用边缘触发器。
移位寄存器。 它由一个 RS 触发器和一些栅极电路组成。
-
例如,当你编写一个程序时,你需要定义自己的变量,你可以指定这些变量放在某个寄存器中(类似于超市的临时储物柜)。 你可以自己指定,也可以请他们的工作人员帮你放)或者电脑在计算时会生成一些数据,这些数据会暂时放在寄存器中,程序会在必要时从寄存器中检索数据,当然寄存器中的数据也可以被覆盖。
如果你用C语言写,电脑会分配自己的寄存器,就像你让超市工作人员帮你把物品一个一个地存放起来一样,如果是组装,你就要分配每个寄存器里要存储的东西,区别在于你在计算过程中就知道数据, 一是电脑自己安排,你不需要知道太多。青姬孝道。
寄存器的数据来自要定义的变量,以及操作过程中生成的数据。 此数据不受丢失保护,并存储在寄存器中。
-
寄存器是处理器的一部分。 寄存器是存储容量有限的高速存储组件,可用于暂存指令、数据和地址。 在处理器的控制部分,有指令寄存器(IR)和程序计数器等寄存器。
在处理器的算术和逻辑组件中,包含的寄存器中有累加器。
在计算机体系结构中,处理器中的暂存器是少量且快速的计算机内存,它通过提供对值的快速和通用访问来加速计算机程序:通常是在已知时间点进行的计算之间的值。
暂存器是内存层次结构的最顶层部分,也是系统操作数据的最快方式。 暂存器通常根据它们可以保存的位数来衡量,例如,8 位暂存器或 32 位暂存器。 暂存器现在被实现为暂存器阵列,但它们也可以在几台机器上使用单独的反射、高速内核存储器、薄膜存储器和其他方法实现。
该术语通常用于指一组寄存器,这些寄存器可以直接由指令的输出或输入进行索引。 称它们为“模式暂存器”更为合适。 例如,x86 指令集定义了 8 个 32 位暂存器的集合,但实现 x86 指令集的 CPU 可以包含 8 个以上。
您好,亲爱的,寄存器根据功能的不同可以分为并行寄存器和移位寄存器。 并行寄存器是并行输入和输出寄存器。 除了寄存器的功能外,存储的数字还可以在时钟脉冲的作用下移位。 >>>More
由于 ARM 有 7 种处理器模式(用户 USR、中断 IRQ、快速中断 FIQ、管理 SVC、中止 ABT、未定义 UND、系统 SYS),因此 37 个寄存器划分如下: >>>More
绝对位置控制指令 DRVA --- Mitsubishi FX 系列 PLC 应用说明 绝对位置控制指令 DRVA 是一个非常实用的脉冲指令,应用的关键是了解 D8140 或 D8142 寄存器的使用。 绝对位置控制命令drva的格式:drvad0d2y0y2*d0: >>>More