Hack C-instruction operations | c | Operation | a=0 | a=1 | Raw operation | | ------ | ---------- | --- | --- | ------------- | | 111111 | 1 | 1 | | !(!0 + !0) | | 101010 | 0 | 0 | | 0 + 0 | | 101111 | 0 | | | !( 0 + !0) | | 111011 | 0 | | | !(!0 + 0) | | 101000 | 0 | | | 0 & 0 | | 111000 | 0 | | | !0 & 0 | | 111101 | 0 | | | !(!0 & !0) | | 001000 | 0 | | | x & 0 | | 011000 | 0 | | | !x & 0 | | 100000 | 0 | | | 0 & y | | 100100 | 0 | | | 0 & !y | | 101100 | 0 | | | 0 & !0 | | 111010 | -1 | -1 | | !0 + 0 | | 101110 | -1 | | | 0 + !0 | | 101011 | -1 | | | !( 0 + 0) | | 111100 | -1 | | | !0 & !0 | | 101001 | -1 | | | !( 0 & 0) | | 101101 | -1 | | | !( 0 & !0) | | 111001 | -1 | | | !(!0 & 0) | | 001001 | -1 | | | !( x & 0) | | 011001 | -1 | | | !(!x & 0) | | 100001 | -1 | | | !( 0 & y) | | 100101 | -1 | | | !( 0 & !y) | | 111110 | -2 | | | !0 + !0 | | 001100 | x | D | | x & !0 | | 001010 | x | | | x + 0 | | 011011 | x | | | !(!x + 0) | | 011101 | x | | | !(!x & !0) | | 110000 | y | A | M | !0 & y | | 100010 | y | | | 0 + y | | 100111 | y | | | !( 0 + !y) | | 110101 | y | | | !(!0 & !y) | | 001101 | !x | !D | | !( x & !0) | | 001011 | !x | | | !( x + 0) | | 011010 | !x | | | !x + 0 | | 011100 | !x | | | !x & !0 | | 110001 | !y | !A | !M | !(!0 & y) | | 100011 | !y | | | !( 0 + y) | | 100110 | !y | | | 0 + !y | | 110100 | !y | | | !0 & !y | | 001111 | -x | -D | | !( x + !0) | | 110011 | -y | -A | -M | !(!0 + y) | | 011111 | x + 1 | D+1 | | !(!x + !0) | | 110111 | y + 1 | A+1 | M+1 | !(!0 + !y) | | 001110 | x - 1 | D-1 | | x + !0 | | 110010 | y - 1 | A-1 | M-1 | !0 + y | | 000010 | x + y | D+A | D+M | x + y | | 010011 | x - y | D-A | D-M | !(!x + y) | | 000111 | y - x | A-D | M-D | !( x + !y) | | 011110 | -x - 2 | | | !x + !0 | | 110110 | -y - 2 | | | !0 + !y | | 010111 | x + y + 1 | | | !(!x + !y) | | 000110 | x - y - 1 | | | x + !y | | 010010 | y - x - 1 | | | !x + y | | 000011 | -x - y - 1 | | | !( x + y) | | 010110 | -x - y - 2 | | | !x + !y | | 000000 | x & y | D&A | D&M | x & y | | 000100 | x & !y | | | x & !y | | 010000 | !x & y | | | !x & y | | 000001 | !(x & y) | | | !( x & y) | | 010101 | x | y | D|A | D|M | !(!x & !y) | | 010001 | x | !y | | | !(!x & y) | | 000101 | !x | y | | | !( x & !y) | | 010100 | !(x | y) | | | !x & !y |