First develop commit. Adding all existing files.
This commit is contained in:
30
resources/TOY/multiply-fast.toy
Normal file
30
resources/TOY/multiply-fast.toy
Normal file
@@ -0,0 +1,30 @@
|
||||
program Fast Multiply
|
||||
// Input: integers a and b stored in mem[0A], mem[0B]
|
||||
// Output: integer c = a * b stored in mem[0C]
|
||||
// Remarks: Binary Multiplication
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
0A: 0003 (0000 0000 0000 0011, 3) input a
|
||||
0B: 0009 (0000 0000 0000 1001, 9) input b
|
||||
0C: 0000 (0000 0000 0000 0000, 0) output c
|
||||
|
||||
0D: 0000 (0000 0000 0000 0000, 0) constant 0
|
||||
0E: 0001 (0000 0000 0000 0000, 1) constant 1
|
||||
0F: 0010 (0000 0000 0001 0000, 16) constant 16
|
||||
|
||||
10: 8A0A R[A] <- mem[0A]
|
||||
11: 8B0B R[B] <- mem[0B]
|
||||
12: 8C0D R[C] <- mem[0D] result
|
||||
13: 810E R[1] <- mem[0E] always 1
|
||||
14: 820F R[2] <- mem[0F] i = 16
|
||||
|
||||
do {
|
||||
15: 2221 R[2] <- R[2] - R[1] i--
|
||||
16: 53A2 R[3] <- R[A] << R[2] a << i
|
||||
17: 64B2 R[4] <- R[B] >> R[2] b >> i
|
||||
18: 3441 R[4] <- R[4] & R[1] bi = ith bit of b
|
||||
19: C41B if (R[4] == 0) goto 1B if bi is 1
|
||||
1A: 1CC3 R[C] <- R[C] + R[3] add a << i to sum
|
||||
1B: D215 if (R[2] > 0) goto 15 }
|
||||
|
||||
1C: 9C0C mem[0C] <- R[C]
|
||||
Reference in New Issue
Block a user