From aa9e2d905bffc28b758f6bad6b84fc4c1d264bdc Mon Sep 17 00:00:00 2001 From: Hazem Krimi Date: Thu, 14 Mar 2024 18:40:13 +0100 Subject: [PATCH] Trim instruction subset --- .vscode/launch.json | 45 +++++++++++++++++++++++++++++++++++++++++++++ src/code.rs | 6 +++--- 2 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..3555b33 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,45 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "lldb", + "request": "launch", + "name": "Debug executable 'hack-assembler'", + "cargo": { + "args": [ + "build", + "--bin=hack-assembler", + "--package=hack-assembler" + ], + "filter": { + "name": "hack-assembler", + "kind": "bin" + } + }, + "args": ["../rect/RectL.asm"], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in executable 'hack-assembler'", + "cargo": { + "args": [ + "test", + "--no-run", + "--bin=hack-assembler", + "--package=hack-assembler" + ], + "filter": { + "name": "hack-assembler", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + } + ] +} \ No newline at end of file diff --git a/src/code.rs b/src/code.rs index af96c7e..41b1cd3 100644 --- a/src/code.rs +++ b/src/code.rs @@ -5,7 +5,7 @@ pub fn decimal_to_fifteen_bits_binary(decimal: &i32) -> String { pub fn translate_dest(dest: &String) -> String { let cloned = dest.clone(); - match cloned.as_str() { + match cloned.as_str().trim() { "M" => "001", "D" => "010", "MD" => "011", @@ -21,7 +21,7 @@ pub fn translate_dest(dest: &String) -> String { pub fn translate_jump(jump: &String) -> String { let cloned = jump.clone(); - match cloned.as_str() { + match cloned.as_str().trim() { "JGT" => "001", "JEQ" => "010", "JGE" => "011", @@ -37,7 +37,7 @@ pub fn translate_jump(jump: &String) -> String { pub fn translate_comp(comp: &String) -> String { let cloned = comp.clone(); - match cloned.as_str() { + match cloned.as_str().trim() { "0" => "0101010", "1" => "0111111", "-1" => "0111010",