@@ -78,7 +78,7 @@ def run(self):
78
78
):
79
79
self .instructions_done += 1
80
80
# Get details of current operation
81
- opcode = self .instructions [self .pointer ]
81
+ opcode = self .instructions [self .pointer ][ 0 ]
82
82
current_instr = self .get_instruction (opcode )
83
83
84
84
# Outputs operation details before its execution
@@ -103,9 +103,9 @@ def get_instruction(self, opcode):
103
103
values = [opcode ] + [
104
104
self .instructions [self .pointer + order + 1 ] for order in args_order
105
105
]
106
- print ([self .pointer + order + 1 for order in args_order ])
106
+ # print([self.pointer + order + 1 for order in args_order])
107
107
108
- print (args_order , values , self .operation_codes [opcode ])
108
+ # print(args_order, values, self.operation_codes[opcode])
109
109
110
110
return values
111
111
@@ -216,6 +216,12 @@ def op_multiply(self, instr):
216
216
instr [1 ], self .get_register (instr [2 ]) * self .get_register (instr [3 ])
217
217
)
218
218
219
+ # div a b c: store into <a> the division of <b> by <c>" (integer value),
220
+ def op_divide (self , instr ):
221
+ self .set_register (
222
+ instr [1 ], self .get_register (instr [2 ]) // self .get_register (instr [3 ])
223
+ )
224
+
219
225
# mod a b c: store into <a> the remainder of <b> divided by <c>",
220
226
def op_modulo (self , instr ):
221
227
self .set_register (
@@ -483,6 +489,7 @@ def custom_commands(self):
483
489
9 : ["add: {0} = {1}+{2}" , 4 , op_add , [2 , 0 , 1 ]], # This means c = a + b
484
490
10 : ["mult: {0} = {1}*{2}" , 4 , op_multiply , [0 , 1 , 2 ]],
485
491
11 : ["mod: {0} = {1}%{2}" , 4 , op_modulo , [0 , 1 , 2 ]],
492
+ 17 : ["div: {0} = {1}//{2}" , 4 , op_divide , [0 , 1 , 2 ]],
486
493
1 : ["set: {0} = {1}" , 3 , op_set , [0 , 1 ]],
487
494
# Comparisons
488
495
4 : ["eq: {0} = {1} == {2}" , 4 , op_equal , [0 , 1 , 2 ]],
0 commit comments