From de403bd356e807c5e15eb989329989abd5d6915e Mon Sep 17 00:00:00 2001 From: xolatile Date: Mon, 8 Jul 2024 11:43:39 -0400 Subject: [PATCH] Added major bug fix in 2 SLOC... --- source/assembler.c | 8 +++++--- tool/test.c | 14 +++++++------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/source/assembler.c b/source/assembler.c index ace8988..919aa4d 100644 --- a/source/assembler.c +++ b/source/assembler.c @@ -132,10 +132,12 @@ static void build_regular (operation_index operation, place (1, (byte) (0X08 * (operation - REGULAR_BEGIN) + (destination & 0X07) * ((to == REG) && (from == IMM)) + + 0X01 * ((to == MEM) && (from == IMM) && (size == D8)) // + - 0X01 * ((to == REG) && (from == IMM)) // + 0X01 * (size != D8) - + 0X02 * ((from == MEM) && (to == REG)) - + 0X04 * ((from == IMM) && (to == MEM)) - + 0XC0 * ((from == IMM) && (to == REG)))); + + 0X02 * ((to == REG) && (from == MEM)) + + 0X04 * ((to == MEM) && (from == IMM)) + + 0XC0 * ((to == REG) && (from == IMM)))); build_register_direction ((to == REG) && (from == REG), destination, source); diff --git a/tool/test.c b/tool/test.c index fb1d621..3f0142c 100644 --- a/tool/test.c +++ b/tool/test.c @@ -128,37 +128,37 @@ int main (void) { XOLATILE: FLAT: 4C 01 C9 4C 01 C9 48 03 0D FF FF FF FF 48 03 0D 52 12 00 00 -48 81 C2 44 33 22 11 48 81 C1 44 33 22 11 +48 81 C2 44 33 22 11 48 81 C1 44 33 22 11 add rcx 0X11223344 -1 48 01 0D FF FF FF FF 48 01 0D 42 12 00 00 48 81 05 FF FF FF FF 44 33 22 11 48 81 05 36 12 00 00 44 33 22 11 44 09 C9 44 09 C9 0B 0D FF FF FF FF 0B 0D 27 12 00 00 -81 CA 44 33 22 11 81 C9 44 33 22 11 +81 CA 44 33 22 11 81 C9 44 33 22 11 or ecx 0X11223344 -2 09 0D FF FF FF FF 09 0D 19 12 00 00 81 0D FF FF FF FF 44 33 22 11 81 0D 0E 12 00 00 44 33 22 11 66 44 11 C9 66 44 11 C9 66 13 0D FF FF FF FF 66 13 0D FF 11 00 00 -66 81 D2 22 11 66 81 D1 22 11 +66 81 D2 22 11 66 81 D1 22 11 adc cx 0X1122 -1 66 11 0D FF FF FF FF 66 11 0D F1 11 00 00 66 81 15 FF FF FF FF 22 11 66 81 15 E7 11 00 00 22 11 44 18 C9 44 18 C9 1A 0D FF FF FF FF 1A 0D DB 11 00 00 80 D9 11 80 D9 11 18 0D FF FF FF FF 18 0D D0 11 00 00 -80 1C FF FF FF FF 11 80 1D C8 11 00 00 11 +80 1C FF FF FF FF 11 80 1D C8 11 00 00 11 sbb [1] 0X11 +1 4C 21 C9 4C 21 C9 48 23 0D FF FF FF FF 48 23 0D C3 11 00 00 -48 81 E2 44 33 22 11 48 81 E1 44 33 22 11 +48 81 E2 44 33 22 11 48 81 E1 44 33 22 11 and rcx 0X11223344 -1 48 21 0D FF FF FF FF 48 21 0D B3 11 00 00 48 81 25 FF FF FF FF 44 33 22 11 48 81 25 A7 11 00 00 44 33 22 11 44 29 C9 44 29 C9 2B 0D FF FF FF FF 2B 0D 98 11 00 00 -81 EA 44 33 22 11 81 E9 44 33 22 11 +81 EA 44 33 22 11 81 E9 44 33 22 11 sub ecx 0X11223344 -2 29 0D FF FF FF FF 29 0D 8A 11 00 00 81 2D FF FF FF FF 44 33 22 11 81 2D 7F 11 00 00 44 33 22 11 66 44 31 C9 66 44 31 C9 66 33 0D FF FF FF FF 66 33 0D 70 11 00 00 -66 81 F2 22 11 66 81 F1 22 11 +66 81 F2 22 11 66 81 F1 22 11 xor cx 0X1122 -1 66 31 0D FF FF FF FF 66 31 0D 62 11 00 00 66 81 35 FF FF FF FF 22 11 66 81 35 58 11 00 00 22 11 44 38 C9 44 38 C9