program Chop /****************************************************************************** * Description: This program uses the fact that numbers in the toy machine are * represented by 16-bit signed two's complement numbers. * To learn more about signed two's complement numbers, please * see Professor Wayne's notes on the TOY machine. * Note: a non-positive value of N will cause undefined behavior. * Input: N * Output: The unique set of powers of 2 which sum to N ******************************************************************************/ // Initialize 10: 82FF read R[2] // Check for non-positive values 11: D213 if (R[2] > 0) goto 13 12: 0000 halt // Loop 13: 2302 R[3] <- -R[2] 14: 3423 R[4] <- R[2] & R[3] 15: 94FF write R[4] 16: 2224 R[2] <- R[2] - R[4] 17: D211 if (R[2] > 0) goto 11 18: 0000 halt