diff --git a/src/FormatterBase.c b/src/FormatterBase.c index 6aad525d..d797a469 100644 --- a/src/FormatterBase.c +++ b/src/FormatterBase.c @@ -86,12 +86,17 @@ ZyanU32 ZydisFormatterHelperGetExplicitSize(const ZydisFormatter* formatter, ZYAN_ASSERT(operand->type == ZYDIS_OPERAND_TYPE_MEMORY); ZYAN_ASSERT((operand->mem.type == ZYDIS_MEMOP_TYPE_MEM) || + (operand->mem.type == ZYDIS_MEMOP_TYPE_AGEN) || (operand->mem.type == ZYDIS_MEMOP_TYPE_VSIB)); if (formatter->force_memory_size) { return operand->size; } + else if (operand->mem.type == ZYDIS_MEMOP_TYPE_AGEN) + { + return 0; + } if (!context->operands) { diff --git a/src/FormatterIntel.c b/src/FormatterIntel.c index 0584fb24..d754ce32 100644 --- a/src/FormatterIntel.c +++ b/src/FormatterIntel.c @@ -201,6 +201,7 @@ ZyanStatus ZydisFormatterIntelFormatOperandMEM(const ZydisFormatter* formatter, ZYAN_ASSERT(context); if ((context->operand->mem.type == ZYDIS_MEMOP_TYPE_MEM) || + (context->operand->mem.type == ZYDIS_MEMOP_TYPE_AGEN) || (context->operand->mem.type == ZYDIS_MEMOP_TYPE_VSIB)) { ZYAN_CHECK(formatter->func_print_typecast(formatter, buffer, context));