diff --git a/de/darkress/pic16f84sim/Main.java b/de/darkress/pic16f84sim/Main.java index 64bec6a..578b4cb 100644 --- a/de/darkress/pic16f84sim/Main.java +++ b/de/darkress/pic16f84sim/Main.java @@ -20,6 +20,5 @@ class Main program.get(0).execute(); //ProgramCounter.incPC(); - } } \ No newline at end of file diff --git a/de/darkress/pic16f84sim/commands/Call.java b/de/darkress/pic16f84sim/commands/Call.java new file mode 100644 index 0000000..91a49c4 --- /dev/null +++ b/de/darkress/pic16f84sim/commands/Call.java @@ -0,0 +1,22 @@ +package de.darkress.pic16f84sim.commands; + +import de.darkress.pic16f84sim.microcontroller.Memory; +import de.darkress.pic16f84sim.microcontroller.ProgramCounter; +import de.darkress.pic16f84sim.microcontroller.Stack; + +public class Call extends CommandUtils implements Command +{ + private final int literal; + + public Call(int input) + { + literal = input & 0x07FF; + } + + @Override + public void execute() + { + Stack.push(ProgramCounter.getPc() + 1); + ProgramCounter.setPcForGotoCall(literal); + } +}