寄存器有多少个?
{:5_99:}我看小甲鱼的视频知道AX,BX,CX,DX这几个通用寄存器,那么现在的电脑会运行许多程序,来回修改寄存器的值,不会乱套吗? :cry莫非一个程序一套寄存器? :mad:MOV 心情,:cry 这个应该和cpu处理机制有关,你去搜下,应该是运行其他程序时,就会把各个寄存器值放到zhangli然后重新在运行这个程序在提取出来 电脑就一个特点就是快!就适合干这个 这和程序多少没有关系,只要按照一定的规则,再多也没有关系,具备规则和正确的调度逻辑,一切都OK~ 不同種類的CPU寄存器不一樣的,指令也是不一樣的,但是本質都一樣的. 虽然寄存器不是那样一套一套的。。但是绝对不会乱套的! 如楼上所说,不同種類的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
....
不是的,在切换程序的时候寄存器会保存在内存中,切回来时寄存器恢复
详情见小甲鱼的Win32汇编 不得等哈~~ 1个 不会乱套的。每次要修改值的时候,都会push进堆栈保护现场,要用时就pop出来恢复现场 <br>我是个新人,还以为会没有一个人回答呢,但是没有想到小甲鱼这么帅,这么多人回复,多谢大家了!</br> 我想应该是一条一条的处理的,就像你拿一个瓶子从楼上扔下去,这个瓶子可能会在楼下磕磕碰碰,在最终他会落地摔碎,这是不可逆的。
程序也是这样,一个程序从开始执行到结束,这中间有N条路线。就像你扔个瓶子一样每次都不可能沿着同样的路线磕磕碰碰。这N条路线就是程序员要走的路。
电脑处理完一段代码,CPU除了给出结果,还会有个简单的判断。按照某种特征,或者其他的什么机制。CPU电路中好像有个预测机制我记得。反正就是预判这个结果等会儿会不会用的到。如果用不到就存到内存,如果等会儿还要用就存到缓存。实在不需要再动了就存到硬盘。
CPU内部有个设计的十分巧妙的电路,正是这些电路完成了那些简单的动作。这涉及到的知识就太多了,你可以从集成电路开始一直追溯到电报机和继电器的发明,以及摩尔电码。太多太多了,我简单的看了一下,看着看着就吐了。 AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个. 寄存器用完后,可以用栈来保存寄存器原值,轮换使用,不会出现混乱情况。 有没有更具体的说法:sad 这个应该是硬件开发的事情 {:1_1:}{:1_1:}
页:
[1]
2