diff --git a/disassembler.c b/disassembler.c
index 65b90d1..ad72982 100644
--- a/disassembler.c
+++ b/disassembler.c
@@ -32,6 +32,7 @@
 char print_buf[1024];
 char* buf_ptr;
 int buf_remain;
+bool v6_mode = false;
 
 __attribute__ ((format (printf, 1, 2) ))
 static void bprintf(const char* format, ...) {
@@ -162,6 +163,7 @@
                 PRINT_OPCODE();
                 print_jump_target(*ptr2pc + imm, program_len);
             } else {
+                v6_mode = true;
                 print_opcode("data");
                 bprintf("%d, ", imm);
                 uint32_t len = imm;
@@ -356,12 +358,20 @@
         case LDDW_OPCODE:
         case STDW_OPCODE:
             PRINT_OPCODE();
-            if (signed_imm > 0) {
-                bprintf("r%u, [r%u+%d]", reg_num, reg_num ^ 1, signed_imm);
-            } else if (signed_imm < 0) {
-                bprintf("r%u, [r%u-%d]", reg_num, reg_num ^ 1, -signed_imm);
+            if (v6_mode) {
+                if (opcode == LDDW_OPCODE) {
+                    bprintf("r%u, cnt=%d", reg_num, imm);
+                } else {
+                    bprintf("cnt=%d, r%u", imm, reg_num);
+                }
             } else {
-                bprintf("r%u, [r%u]", reg_num, reg_num ^ 1);
+                if (signed_imm > 0) {
+                    bprintf("r%u, [r%u+%d]", reg_num, reg_num ^ 1, signed_imm);
+                } else if (signed_imm < 0) {
+                    bprintf("r%u, [r%u-%d]", reg_num, reg_num ^ 1, -signed_imm);
+                } else {
+                    bprintf("r%u, [r%u]", reg_num, reg_num ^ 1);
+                }
             }
             break;
         case WRITE_OPCODE: {
