blob: 664e701500da99e313145e6f23f90418e1c97dab (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import time
from atk16_asm import assemble
from atk16_emu import Machine
from test.utils import pad_bytearray
def test_fibo():
filename = "test/e2e/fibo/fibo.atk16"
with open(filename, "r") as f:
source = f.read()
obj = assemble(source, filename)
rom_image = pad_bytearray(obj.program)
machine = Machine()
machine.load_rom_image(rom_image)
machine.reset()
start = time.perf_counter_ns()
machine.run_until_halted()
end = time.perf_counter_ns()
machine.print_state_summary()
elapsed = end - start
print("Elapsed time:", elapsed, "ns")
steps_taken = machine.steps_taken
print("Instructions / second:", steps_taken / (elapsed / 1e9))
assert machine.ra.value == 41443
|