Sha256: a805b9a3b189519fc697d7c63c277bd690068042b1c0aaba8bb08510b8ecfd4b

Contents?: true

Size: 958 Bytes

Versions: 142

Compression:

Stored size: 958 Bytes

Contents

# vim: set filetype=ruby:

# Multiplication: C = A * B, A >= 0 and B >= 0
register.A = 3
register.B = 7

# Save A in T
label(SaveA)  { decrement A, MoveS1, IncT }
label(IncT) { increment T, IncS1 }
label(IncS1) { increment S, SaveA }

label(MoveS1) { decrement S, SaveB, IncA1 }
label(IncA1) { increment A, MoveS1 }

# Save B in U
label(SaveB)  { decrement B, MoveS2, IncU }
label(IncU) { increment U, IncS2 }
label(IncS2) { increment S, SaveB }

label(MoveS2) { decrement S, Mul, IncB1 }
label(IncB1) { increment B, MoveS2 }

# Multiply A * B
label(Mul) { decrement A, MoveT, DecB }

# Add B to C
label(DecB) { decrement B, MoveU, IncC }
label(IncC) { increment C, DecB }

# Move U back to B
label(MoveU) { decrement U, SaveB, IncB2 }
label(IncB2) { increment B, MoveU }

# Move T back to A
label(MoveT) { decrement T, ClearU, IncA2 }
label(IncA2) { increment A, MoveT }

# Clear U
label(ClearU) { decrement U, Stop, ClearU }

# Stop
label(Stop)   { halt }

Version data entries

142 entries across 128 versions & 9 rubygems

Version Path
tins-1.38.0 examples/multiply.reg
tins-1.37.1 examples/multiply.reg
tins-1.37.0 examples/multiply.reg
tins-1.36.1 examples/multiply.reg
tins-1.36.0 examples/multiply.reg
tins-1.35.0 examples/multiply.reg
tins-1.34.0 examples/multiply.reg
tins-1.33.0 examples/multiply.reg
tdiary-5.2.4 vendor/bundle/ruby/3.1.0/gems/tins-1.31.1/examples/multiply.reg
tins-1.32.1 examples/multiply.reg
tins-1.32.0 examples/multiply.reg
tdiary-5.2.3 vendor/bundle/ruby/3.1.0/gems/tins-1.31.1/examples/multiply.reg
tdiary-5.2.2 vendor/bundle/ruby/3.1.0/gems/tins-1.31.1/examples/multiply.reg
tins-1.31.1 examples/multiply.reg
tdiary-5.2.1 vendor/bundle/ruby/3.1.0/gems/tins-1.31.0/examples/multiply.reg
tins-1.31.0 examples/multiply.reg
tins-1.30.0 examples/multiply.reg
tdiary-5.2.0 vendor/bundle/ruby/3.0.0/gems/tins-1.29.1/examples/multiply.reg
tdiary-5.2.0 vendor/bundle/ruby/2.7.0/gems/tins-1.29.1/examples/multiply.reg
tdiary-5.1.7 vendor/bundle/ruby/3.0.0/gems/tins-1.29.1/examples/multiply.reg