![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/lib/gems/2.5.0/gems/tins-1.28.0/examples/ |
Upload File : |
# 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 }