From a3f903a5daa720c5e244d1ed9241cd94a9739729 Mon Sep 17 00:00:00 2001 From: Sebastian Macke Date: Wed, 27 Feb 2019 20:35:20 +0100 Subject: [PATCH] MOS65XX: Fix instruction length for indirect addressing modes Signed-off-by: Sebastian Macke --- arch/MOS65XX/MOS65XXDisassembler.c | 8 ++++---- bindings/python/test_mos65xx.py | 2 +- tests/test_basic.c | 2 +- tests/test_mos65xx.c | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/MOS65XX/MOS65XXDisassembler.c b/arch/MOS65XX/MOS65XXDisassembler.c index 1f084004f4..dbf6d26414 100644 --- a/arch/MOS65XX/MOS65XXDisassembler.c +++ b/arch/MOS65XX/MOS65XXDisassembler.c @@ -364,13 +364,13 @@ static int getInstructionLength(mos65xx_address_mode am) case MOS65XX_AM_ZPY: case MOS65XX_AM_ZP: case MOS65XX_AM_REL: + case MOS65XX_AM_INDX: + case MOS65XX_AM_INDY: return 2; case MOS65XX_AM_ABS: case MOS65XX_AM_ABSX: case MOS65XX_AM_ABSY: - case MOS65XX_AM_INDX: - case MOS65XX_AM_INDY: case MOS65XX_AM_IND: return 3; default: @@ -496,11 +496,11 @@ void MOS65XX_printInst(MCInst *MI, struct SStream *O, void *PrinterInfo) break; case MOS65XX_AM_INDX: - SStream_concat(O, " ($%04X,x)", value); + SStream_concat(O, " ($%02X,x)", value); break; case MOS65XX_AM_INDY: - SStream_concat(O, " ($%04X),y", value); + SStream_concat(O, " ($%02X),y", value); break; } #endif diff --git a/bindings/python/test_mos65xx.py b/bindings/python/test_mos65xx.py index b102d195be..c9b831e994 100755 --- a/bindings/python/test_mos65xx.py +++ b/bindings/python/test_mos65xx.py @@ -6,7 +6,7 @@ from capstone.mos65xx import * from xprint import to_hex, to_x -MOS65XX_CODE = b"\x0d\x34\x12\x00\x81\x65\x87\x6c\x01\x00\x85\xFF\x10\x00\x19\x42\x42\x00\x49\x42" +MOS65XX_CODE = b"\x0d\x34\x12\x00\x81\x65\x6c\x01\x00\x85\xFF\x10\x00\x19\x42\x42\x00\x49\x42" address_modes=[ 'No address mode', diff --git a/tests/test_basic.c b/tests/test_basic.c index 6b4eda74a9..0103d5794c 100644 --- a/tests/test_basic.c +++ b/tests/test_basic.c @@ -86,7 +86,7 @@ static void test() #endif #ifdef CAPSTONE_HAS_MOS65XX -#define MOS65XX_CODE "\x0d\x34\x12\x00\x81\x65\x87\x6c\x01\x00\x85\xFF\x10\x00\x19\x42\x42\x00\x49\x42" +#define MOS65XX_CODE "\x0d\x34\x12\x00\x81\x65\x6c\x01\x00\x85\xFF\x10\x00\x19\x42\x42\x00\x49\x42" #endif diff --git a/tests/test_mos65xx.c b/tests/test_mos65xx.c index 3aa4b6a729..5a81d3d608 100644 --- a/tests/test_mos65xx.c +++ b/tests/test_mos65xx.c @@ -103,7 +103,7 @@ static void print_insn_detail(cs_insn *ins) static void test() { -#define MOS65XX_CODE "\x0d\x34\x12\x00\x81\x65\x87\x6c\x01\x00\x85\xFF\x10\x00\x19\x42\x42\x00\x49\x42" +#define MOS65XX_CODE "\x0d\x34\x12\x00\x81\x87\x6c\x01\x00\x85\xFF\x10\x00\x19\x42\x42\x00\x49\x42" struct platform platforms[] = { {