From 0d1db917c00438528f98187af62c8a2204af4e80 Mon Sep 17 00:00:00 2001 From: Darkress <30271678+DarkressX@users.noreply.github.com> Date: Mon, 29 May 2023 03:09:14 +0200 Subject: [PATCH] implemented Xorlw Instruction --- de/darkress/pic16f84sim/commands/Xorlw.java | 22 +++++++++++++++++++ .../microcontroller/ProgramCounter.java | 5 +++++ 2 files changed, 27 insertions(+) create mode 100644 de/darkress/pic16f84sim/commands/Xorlw.java diff --git a/de/darkress/pic16f84sim/commands/Xorlw.java b/de/darkress/pic16f84sim/commands/Xorlw.java new file mode 100644 index 0000000..a3e21af --- /dev/null +++ b/de/darkress/pic16f84sim/commands/Xorlw.java @@ -0,0 +1,22 @@ +package de.darkress.pic16f84sim.commands; + +import de.darkress.pic16f84sim.microcontroller.Memory; + +public class Xorlw extends CommandUtils implements Command +{ + private final int literal; + + public Xorlw(int input) + { + literal = input & 0x00FF; + } + @Override + public void execute() + { + int result = literal ^ Memory.workingRegister; + + checkZeroBit(result); + + Memory.workingRegister = result % 256; + } +} diff --git a/de/darkress/pic16f84sim/microcontroller/ProgramCounter.java b/de/darkress/pic16f84sim/microcontroller/ProgramCounter.java index 7085d95..196d02e 100644 --- a/de/darkress/pic16f84sim/microcontroller/ProgramCounter.java +++ b/de/darkress/pic16f84sim/microcontroller/ProgramCounter.java @@ -15,4 +15,9 @@ public class ProgramCounter { ProgramCounter.PC = PC; } + + public static void incPC() + { + PC++; + } }