Skip to content

Instantly share code, notes, and snippets.

@lironsade
Created October 15, 2017 16:28
Show Gist options
  • Save lironsade/eff6ae391bf2b56fb6e8ddccda555e53 to your computer and use it in GitHub Desktop.
Save lironsade/eff6ae391bf2b56fb6e8ddccda555e53 to your computer and use it in GitHub Desktop.
def parseDest(dest):
destTable = {
None: "000",
"M": "001",
"D": "010",
"A": "100",
"MD": "011",
"AM": "101",
"AD": "110",
"AMD": "111"
}
return destTable.get(dest)
def parseJmp(jmp):
jmpTable = {
None: '000',
'JGT': '001',
'JEQ': '010',
'JGE': '011',
'JLT': '100',
'JNE': '101',
'JLE': '110',
'JMP': '111'
}
return jmpTable.get(jmp)
def parseComp(comp):
compTable = {
"0": "0101010",
"1": "0111111",
"-1": "0111010",
"D": "0001100",
"A": "0110000",
"!D": "0001101",
"!A": "0110001",
"-D": "0001111",
"-A": "0110011",
"D+1": "0011111",
"A+1": "0110111",
"D-1": "0001110",
"A-1": "0110010",
"D+A": "0000010",
"D-A": "0010011",
"A-D": "0000111",
"D&A": "0000000",
"D|A": "0010101",
"M": "1110000",
"!M": "1110001",
"-M": "1110011",
"M+1": "1110111",
"M-1": "1110010",
"D+M": "1000010",
"D-M": "1010011",
"M-D": "1000111",
"D&M": "1000000",
"D|M": "1010101"
}
return compTable.get(comp)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment