Added the push family of instructions
This commit is contained in:
parent
e0b1faf4c4
commit
a28ca014cc
@ -51,6 +51,12 @@
|
||||
#define OP_RW AO_REGISTER(0, W, 0)
|
||||
#define OP_al AO_REGISTER(AOF_IMPLICIT, REG_al_size, REG_al_id)
|
||||
#define OP_cl AO_REGISTER(AOF_IMPLICIT, REG_cl_size, REG_cl_id)
|
||||
#define OP_cs AO_REGISTER(AOF_IMPLICIT, REG_cs_size, REG_cs_id)
|
||||
#define OP_ds AO_REGISTER(AOF_IMPLICIT, REG_ds_size, REG_ds_id)
|
||||
#define OP_es AO_REGISTER(AOF_IMPLICIT, REG_es_size, REG_es_id)
|
||||
#define OP_fs AO_REGISTER(AOF_IMPLICIT, REG_fs_size, REG_fs_id)
|
||||
#define OP_gs AO_REGISTER(AOF_IMPLICIT, REG_gs_size, REG_gs_id)
|
||||
#define OP_ss AO_REGISTER(AOF_IMPLICIT, REG_ss_size, REG_ss_id)
|
||||
#define OP_AX AO_REGISTER(AOF_IMPLICIT, W, REG_AX_id)
|
||||
#define OP_CX AO_REGISTER(AOF_IMPLICIT, W, REG_CX_id)
|
||||
#define OP_DX AO_REGISTER(AOF_IMPLICIT, W, REG_DX_id)
|
||||
@ -419,6 +425,44 @@
|
||||
{ "fwait", 0x9b, OP1F, AOT_NONE, AOT_NONE, AOT_NONE },
|
||||
/* NOP 0x90 1 */
|
||||
{ "nop", 0x90, OP1F, AOT_NONE, AOT_NONE, AOT_NONE },
|
||||
/* PUSH 0x06 1 es */
|
||||
{ "push", 0x06, OP1F, OP_es, AOT_NONE, AOT_NONE },
|
||||
/* PUSH 0x0e 1 cs */
|
||||
{ "push", 0x0e, OP1F, OP_cs, AOT_NONE, AOT_NONE },
|
||||
/* PUSH 0x16 1 ss */
|
||||
{ "push", 0x16, OP1F, OP_ss, AOT_NONE, AOT_NONE },
|
||||
/* PUSH 0x1e 1 ds */
|
||||
{ "push", 0x1e, OP1F, OP_ds, AOT_NONE, AOT_NONE },
|
||||
/* PUSH 0x0fa0 2 fs */
|
||||
{ "push", 0x0fa0, OP2F, OP_fs, AOT_NONE, AOT_NONE },
|
||||
/* PUSH 0x0fa8 2 gs */
|
||||
{ "push", 0x0fa8, OP2F, OP_gs, AOT_NONE, AOT_NONE },
|
||||
/* PUSH 0x50 +rW 1 */
|
||||
{ "push", 0x50, OP1F, OP_AX, AOT_NONE, AOT_NONE },
|
||||
{ "push", 0x51, OP1F, OP_CX, AOT_NONE, AOT_NONE },
|
||||
{ "push", 0x52, OP1F, OP_DX, AOT_NONE, AOT_NONE },
|
||||
{ "push", 0x53, OP1F, OP_BX, AOT_NONE, AOT_NONE },
|
||||
{ "push", 0x54, OP1F, OP_SP, AOT_NONE, AOT_NONE },
|
||||
{ "push", 0x55, OP1F, OP_BP, AOT_NONE, AOT_NONE },
|
||||
{ "push", 0x56, OP1F, OP_SI, AOT_NONE, AOT_NONE },
|
||||
{ "push", 0x57, OP1F, OP_DI, AOT_NONE, AOT_NONE },
|
||||
/* PUSH 0x6a 1 imm8 */
|
||||
{ "push", 0x6a, OP1F, OP_S8, AOT_NONE, AOT_NONE },
|
||||
/* PUSH 0x68 1 immW */
|
||||
{ "push", 0x68, OP1F, OP_SW, AOT_NONE, AOT_NONE },
|
||||
/* PUSH 0xff /6 1 rmW */
|
||||
{ "push", 0xff, OP1F, OP_RMW_D0+6,AOT_NONE, AOT_NONE },
|
||||
{ "push", 0xff, OP1F, OP_RMW_D8+6,AOT_NONE, AOT_NONE },
|
||||
{ "push", 0xff, OP1F, OP_RMW_DW+6,AOT_NONE, AOT_NONE },
|
||||
{ "push", 0xff, OP1F, OP_RMW_RW+6,AOT_NONE, AOT_NONE },
|
||||
/* PUSHA 0x60 1 */
|
||||
{ "pusha", 0x60, OP1F, AOT_NONE, AOT_NONE, AOT_NONE },
|
||||
/* PUSHAD 0x60 1 */
|
||||
{ "pushad", 0x60, OP1F, AOT_NONE, AOT_NONE, AOT_NONE },
|
||||
/* PUSHF 0x9c 1 */
|
||||
{ "pushf", 0x9c, OP1F, AOT_NONE, AOT_NONE, AOT_NONE },
|
||||
/* PUSHFD 0x9c 1 */
|
||||
{ "pushfd", 0x9c, OP1F, AOT_NONE, AOT_NONE, AOT_NONE },
|
||||
/* RCL */
|
||||
/* FIXME implement */
|
||||
/* RCR */
|
||||
|
23
test/i386.S
23
test/i386.S
@ -145,6 +145,29 @@
|
||||
fnclex
|
||||
fwait
|
||||
nop /* 90 */
|
||||
push %cs /* 0e */
|
||||
push %ss /* 16 */
|
||||
push %ds /* 1e */
|
||||
push %es /* 06 */
|
||||
push %fs /* 0f a0 */
|
||||
push %gs /* 0f a8 */
|
||||
push %eax
|
||||
push %ecx
|
||||
push %edx
|
||||
push %ebx
|
||||
push %esp
|
||||
push %ebp
|
||||
push %esi
|
||||
push %edi
|
||||
push $0x42
|
||||
push $0x42424242
|
||||
push [%eax]
|
||||
push [%eax + $0x42]
|
||||
push [%eax + $0x43424140]
|
||||
pusha /* 60 */
|
||||
pushad /* 60 */
|
||||
pushf /* 9c */
|
||||
pushfd /* 9c */
|
||||
ret
|
||||
ret $0x3412
|
||||
rsm /* 0f aa */
|
||||
|
Loading…
Reference in New Issue
Block a user