Files
wscience/resources/TOY/multiply.toy

28 lines
769 B
Plaintext

program Multiply
// Input: integers a and b stored in mem[0A], mem[0B]
// Output: integer c = a * b stored in mem[0C]
// Remarks: Inefficient
// -----------------------------------------------------------------------------
0A: 0003 (0000 0000 0000 0111, 3)
0B: 0009 (0000 0000 0000 1001, 9)
0C: 0000 (0000 0000 0000 0000, 0)
0D: 0000 (0000 0000 0000 0000, 0)
0E: 0001 (0000 0000 0000 0001, 1)
10: 8A0A RA <- mem[0A] a
11: 8B0B RB <- mem[0B] b
12: 8C0D RC <- mem[0D] c = 0;
13: 810E R1 <- mem[0E] always 1
14: CA18 if (RA == 0) pc goto 18 while (a != 0) {
15: 1CCB RC <- RC + RB c = c + b;
16: 2AA1 RA <- RA - R1 a = a - 1;
17: C014 pc <- 14 }
18: 9C0C mem[0C] <- RC
19: 0000 halt