科学网

 找回密码
  注册

tag 标签: 寄存器

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

[一些史前的东西]8086寄存器总结
andrewwang 2011-11-21 21:10
8086寄存器总结 (2009-12-08 14:02:42) 标签: 杂谈  在8086的EU--执行单元(Execution Unit)和BIU--总线接口单元(Bus Interface Unit)两部分中包含有一些工作寄存器,这些寄存器用来存放计算过程中的各种信息,如操作数地址、操作数及运算的中间结果等。微处理器从寄存器中存取数据比从存储器中存取数据要快的多,因此,在计算过程中,合理利用寄存器保存操作数、中间结果或其它信息,能提高程序的运行效率。根据这些寄存器所起的作用,8086寄存器组可以分为通用寄存器、专用寄存器和段寄存器三类 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   1. 通用寄存器   通用寄存器包括了8个16位的寄存器:AX、BX、CX、DX、SP、BP、DI及SI。其中AX、BX、CX、DX在一般情况下作为通用的数据寄存器,用来暂时存放计算过程中所用到的操作数、结果或其他信息。它们还可分为两个独立的8位寄存器使用,命名为AL、AH、BL、BH、CL、CH、DL和DH。这4个通用数据寄存器除通用功能外,还有如下专门用途:   AX作为累加器用,所以它是算术运算的主要寄存器。在乘除指令中指定用来存放操作数。另外,所有的I/O指令都使用AX或AL与外部设备传送信息。   BX在计算存储器地址时,可作为基址寄存器使用。   CX常用来保存计数值,如在移位指令、循环指令和串处理指令中用作隐含的计数器。 DX在作双字长运算时,可把DX和AX组合在一起存放一个双字长数,DX用来存放高16位数据。此外,对某些I/O操作,DX可用来存放I/O的端口地址。   SP、BP、SI、DI四个16位寄存器可以象数据寄存器一样在运算过程中存放操作数,但它们只能以字(16位)为单位使用。此外,它们更经常的用途是在存储器寻址时,提供偏移地址。因此,它们可称为指针或变址寄存器。   SP称为堆栈指针寄存器,用来指出栈顶的偏移地址。   BP称为基址指针寄存器,在寻址时作为基地址寄存器使用,但它必须与堆栈段寄存器SS联用来确定堆栈段中的存储单元地址。   SI为源变址寄存器,在串处理指令中,SI作为隐含的源变址寄存器与DS联用,以确定数据段中的存储单元地址,并有自动增量和自动减量的变址功能。   DI为目的变址寄存器,在串处理指令中,DI和附加段寄存器ES联用,以达到在附加段中寻址的目的,然后DI自动增量或减量。 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8086的专用寄存器包括IP、SP和FLAGS三个16位寄存器。   IP为指令指针寄存器,它用来存放将要执行的下一条指令地址的偏移量,它与段寄存器CS联合形成代码段中指令的物理地址。在计算机中,控制程序的执行流程就是通过控制IP的值来实现的。   SP为堆栈指针寄存器,它与堆栈段寄存器联用来确定堆栈段中栈顶的地址,也就是说SP用来存放栈顶的偏移地址。   FLAGS为标志寄存器,这是一个存放条件码标志、控制标志的16位寄存器。 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8086的标志寄存器 条件码标志用来记录程序中运行结果的状态信息,它们是根据有关指令的运行结果由(CPU)自动设置的。由于这些状态信息往往作为后续条件转移指令的转移控制条件,所以称为条件码。   ① 进位标志 CF,记录运算时最高有效位产生的进位值。   ② 符号标志 SF,记录运算结果的符号。结果为负时置1,否则置0。   ③ 零标志  ZF,运算结果为0时ZF位置1,否则置0。   ④ 溢出标志 OF,在运算过程中,如操作数超出了机器可表示数的范围称为溢出。溢出时OF位置1,否则置0。   ⑤ 辅助进位标志 AF,记录运算时第3位(半个字节)产生的进位值。   ⑥ 奇偶标志 PF,用来为机器中传送信息时可能产生的代码出错情况提供检验条件。当结果操作数中1的个数为偶数时置1,否则置0。   控制标志位有3位:   ① 方向标志 DF,在串处理指令中控制处理信息的方向。当DF=1时,串处理从高地址向低地址方向处理。当DF=0时,串处理就从低地址向高地址方向处理。   ② 陷阱标志 TF,用于调试时的单步方式操作。当TF=1时,每条指令执行完后产生陷阱,由系统控制计算机;当TF=0时,CPU正常工作,不产生陷阱。   ③ 中断标志 IF,用于控制可屏蔽硬件中断。当IF=1时,允许8086微处理器响应中断请求,否则关闭中断。   8086提供了设置某些状态信息的指令。必要时,程序员可使用这些指令来建立状态信息。 调试程序Debug中提供了测试标志位的手段,它用符号表示某些标志位的值 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   3. 段寄存器   8086微处理器共有4个16位的段寄存器,在寻址内存单元时,用它们直接或间接地存放段地址。   代码段寄存器CS:存放当前执行的程序的段地址。   数据段寄存器DS:存放当前执行的程序所用操作数的段地址。   堆栈段寄存器SS:存放当前执行的程序所用堆栈的段地址。   附加段寄存器ES:存放当前执行程序中一个辅助数据段的段地址。 注: 执行单元(Execution Unit):负责指令的执行,实际是既有控制器的功能,也有运算器的功能。包括:ALU、标志寄存器、暂存器、寄存器组、控制单元。EU和BIU是组成8086微处理器的两个基本功能部件,他们相互配合完成指令操作。当EU从指令队列中去走指令后,指令队列出现空字节,BIU就立即自动地从内存中取出后续的指令放入队列;当EU执行指令需要操作数时,BIU就根据EU给出的操作数有效地址,从指定的内存单元或I/O端口取出数据供EU使用;当EU运算结束后,BIU将运算结果写入指定的内存单元或I/O端口。EU和BIU这两个功能部件又是相互独立的。大多数情况下,EU的执行指令操作与BIU的取指令操作在实践上可重叠进行,既EU进行某条指令执行操作时,BIU可同时进行后继指令的取指令操作,这两个部件并行连续工作可形成指令处理流水线。这样,可减少CPU取指令的等待时间,加快了CPU的指令执行速度,也提高了系统总线的利用率。) 写这篇文章,完全是因为学习保护模式需要这些知识,读者完全可以走马观花,大致看看有什么内容,知道需要的时候来查这篇文章就可以了,完全没有必要抵抗着困意非要把这篇文章认真看完,记住里面每一个寄存器里每一位的定义,但是以后的文章如果需要,一定要记得回来查查相关的内容。
1177 次阅读|0 个评论
[转载]9/28 Nature: 从恐龙到鸟类 爬行动物基因组被测序
genevalley 2011-9-30 07:16
(选自英国Nature杂志,2011年9月29日出版) “矮造父变星”上的“星震” http://www.natureasia.com/ch/nature/updates/index.php?i=85086issue=7366 固体量子寄存器 http://www.natureasia.com/ch/nature/updates/index.php?i=85088issue=7366 由厄尔尼诺事件造成的植物生产力的变化 http://www.natureasia.com/ch/nature/updates/index.php?i=85090issue=7366 从恐龙到鸟类的脚趾演化 http://www.natureasia.com/ch/nature/updates/index.php?i=85093issue=7366 第一个爬行动物基因组被测序 http://www.natureasia.com/ch/nature/updates/index.php?i=85096issue=7366 NLR家族凋亡抑制蛋白的特异性作用 http://www.natureasia.com/ch/nature/updates/index.php?i=85099issue=7366 SUMO1 l的水平与心脏衰竭有关 http://www.natureasia.com/ch/nature/updates/index.php?i=85105issue=7366 Tet3对受精卵的重新编程 http://www.natureasia.com/ch/nature/updates/index.php?i=85108issue=7366 封面故事: 一个GPCR跨膜信号作用复合物的结构被确定 http://www.natureasia.com/ch/nature/updates/index.php?i=85124issue=7366 发动蛋白的结构和功能 http://www.natureasia.com/ch/nature/updates/index.php?i=85126issue=7366 在宇宙尺度上对广义相对论的验证 http://www.natureasia.com/ch/nature/updates/index.php?i=85130issue=7366 从恐龙到鸟类的脚趾演化 鸟类今天几乎普遍被认为是恐龙的后代,但始终存在一个问题。恐龙的三个脚趾通常被认为对应于先祖四足动物的第1、第2和第3个脚趾,而鸟类的脚趾则似乎对 应于第2、第3和第4个脚趾。解决这个问题的一个办法是提出这样一个假设:一个“同源框架变化”(homeotic frame shift)在演化过程中改变了各脚趾的身份。现在,Gunter Wagner及其同事所做工作为这一假设提供了证据:他们通过转录组学研究发现,小鸡腿上的第1趾与其翅膀上的第2趾有相同的转录组。换句话说,翅膀上的 第1趾在演化中发生了同源变化。然而,所有其他趾的身份仍不是很清楚。 封面故事: 一个GPCR跨膜信号作用复合物的结构被确定 一个细胞对荷尔蒙和神经传输物质的反应的绝大部分以及视觉、嗅觉和味觉等,都是由“G-蛋白耦合受体” (GPCRs)调控的。这使得GPCRs潜在成为人体中最重要的一组药物目标。GPCRs深深嵌入在细胞膜中,与细胞膜交叉7次,所以,正如在最近一篇 News Feature (go.nature.com/ftQNX4)文章中所介绍的那样,要确定这些复合物的结构特别具有挑战性。现在,人们等待已久的一个GPCR跨膜信号作 用复合物的X-射线晶体结构已被Brian Kobilka的研究组确定,其论文的最终版本发表在本期Nature上。所发表的结构是与Gs(腺苷酸环化酶的刺激性G蛋白)形成复合物的“β2肾上腺 素能受体”的一个“被激动剂占据的单体”的结构。另一篇与其相伴的论文介绍了利用“肽酰胺氢-氘交换质谱”对这一信号作用复合物的蛋白动态所做的探测研 究。
个人分类: 文摘|2025 次阅读|0 个评论
CPU设计我要让更多的人掌握它(续3)
accsys 2010-1-4 03:22
2.2.2 组成存储设备的器件 计算机核心器件除了运算器之外,存储设备也是非常重要的组成部件。 2.2.2.1 触发器与寄存器 我们知道电信号传播的速度是同光的速度一样,300000km/s。因而电路输入端信号在输出端引起反应要经过一定的时间。可是电信号在一般电子器件中穿行的距离太小,因而许多小的电子器件电信号穿行的时间可以忽略不计。如果想让信号保留一段时间,必须用专门的设备,这种设备叫触发器,也称为锁存器。 一个触发器只能记录一位二进制数。如果将多个触发器组织在一起,并且能够人为地控制保存数据的时间,能够根据需要设置所保留的数据,这个设备就叫寄存器。 Verilog HDL语言将触发器看作寄存器的特例,用reg来描述寄存器。 例如,reg a,b;定义了一个16位的寄存器。对寄存器的赋值也简单用=或=符号进行。前者叫阻塞赋值,如果有多个这样的赋值表达式,要由前向后逐个进行。后者叫非阻塞赋值,多个这种赋值表达式可以同时进行。 例如,a = 8b10101000; b = 8b10000011; 要先给a赋值,然后再给b赋值。如果将此处的=换成=则a、b的赋值是同时进行的。赋值表达式的右侧是二进制常数10101000和10000011的表示,b是二进制表示符,单引号前面的数字是二进制数的位数。如果用其他进制表示数也可以,但前面的长度仍然用二进制的数码长度。 例如,a = 8b10101000;可以表示成 a = 8hA8;或a = 8o250;字母h代表十六进制,o代表八进制。 实际的电路并不像Verilog HDL语言书写的那样简单,而必需转化成能够完成置数和保存数的电路。 2.2.2.1.1 D型触发器 图 2 -6是一个D型触发器,能在CLK瞬间为1时让D的值在Q端保持。 图 2 -6 D型触发器 若CLK=1,则 S=D,R=D。如果此时D=1,那么S=1,R=0;由于门电路都是高电位起作用,所以或门再通过一个非门(或非门),使Q=0,于是瞬间形成Q=1,Q=0的状态。在CLK=1时,若D=0,那么S=0,R=1;由于或门电路高电位起作用,再通过一个非门,使Q=1,于是瞬间形成Q=0,Q=1的状态。可见不论D为何值,当CLK=1时,总有Q=D。 若此后CLK=0保持,则使S=R=0保持,但由于Q和Q的反馈作用和或非门的特点,Q=D的状态会一直保持,这是一个稳定的状态。 不难看出CLK=0的时间长短,决定着前面进入的D的值保持时间的长度。 2.2.2.1.2 前沿触发器 D型触发器通过CLK=1能够将D的值保持,但实际电路中D的值变化很快,快到CLK=1的时间段内,D的值发生多次变化,也就是我们得到的值不一定是我们所要的那个值。一个直接的想法是让CLK=1的时间非常短,短到D的值来不及变化的程度,还有一个办法是让某个时刻的D值保持不变。图 2- 7就是为了解决这个问题而设计的。 图 2 -7 前沿触发器及简图 图 2 7(a)中将两个D型触发器连接成一个前沿触发器。CLK=0时,通过一个非门的作用,使左面一个D型触发器不断将输入端D值传给其Q端输出,但右面的D型触发器由于CLK=0,故仍然保持原来的值。而当CLK由0变1的瞬间,通过图中的非门电路,左面一个D型触发器的外面输入被封锁,右面的D型触发器接收的输入就保持D被封锁前的最末的值。此后,不论CLK的值是否变成0,右面D型触发器的输出端总是前面那个CLK由0变1的瞬间的外界的那个D值。 由于CLK由0变1的瞬间是矩形波形的前沿,得到的D值就在 CLK的前沿,故称图 2- 7的触发器组合为前沿触发器。可知,前沿触发器能够准确地捕捉数据信号。 前沿触发器使用时用简单的图 2- 7(b)图形符号表示。 2.2.2.1.3 寄存器 将多个前沿触发器顺序排在一起,就组成了能够将多位数据保存在两个CLK=1的间隔时间内的寄存器。如果想控制保存的时间,只要在CLK线路上加一个与门电路,与门的一个输入端还是原来的CLK,这样用另一个输入端就可以控制所有的前沿触发器保存数据的时间。图 2 -8是寄存器的简图。 图 2 -8 寄存器 图 2 -8中斜线上方的数字表示多股线的条数。寄存器一般也用矩形来简单表示,将与门隐藏进矩形内,外面多标出一条控制线k。 2.2.2.2 计数器 用硬件程序设计语言解决寄存器加减运算是非常容易的事,因为只要定义了寄存器变量,就可以用加减运算符号表达出来。 计数器是能够作加一运算和减一运算的寄存器,它的动作要远比将寄存器的数送到运算器,做完加减一或减一之后再回送寄存器的速度快得多。 计数器的构造和工作原理,暂时不懂也不影响用Verilog HDL编写设计程序。如果读者想深入了解,请参考姜咏江写的《计算机原理教程》一书的120页至121页,或者参考《计算机原理综合课程设计》一书的82页。 --- 待续 ---
个人分类: 计算机核|4348 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-17 09:01

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部