RookieぁSigns 发表于 2014-7-11 09:16:39

寄存器有多少个?

{:5_99:}我看小甲鱼的视频知道AX,BX,CX,DX这几个通用寄存器,那么现在的电脑会运行许多程序,来回修改寄存器的值,不会乱套吗?

RookieぁSigns 发表于 2014-7-11 09:17:45

:cry莫非一个程序一套寄存器?

RookieぁSigns 发表于 2014-7-11 09:44:59

:mad:
MOV 心情,:cry

和煦 发表于 2014-7-11 11:59:53

这个应该和cpu处理机制有关,你去搜下,应该是运行其他程序时,就会把各个寄存器值放到zhangli然后重新在运行这个程序在提取出来

anthoney 发表于 2014-7-11 12:16:11

电脑就一个特点就是快!就适合干这个

catch 发表于 2014-7-11 12:51:31

这和程序多少没有关系,只要按照一定的规则,再多也没有关系,具备规则和正确的调度逻辑,一切都OK~

我的黑黑 发表于 2014-7-11 14:04:12

不同種類的CPU寄存器不一樣的,指令也是不一樣的,但是本質都一樣的.

微笑的好吧 发表于 2014-7-11 21:04:23

虽然寄存器不是那样一套一套的。。但是绝对不会乱套的!

欣欣celin 发表于 2014-7-12 20:51:07

如楼上所说,不同種類的CPU寄存器不一樣的,例如:

8086 14个16位寄存器:
通用寄存器AX,BX,CX,DX,
指令指针IP
标志寄存器FR
段寄存器CS,DS,SS,ES

自80386启动PC进入32位时代的寻址模式,寄存器的大小(寄存器是32位的) ,功能的改变
用寄存器。通常是使用一个特定指令的计数。在保护模式下,也可以用来作为存储器偏移指针(在这种情况下,DS寄存器或段选择)。
EDX:通用寄存器。在某些操作中EAX的溢出寄存器(例如乘,除)。在保护模式下,也可以用来作为一个存储器偏移指针(DS段寄存器或选择器)。
AX分为AH&AL上述寄存器包括分组的相应的16 - 位和8位的数据包。在特殊寄存器
ESI
....


隐袭战龙 发表于 2014-7-12 21:34:28

不是的,在切换程序的时候寄存器会保存在内存中,切回来时寄存器恢复
详情见小甲鱼的Win32汇编

拈花小仙 发表于 2014-7-12 23:42:50

不得等哈~~

shehdok 发表于 2014-7-26 22:56:38

1个

465507453 发表于 2014-11-23 18:57:21

不会乱套的。每次要修改值的时候,都会push进堆栈保护现场,要用时就pop出来恢复现场

RookieぁSigns 发表于 2015-1-17 18:07:02

<br>我是个新人,还以为会没有一个人回答呢,但是没有想到小甲鱼这么帅,这么多人回复,多谢大家了!</br>

马沸腾 发表于 2015-1-20 21:54:11

我想应该是一条一条的处理的,就像你拿一个瓶子从楼上扔下去,这个瓶子可能会在楼下磕磕碰碰,在最终他会落地摔碎,这是不可逆的。
程序也是这样,一个程序从开始执行到结束,这中间有N条路线。就像你扔个瓶子一样每次都不可能沿着同样的路线磕磕碰碰。这N条路线就是程序员要走的路。
电脑处理完一段代码,CPU除了给出结果,还会有个简单的判断。按照某种特征,或者其他的什么机制。CPU电路中好像有个预测机制我记得。反正就是预判这个结果等会儿会不会用的到。如果用不到就存到内存,如果等会儿还要用就存到缓存。实在不需要再动了就存到硬盘。
CPU内部有个设计的十分巧妙的电路,正是这些电路完成了那些简单的动作。这涉及到的知识就太多了,你可以从集成电路开始一直追溯到电报机和继电器的发明,以及摩尔电码。太多太多了,我简单的看了一下,看着看着就吐了。

zlknife 发表于 2015-1-21 18:33:04

AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个.

zlknife 发表于 2015-1-21 18:34:36

寄存器用完后,可以用栈来保存寄存器原值,轮换使用,不会出现混乱情况。

来自他方 发表于 2015-1-24 00:07:34

有没有更具体的说法:sad

!@R键! 发表于 2015-1-24 20:34:37

这个应该是硬件开发的事情

!@R键! 发表于 2015-1-24 20:37:19

{:1_1:}{:1_1:}
页: [1] 2
查看完整版本: 寄存器有多少个?