From b8f6e056894051ec635f96d630af8f3f0b08f73b Mon Sep 17 00:00:00 2001 From: Hane Date: Tue, 27 Jan 2026 15:45:42 +0100 Subject: [PATCH] 1-2 challenge solved (only impl in RM_TF_R) --- 1-2/8086coded | Bin 29216 -> 29512 bytes 1-2/decoder.c | 81 ++++++++++++++++++++++++++------------------- 1-2/listing-39.asm | 3 +- 1-2/listing-40 | Bin 39 -> 51 bytes 1-2/listing-40.asm | 11 ++++-- 1-2/output | Bin 41 -> 51 bytes 1-2/output.asm | 30 ++++++++--------- 7 files changed, 72 insertions(+), 53 deletions(-) diff --git a/1-2/8086coded b/1-2/8086coded index e6816394b480c626ef0e9b6e6a182232000556b3..6631f53f2e528159dbf752c81f911d6e129ea84c 100755 GIT binary patch delta 7709 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 delta 7454 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 Q-1939?tZ3!es8b;1rL|Ei2wiq diff --git a/1-2/decoder.c b/1-2/decoder.c index 821731d..07e87f1 100644 --- a/1-2/decoder.c +++ b/1-2/decoder.c @@ -63,7 +63,7 @@ char WORD_SIGNAL_TXT[0b10][WORD_SIGNAL_LEN] = { "byte ", "word " }; typedef struct { FILE *binary; - uint64_t size; + uint64_t size; } binary_data; FILE *output; @@ -160,9 +160,19 @@ void fill_ea_string(output_string *str, char* content, int16_t displacement) { if (strlen(content) > 0) { - memcpy(str->string, " + ", 3); - str->string += 3; - str->len += 3; + *(str->string) = ' '; + if(displacement >= 0) + { + *(str->string + 1) = '+'; + *(str->string + 2) = ' '; + str->string += 3; + str->len += 3; + } + else + { + str->string += 1; + str->len += 1; + } } disp_len = sprintf(str->string, "%d", displacement); str->string += disp_len; @@ -296,11 +306,23 @@ int MOV_I_T_RM_parse(uint8_t byte1, uint8_t byte2, binary_data *binary, int byte fprintf(output, "%s %s, %s%d\n", "mov", mem_data.string, WORD_SIGNAL_TXT[is_wide], wide_data); break; } - return extra_bytes_read; } +int16_t calc_effective_disp(uint8_t high_order, uint8_t low_order, bool lo_only) +{ + const uint8_t low_order_neg_mask = 0b1000'0000; + int16_t effective_disp = 0; + + if (lo_only & ((low_order & low_order_neg_mask) >> 7)) + high_order = high_order | 0b1111'1111; + int8_t *effective_disp_high_order =(int8_t*) &(effective_disp) + 1; + memcpy(&(effective_disp), &low_order, 1); + memcpy(effective_disp_high_order, &high_order, 1); + return effective_disp; +} + int MOV_RM_TF_R_parse(uint8_t byte1, uint8_t byte2, binary_data *binary, int bytes_read) { const uint8_t wide_mask = 0b0000'0001; @@ -312,8 +334,13 @@ int MOV_RM_TF_R_parse(uint8_t byte1, uint8_t byte2, binary_data *binary, int byt uint8_t low_disp = 0; uint8_t high_disp = 0; uint16_t wide_disp = 0; + int16_t effective_disp = 0; uint8_t extra_bytes_read = 0; + output_string mem_data; + mem_data.len = 0; + mem_data.string = calloc(18, sizeof(char)); //"[bp + di + 65535]\0" + bool reg_is_dest = (byte1 & dest_mask); uint8_t inst_mod = (byte2 & mod_mask) >> 6; @@ -342,28 +369,22 @@ int MOV_RM_TF_R_parse(uint8_t byte1, uint8_t byte2, binary_data *binary, int byt fread(byte, sizeof(byte), 1, bin.binary); extra_bytes_read++; low_disp = (uint8_t)byte[0]; + reg_value = ((byte2 & regm_mask) >> 3) + ((byte1 & wide_mask) * 8); ea_table_value = (byte2 & (regm_mask >> 3)); - + effective_disp = calc_effective_disp(0, low_disp, true); + //EA STRING GENERATION - *ea_string_write_ptr = '['; - ea_string_write_ptr++; - memcpy(ea_string_write_ptr, EA_ENCODING_TXT[ea_table_value], strlen(EA_ENCODING_TXT[ea_table_value])); - ea_string_write_ptr += strlen(EA_ENCODING_TXT[ea_table_value]); - memcpy(ea_string_write_ptr, " + ", 3); - ea_string_write_ptr += 3; - disp_len = sprintf(ea_string_write_ptr, "%d", low_disp); - ea_string_write_ptr += disp_len; - *ea_string_write_ptr = ']'; + fill_ea_string(&mem_data, EA_ENCODING_TXT[ea_table_value], effective_disp); //END printf("%s %s, %s\n", "mov", (reg_is_dest ? REG_ENCODING_TXT[reg_value] - : ea_string) - , (reg_is_dest ? ea_string + : mem_data.string) + , (reg_is_dest ? mem_data.string : REG_ENCODING_TXT[reg_value])); fprintf(output, "%s %s, %s\n", "mov", (reg_is_dest ? REG_ENCODING_TXT[reg_value] - : ea_string) - , (reg_is_dest ? ea_string + : mem_data.string) + , (reg_is_dest ? mem_data.string : REG_ENCODING_TXT[reg_value])); break; case (MEM_16BIT_DISP): @@ -375,30 +396,22 @@ int MOV_RM_TF_R_parse(uint8_t byte1, uint8_t byte2, binary_data *binary, int byt high_disp = (uint8_t)byte[0]; //Composing wide displacement - wide_disp = high_disp << 8; - wide_disp = wide_disp | low_disp; + effective_disp = calc_effective_disp(high_disp, low_disp, false); + reg_value = ((byte2 & regm_mask) >> 3) + ((byte1 & wide_mask) * 8); ea_table_value = (byte2 & (regm_mask >> 3)); //EA STRING GENERATION - *ea_string_write_ptr = '['; - ea_string_write_ptr++; - memcpy(ea_string_write_ptr, EA_ENCODING_TXT[ea_table_value], strlen(EA_ENCODING_TXT[ea_table_value])); - ea_string_write_ptr += strlen(EA_ENCODING_TXT[ea_table_value]); - memcpy(ea_string_write_ptr, " + ", 3); - ea_string_write_ptr += 3; - disp_len = sprintf(ea_string_write_ptr, "%d", wide_disp); - ea_string_write_ptr += disp_len; - *ea_string_write_ptr = ']'; + fill_ea_string(&mem_data, EA_ENCODING_TXT[ea_table_value], effective_disp); //END printf("%s %s, %s\n", "mov", (reg_is_dest ? REG_ENCODING_TXT[reg_value] - : ea_string) - , (reg_is_dest ? ea_string + : mem_data.string) + , (reg_is_dest ? mem_data.string : REG_ENCODING_TXT[reg_value])); fprintf(output, "%s %s, %s\n", "mov", (reg_is_dest ? REG_ENCODING_TXT[reg_value] - : ea_string) - , (reg_is_dest ? ea_string + : mem_data.string) + , (reg_is_dest ? mem_data.string : REG_ENCODING_TXT[reg_value])); break; case (MEM_NO_DISP): diff --git a/1-2/listing-39.asm b/1-2/listing-39.asm index ecce8c7..58038ce 100644 --- a/1-2/listing-39.asm +++ b/1-2/listing-39.asm @@ -25,7 +25,8 @@ mov ah, [bx + si + 4] ; Source address calculation plus 16-bit displacement mov al, [bx + si + 4999] -; Dest address calculation + ; Dest address calculation + mov [bx + di], cx mov [bp + si], cl mov [bp], ch diff --git a/1-2/listing-40 b/1-2/listing-40 index 63b3ec56fcbcba6dc547e00cc6c39fd843595a02..13c1744e507a65be23dc6a3c380158513f216d52 100644 GIT binary patch delta 17 YcmY#4=IL%f!O-1)fxWx&K=K5206KOD5C8xG delta 5 McmXq3pU9&Q00WW%9{>OV diff --git a/1-2/listing-40.asm b/1-2/listing-40.asm index bd8aa5f..d825a11 100644 --- a/1-2/listing-40.asm +++ b/1-2/listing-40.asm @@ -1,10 +1,17 @@ bits 16 ; Signed displacements +mov ax, [bx - 100] +mov ax, [bx - 1000] +mov ax, [bx - 3] +mov ax, [bx + 3] +mov ax, [bx + 200] +mov ax, [bx + 2000] +mov ax, [bx + di - 40000] mov ax, [bx + di - 37] mov [si - 300], cx mov dx, [bx - 32] - + ; Explicit sizes mov [bp + di], byte 7 mov [di + 901], word 347 @@ -16,7 +23,7 @@ mov bx, [3458] ; Memory-to-accumulator test mov ax, [2555] mov ax, [16] - + ; Accumulator-to-memory test mov [2554], ax mov [15], ax diff --git a/1-2/output b/1-2/output index 405b80494b68e44c57e4f07e14b8c0703761a93e..13c1744e507a65be23dc6a3c380158513f216d52 100644 GIT binary patch literal 51 zcmV-30L=f3hsXenhtLO$fxu&nLEDLp)c%WC;Kl<7$AyIhTLFtM1ptd4f(@bj384@G JqxuP>4*+<>73Tl| literal 41 xcmeCY*Kuqk&(<$Hc^Gzn`M)cNf7g@`T@2mQ-C+z}2`pU=?ZTa$9b6rG3;@NK61@Nb diff --git a/1-2/output.asm b/1-2/output.asm index 3f42057..2a6f91f 100644 --- a/1-2/output.asm +++ b/1-2/output.asm @@ -1,18 +1,16 @@ bits 16 -mov si, bx -mov dh, al -mov cl, 12 -mov ch, 244 -mov cx, 12 -mov cx, 65524 -mov dx, 3948 -mov dx, 61588 -mov al, [bx + si] -mov bx, [bp + di] -mov dx, [bp + 0] -mov ah, [bx + si + 4] -mov al, [bx + si + 4999] -mov [bx + di], cx -mov [bp + si], cl -mov [bp + 0], ch +mov ax, [bx + 200] +mov ax, [bx + 2000] +mov ax, [bx + di + 25536] +mov ax, [bx + di -37] +mov [si -300], cx +mov dx, [bx -32] +mov [bp + di], byte 7 +mov [di + 901], word 347 +mov bp, [5] +mov bx, [3458] +mov ax, [2555] +mov ax, [16] +mov [2554], ax +mov [15], ax