protected override void ExecuteInternal(string address, TheCpu cpu, bool value) { if (value) { var addressValue = cpu.GetAddress(address); cpu.PC = addressValue; } else { cpu.PC++; } }
protected override void ExecuteInternal(string address, TheCpu cpu, bool value) { if (value) { cpu.Stack.Push(cpu.PC); cpu.OnPropertyChanged(cpu.PropertyName(() => cpu.Stack)); var addressValue = cpu.GetAddress(address); cpu.PC = addressValue; if (cpu.Stack.Count > 31) { throw new ArgumentException("Препълване на стекът"); } } else { cpu.PC++; } }
public override void Assemble(string[] lines, TheCpu cpu, TheAssembler assembler) { var address = cpu.GetAddress(lines[1]); assembler.address = address; }