The following reserved symbols denote CPU registers:
|
32-bit general purpose |
EAX EBX ECX EDX |
32-bit pointer or index |
ESP EBP ESI EDI |
|
16-bit general purpose |
AX BX CX DX |
16-bit pointer or index |
SP BP SI DI |
|
8-bit low registers |
AL BL CL DL |
16-bit segment registers 32-bit segment registers |
CS DS SS ES FS GS |
|
8-bit high registers |
AH BH CH DH |
Coprocessor register stack |
ST |
When an
operand consists solely of a register name, it is called a register operand.
All registers can be used as register operands, and some registers can be used
in other contexts.
The base
registers (BX and BP) and the index registers (SI and DI) can be written within
square brackets to indicate indexing. Valid base/index register combinations
are [BX], [BP], [SI], [DI], [BX+SI], [BX+DI], [BP+SI], and [BP+DI]. You can
also index with all the 32-bit registers, for example, [EAX+ECX], [ESP], and
[ESP+EAX+5].
The segment registers (ES, CS, SS, DS, FS, and GS) are supported, but segments are normally not useful in 32-bit applications.
The symbol ST denotes the topmost register on the 8087 floating-point register stack. Each of the eight floating-point registers can be referred to using ST(X), where X is a constant between 0 and 7 indicating the distance from the top of the register stack.
下列保留的符号表示CPU寄存器:
|
32位一般用途 |
EAX EBX ECX EDX |
32位指针或索引 |
ESP EBP ESI EDI |
|
16位一般用途 |
AX BX CX DX |
16位指针或索引 |
SP BP SI DI |
|
8位低位寄存器 |
AL BL CL DL |
16位段寄存器 32位段寄存器 |
CS DS SS ES FS GS |
|
8位高位寄存器 |
AH BH CH DH |
协处理寄存器栈 |
ST |
当一个操作数由单独的一个寄存器名称构成时,叫做寄存器操作数(register operand)。所有的寄存器都可以被用做寄存器操作数,某些寄存器还可以用做其它内容。
基址寄存器(BX和BP)和变址寄存器(SI和DI)可以被写在方括号中用来表示寻址。合法的基址/变址结合形式有:[BX]、[BP]、[SI]、[DI]、[BX+SI]、[BX+DI]、[BP+SI]、[BP+DI]。还可以用所有的32位寄存器寻址,例如:[EAX+ECX]、[ESP]、[ESP+EAX+5]。
段寄存器(ES、CS、SS、DS、FS、GS)也是支持的,但在32位应用程序中段通常没有用途。
符号ST表示8087浮点寄存器栈中对顶端的寄存器。八个浮点寄存器中的每一个都可以用 ST(X) 来访问,这里的 X 是一个在0到7之间的常量,用于表示到寄存器栈顶的距离。