Add addnum, subnum, mulnum, divnum

master
kolaente 5 years ago
parent dda339123c
commit c26197408f
Signed by: kolaente
GPG Key ID: F40E70337AB24C9B
  1. 27
      hal/instructions.go

@ -50,6 +50,9 @@ var instructions = []*Instruction{
InstructionJump,
InstructionAdd,
InstructionAddNum,
InstructionSubNum,
InstructionMulNum,
InstructionDivNum,
}
var InstructionStart = &Instruction{
@ -171,10 +174,28 @@ var InstructionAdd = &Instruction{
},
}
var InstructionAddNum = &Instruction{
Name: "ADDNUM",
func newMathNumInstruction(name string, operation func(accumulator, value float64) float64) *Instruction {
return &Instruction{
Name: name,
ExecuteWithOperand: func(module *Module, operand float64) error {
module.accumulator = module.accumulator + operand
module.accumulator = operation(module.accumulator, operand)
return nil
},
}
}
var InstructionAddNum = newMathNumInstruction("ADDNUM", func(accumulator, value float64) float64 {
return accumulator + value
})
var InstructionSubNum = newMathNumInstruction("SUBNUM", func(accumulator, value float64) float64 {
return accumulator - value
})
var InstructionMulNum = newMathNumInstruction("MULNUM", func(accumulator, value float64) float64 {
return accumulator * value
})
var InstructionDivNum = newMathNumInstruction("DIVNUM", func(accumulator, value float64) float64 {
return accumulator / value
})

Loading…
Cancel
Save