能力值:
( LV2,RANK:10 )
|
-
-
2 楼
寄存器都是里面的东西是变动的。 寄存器么。 只是寄存。。
寄存器都是32-bits宽。
A、通用寄存器
下面介绍通用寄存器及其习惯用法。顾名思义,通用寄存器是那些你可以根据自己的意愿使用的寄存器,修改他们的值通常不会对计算机的运行造成很大的影响。通用寄存器最多的用途是计算。
EAX:通用寄存器。相对其他寄存器,在进行运算方面比较常用。在保护模式中,也可以作为内存偏移指针(此时,DS作为段 寄存器或选择器)
EBX:通用寄存器。通常作为内存偏移指针使用(相对于EAX、ECX、EDX),DS是默认的段寄存器或选择器。在保护模式中,同样可以起这个作用。
ECX:通用寄存器。通常用于特定指令的计数。在保护模式中,也可以作为内存偏移指针(此时,DS作为 寄存器或段选择器)。
EDX:通用寄存器。在某些运算中作为EAX的溢出寄存器(例如乘、除)。在保护模式中,也可以作为内存偏移指针(此时,DS作为段 寄存器或选择器)。
同AX分为AH&AL一样,上述寄存器包括对应的16-bit分组和8-bit分组。
B、用作内存指针的特殊寄存器
ESI:通常在内存操作指令中作为“源地址指针”使用。当然,ESI可以被装入任意的数值,但通常没有人把它当作通用寄存器来用。DS是默认段寄存器或选择器。
EDI:通常在内存操作指令中作为“目的地址指针”使用。当然,EDI也可以被装入任意的数值,但通常没有人把它当作通用寄存器来用。DS是默认段寄存器或选择器。
EBP:这也是一个作为指针的寄存器。通常,它被高级语言编译器用以建造‘堆栈帧'来保存函数或过程的局部变量,不过,还是那句话,你可以在其中保存你希望的任何数据。SS是它的默认段寄存器或选择器。
注意,这三个寄存器没有对应的8-bit分组。换言之,你可以通过SI、DI、BP作为别名访问他们的低16位,却没有办法直接访问他们的低8位。
剩下的就不知道了
我也菜。
|
能力值:
(RANK:260 )
|
-
-
3 楼
请看intel体系结构cpu的相关资料。
IA32体系结构的80x86的cpu有8个(除去ESP还有7个)通用寄存器,有时也说整数单元寄存器
80x87浮点处理器有8个浮点寄存器
奔腾引入MMX
P6系列引入SSE
奔腾4引入SSE2,SSE3
其中MMX,SSE,SStE2等新的指令集操作的寄器与浮点寄存器在物理上实际是同一组寄存器,但在逻辑上和汇编语言一级,各自命名的方式不同。
|
能力值:
(RANK:300 )
|
-
-
4 楼
越来越觉的书呆子是高手中的高手了.....
膜拜下...
|
能力值:
( LV13,RANK:420 )
|
-
-
5 楼
不仅是高手,而且很热心
|
能力值:
( LV9,RANK:170 )
|
-
-
6 楼
不对
x87 float 指令与 64位 media 指令是使用同一物理寄存器(MMX)
128位media 是使用另一组XMM 物理寄存器。
它们不同的物理寄存器组
SSE2、SSE3 一部分指令是使用mmx 寄存器,一部分是使用XMM寄存器
|
能力值:
(RANK:260 )
|
-
-
7 楼
谢谢指正。
我没写过MMX和SSE的程序,只是以前看书的时候看了点,没想到记错了。不好意思,误导大家了。
80387的汇编倒是写过,不过非常少。数学的运算都用C,汇编只是学习指令那几天写了写。
|
|
|