Skip to content

Commit 2b4089c

Browse files
committed
Added divide in assembly library + fixed issue on opcode
1 parent b34438e commit 2b4089c

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

2021/assembly.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def run(self):
7878
):
7979
self.instructions_done += 1
8080
# Get details of current operation
81-
opcode = self.instructions[self.pointer]
81+
opcode = self.instructions[self.pointer][0]
8282
current_instr = self.get_instruction(opcode)
8383

8484
# Outputs operation details before its execution
@@ -103,9 +103,9 @@ def get_instruction(self, opcode):
103103
values = [opcode] + [
104104
self.instructions[self.pointer + order + 1] for order in args_order
105105
]
106-
print([self.pointer + order + 1 for order in args_order])
106+
# print([self.pointer + order + 1 for order in args_order])
107107

108-
print(args_order, values, self.operation_codes[opcode])
108+
# print(args_order, values, self.operation_codes[opcode])
109109

110110
return values
111111

@@ -216,6 +216,12 @@ def op_multiply(self, instr):
216216
instr[1], self.get_register(instr[2]) * self.get_register(instr[3])
217217
)
218218

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+
219225
# mod a b c: store into <a> the remainder of <b> divided by <c>",
220226
def op_modulo(self, instr):
221227
self.set_register(
@@ -483,6 +489,7 @@ def custom_commands(self):
483489
9: ["add: {0} = {1}+{2}", 4, op_add, [2, 0, 1]], # This means c = a + b
484490
10: ["mult: {0} = {1}*{2}", 4, op_multiply, [0, 1, 2]],
485491
11: ["mod: {0} = {1}%{2}", 4, op_modulo, [0, 1, 2]],
492+
17: ["div: {0} = {1}//{2}", 4, op_divide, [0, 1, 2]],
486493
1: ["set: {0} = {1}", 3, op_set, [0, 1]],
487494
# Comparisons
488495
4: ["eq: {0} = {1} == {2}", 4, op_equal, [0, 1, 2]],

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy