merge next branch
diff --git a/arch/X86/X86ATTInstPrinter.c b/arch/X86/X86ATTInstPrinter.c
index 91f171f..d4aeba8 100644
--- a/arch/X86/X86ATTInstPrinter.c
+++ b/arch/X86/X86ATTInstPrinter.c
@@ -356,6 +356,10 @@
else
SStream_concat(O, "-%"PRIu64, -imm);
} else {
+ // handle 16bit segment bound
+ if (MI->csh->mode == CS_MODE_16 && imm > 0x100000)
+ imm -= 0x10000;
+
if (imm > HEX_THRESHOLD)
SStream_concat(O, "0x%"PRIx64, imm);
else
diff --git a/arch/X86/X86IntelInstPrinter.c b/arch/X86/X86IntelInstPrinter.c
index 676ef9d..38def2d 100644
--- a/arch/X86/X86IntelInstPrinter.c
+++ b/arch/X86/X86IntelInstPrinter.c
@@ -395,6 +395,10 @@
else
SStream_concat(O, "-%"PRIu64, -imm);
} else {
+ // handle 16bit segment bound
+ if (MI->csh->mode == CS_MODE_16 && imm > 0x100000)
+ imm -= 0x10000;
+
if (imm > HEX_THRESHOLD)
SStream_concat(O, "0x%"PRIx64, imm);
else