diff --git a/src/arch/i386.ins b/src/arch/i386.ins index 2cbe868..0a6fa7f 100644 --- a/src/arch/i386.ins +++ b/src/arch/i386.ins @@ -425,6 +425,38 @@ { "fwait", 0x9b, OP1F, AOT_NONE, AOT_NONE, AOT_NONE }, /* NOP 0x90 1 */ { "nop", 0x90, OP1F, AOT_NONE, AOT_NONE, AOT_NONE }, +/* POP 0x07 1 es */ +{ "pop", 0x07, OP1F, OP_es, AOT_NONE, AOT_NONE }, +/* POP 0x17 1 ss */ +{ "pop", 0x17, OP1F, OP_ss, AOT_NONE, AOT_NONE }, +/* POP 0x1f 1 ds */ +{ "pop", 0x1f, OP1F, OP_ds, AOT_NONE, AOT_NONE }, +/* POP 0x0fa1 2 fs */ +{ "pop", 0x0fa1, OP2F, OP_fs, AOT_NONE, AOT_NONE }, +/* POP 0x0fa9 2 gs */ +{ "pop", 0x0fa9, OP2F, OP_gs, AOT_NONE, AOT_NONE }, +/* POP 0x58 +rW 1 */ +{ "pop", 0x58, OP1F, OP_AX, AOT_NONE, AOT_NONE }, +{ "pop", 0x59, OP1F, OP_CX, AOT_NONE, AOT_NONE }, +{ "pop", 0x5a, OP1F, OP_DX, AOT_NONE, AOT_NONE }, +{ "pop", 0x5b, OP1F, OP_BX, AOT_NONE, AOT_NONE }, +{ "pop", 0x5c, OP1F, OP_SP, AOT_NONE, AOT_NONE }, +{ "pop", 0x5d, OP1F, OP_BP, AOT_NONE, AOT_NONE }, +{ "pop", 0x5e, OP1F, OP_SI, AOT_NONE, AOT_NONE }, +{ "pop", 0x5f, OP1F, OP_DI, AOT_NONE, AOT_NONE }, +/* POP 0x8f /0 1 rmW */ +{ "pop", 0x8f, OP1F, OP_RMW_D0+0,AOT_NONE, AOT_NONE }, +{ "pop", 0x8f, OP1F, OP_RMW_D8+0,AOT_NONE, AOT_NONE }, +{ "pop", 0x8f, OP1F, OP_RMW_DW+0,AOT_NONE, AOT_NONE }, +{ "pop", 0x8f, OP1F, OP_RMW_RW+0,AOT_NONE, AOT_NONE }, +/* POPA 0x61 1 */ +{ "popa", 0x61, OP1F, AOT_NONE, AOT_NONE, AOT_NONE }, +/* POPAD 0x61 1 */ +{ "popad", 0x61, OP1F, AOT_NONE, AOT_NONE, AOT_NONE }, +/* POPF 0x9d 1 */ +{ "popf", 0x9d, OP1F, AOT_NONE, AOT_NONE, AOT_NONE }, +/* POPFD 0x9d 1 */ +{ "popfd", 0x9d, OP1F, AOT_NONE, AOT_NONE, AOT_NONE }, /* PUSH 0x06 1 es */ { "push", 0x06, OP1F, OP_es, AOT_NONE, AOT_NONE }, /* PUSH 0x0e 1 cs */ diff --git a/test/i386.S b/test/i386.S index e69b5a0..222d128 100644 --- a/test/i386.S +++ b/test/i386.S @@ -145,6 +145,26 @@ fnclex fwait nop /* 90 */ + pop %ds /* 1f */ + pop %es /* 07 */ + pop %ss /* 17 */ + pop %fs /* 0f a1 */ + pop %gs /* 0f a9 */ + pop %eax + pop %ecx + pop %edx + pop %ebx + pop %esp + pop %ebp + pop %esi + pop %edi + pop [%ecx] + pop [%edx + $0x42] + pop [%ebx + $0x43424140] + popa /* 61 */ + popad /* 61 */ + popf /* 9d */ + popfd /* 9d */ push %cs /* 0e */ push %ss /* 16 */ push %ds /* 1e */