//32位,一个字节 //PUSH,POP 50 PUSH EAX 51 PUSH ECX 52 PUSH EDX 53 PUSH EBX 54 PUSH ESP 55 PUSH EBP 56 PUSH ESI 57 PUSH EDI 58 POP EAX 59 POP ECX 5A POP EDX 5B POP EBX 5C POP ESP 5D POP EBP 5E POP ESI 5F POP EDI //INC 操作数加1 40 INC EA: 41 INC ECX 42 INC EDX 43 INC EBX 44 INC ESP 45 INC EBP 46 INC ESI 47 ING ERI //DEC 操作数减1 48 DEC EAX 49 DEC ECX 4A DEC EDX 4B DEC EBX 4C DEC ESP 4D DEC EBP 4E DEC ESI 4F DEC EDI
A.2.3Register Codes When an opcode requires a specific register as an operand, the registeris identified by name (for example, AX, CL, or ESI). The name indicates whether the registeris 64, 32, 16, or8 bits wide. A register identifier of the form eXX or rXX is used whenregisterwidth depends on the operand-size attribute. eXX is used when16or32-bit sizes are possible; rXX is used when16, 32, or64-bit sizes are possible. For example: eAX indicates that the AX registeris used when the operand-size attributeis16and the EAX registeris used when the operand-size attributeis32. rAX can indicate AX, EAX or RAX. When the REX.B bitis used to modify the register specified in the reg field of the opcode, this fact is indicated by adding “/x” to the register name to indicate the additional possibility. For example, rCX/r9 is used to indicate that the register could either be rCX or r9. Note that the size of r9 in this caseis determined by the operand size attribute (just as for rCX) 机翻 当一个操作码需要一个特定的寄存器作为操作数时,该寄存器由名称(例如,AX、CL或ESI)标识。该名称指示寄存器是64、32、16还是8位宽。 当寄存器宽度取决于操作数大小属性时,使用eXX或rXX形式的寄存器标识符。当16位或32位大小是可能的时,使用eXX; 当16位、32位或64位大小是可能的时,使用rXX。例如:eAX表示当操作数大小属性为16时使用AX寄存器,当操作数大小属性为32时使用eAX寄存器。rAX可以表示AX、EAX或rAX。 当REX.B位用于修改操作码的reg字段中指定的寄存器,这一事实通过在寄存器名称中添加“/x”来表示,以表示额外的可能性。例如,rCX/r9用于指示寄存器可以是rCX或r9。请注意,在这种情况下,r9的大小由操作数大小属性决定(与rCX一样)