X-Git-Url: http://git.squeep.com/?p=dcpu16;a=blobdiff_plain;f=vm-dcpu16.c;h=17effb6a558db14d11698cfceaf56d452c202252;hp=522682a6732e871ff50157323a227b85e619e76e;hb=e9cced1de1d6428996d255243b48513e82f233a5;hpb=f5fd90933a71d7b838c2dab33e177a6e0ff68f50 diff --git a/vm-dcpu16.c b/vm-dcpu16.c index 522682a..17effb6 100644 --- a/vm-dcpu16.c +++ b/vm-dcpu16.c @@ -230,8 +230,8 @@ COMMAND_IMPL(dump) { int i; for (i = 1; i < arg_count; i++) { - addr[i] = str_to_word_(arg_vector[i]); - if (addr[i] < 0) { + addr[i-1] = str_to_word_(arg_vector[i]); + if (addr[i-1] < 0) { fprintf(stderr, "address '%s' is not a valid word: %s\n", arg_vector[i], strerror(errno)); return 0; } @@ -261,8 +261,8 @@ COMMAND_IMPL(disassemble) { int i; for (i = 1; i < arg_count; i++) { - addr[i] = str_to_word_(arg_vector[i]); - if (addr[i] < 0) { + addr[i-1] = str_to_word_(arg_vector[i]); + if (addr[i-1] < 0) { fprintf(stderr, "address '%s' is not a valid word: %s\n", arg_vector[i], strerror(errno)); return 0; } @@ -275,8 +275,11 @@ COMMAND_IMPL(disassemble) { return 0; } - for (i = addr[0]; i <= addr[1]; i++) - dcpu16_disassemble_print(vm, i), printf("\n"); + for (i = addr[0]; i <= addr[1]; /* */ ) { + printf("0x%04x: ", i); + i += dcpu16_disassemble_print(vm, i); + printf("\n"); + } return 0; }