From 7110ff6df173134c6aeb64bc765da445e768a404 Mon Sep 17 00:00:00 2001 From: Rokas Puzonas Date: Sun, 9 Apr 2023 20:15:33 +0300 Subject: [PATCH] add readme --- README.md | 5 +++++ src/asm.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..40c92ae --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# 8086 dissassembler + +For [Computer, Enhance!](https://www.computerenhance.com/) + +Reference: https://edge.edx.org/c4x/BITSPilani/EEE231/asset/8086_family_Users_Manual_1_.pdf \ No newline at end of file diff --git a/src/asm.c b/src/asm.c index d8fdcc6..fd9bf32 100644 --- a/src/asm.c +++ b/src/asm.c @@ -31,7 +31,7 @@ void dissassemble(FILE *src, FILE *dst) { u8 mod = byte2 & 0b11000000; u8 reg = (byte2 & 0b00111000) >> 3; u8 rm = byte2 & 0b00000111; - if (mod == 0b11000000) { + if (mod == 0b11000000) { // Mod = 0b11 const char *reg_name = lookup_reg_name(reg, wide); const char *rm_name = lookup_reg_name(rm, wide); if (direction) { @@ -39,9 +39,9 @@ void dissassemble(FILE *src, FILE *dst) { } else { fprintf(dst, "mov %s, %s\n", rm_name, reg_name); } - } else { - printf("ERROR: Unsupported mod '%d'", mod); - abort(); + } else if (mod == 0b10000000) { // Mod = 0b10 + } else if (mod == 0b01000000) { // Mod = 0b01 + } else if (mod == 0b00000000) { // Mod = 0b00 } } }