Built-in assembler operands are
expressions that consist of constants, registers, symbols, and operators.
Within operands, the following
reserved words have predefined meanings
|
AH |
BYTE |
DMTINDEX |
EDI |
HIGH |
QWORD |
TBYTE |
|
AL |
CH |
DS |
EDX |
LARGE |
SHL |
TYPE |
|
AND |
CL |
DWORD |
EIP |
LOW |
SHR |
VMTOFFSET |
|
AX |
CS |
DX |
ES |
MOD |
SI |
WORD |
|
BH |
CX |
EAX |
ESI |
NOT |
SMALL |
XOR |
|
BL |
DH |
EBP |
ESP |
OFFSET |
SP |
|
|
BP |
DI |
EBX |
FS |
OR |
SS |
|
|
BX |
DL |
ECX |
GS |
PTR |
ST |
|
Reserved words always take
precedence over user-defined identifiers. For example,
var
Ch: Char;
...
asm
MOV CH, 1
end;
loads 1 into the CH register, not into the Ch
variable. To access a user-defined symbol with the same name as a reserved
word, you must use the ampersand (&) override operator:
MOV &Ch, 1
It is best to avoid user-defined identifiers with the same names as built-in assembler reserved words.
内建汇编操作数是由常量、寄存器、符号和操作数组成的表达式。
在操作数中,下列保留字有预定义的含义:
|
AH |
BYTE |
DMTINDEX |
EDI |
HIGH |
QWORD |
TBYTE |
|
AL |
CH |
DS |
EDX |
LARGE |
SHL |
TYPE |
|
AND |
CL |
DWORD |
EIP |
LOW |
SHR |
VMTOFFSET |
|
AX |
CS |
DX |
ES |
MOD |
SI |
WORD |
|
BH |
CX |
EAX |
ESI |
NOT |
SMALL |
XOR |
|
BL |
DH |
EBP |
ESP |
OFFSET |
SP |
|
|
BP |
DI |
EBX |
FS |
OR |
SS |
|
|
BX |
DL |
ECX |
GS |
PTR |
ST |
|
保留字总是领先于用户定义的标识符。例如,
var
Ch: Char;
...
asm
MOV CH, 1
end;
上面的语句把数字1加载到CH寄存器中,而不是Ch变量中。要用与保留字相同的名称访问用户定义的符号,必须使用&符号来忽略操作符:
MOV &Ch, 1
最好避免用户定义的标识符与内建汇编保留字同名。