// push constant 17 @17 D=A @SP A=M M=D @SP M=M+1 // push constant 17 @17 D=A @SP A=M M=D @SP M=M+1 // eq @SP AM=M-1 D=M @SP A=M-1 D=M-D @eq0 D;JEQ @SP A=M-1 M=0 @end0 0;JEQ (@eq0) @SP A=M-1 M=-1 (@end0) // push constant 17 @17 D=A @SP A=M M=D @SP M=M+1 // push constant 16 @16 D=A @SP A=M M=D @SP M=M+1 // eq @SP AM=M-1 D=M @SP A=M-1 D=M-D @eq1 D;JEQ @SP A=M-1 M=0 @end1 0;JEQ (@eq1) @SP A=M-1 M=-1 (@end1) // push constant 16 @16 D=A @SP A=M M=D @SP M=M+1 // push constant 17 @17 D=A @SP A=M M=D @SP M=M+1 // eq @SP AM=M-1 D=M @SP A=M-1 D=M-D @eq2 D;JEQ @SP A=M-1 M=0 @end2 0;JEQ (@eq2) @SP A=M-1 M=-1 (@end2) // push constant 892 @892 D=A @SP A=M M=D @SP M=M+1 // push constant 891 @891 D=A @SP A=M M=D @SP M=M+1 // lt @SP AM=M-1 D=M @SP A=M-1 D=M-D @lt3 D;JLT @SP A=M-1 M=0 @end3 0;JEQ (@lt3) @SP A=M-1 M=-1 (@end3) // push constant 891 @891 D=A @SP A=M M=D @SP M=M+1 // push constant 892 @892 D=A @SP A=M M=D @SP M=M+1 // lt @SP AM=M-1 D=M @SP A=M-1 D=M-D @lt4 D;JLT @SP A=M-1 M=0 @end4 0;JEQ (@lt4) @SP A=M-1 M=-1 (@end4) // push constant 891 @891 D=A @SP A=M M=D @SP M=M+1 // push constant 891 @891 D=A @SP A=M M=D @SP M=M+1 // lt @SP AM=M-1 D=M @SP A=M-1 D=M-D @lt5 D;JLT @SP A=M-1 M=0 @end5 0;JEQ (@lt5) @SP A=M-1 M=-1 (@end5) // push constant 32767 @32767 D=A @SP A=M M=D @SP M=M+1 // push constant 32766 @32766 D=A @SP A=M M=D @SP M=M+1 // gt @SP AM=M-1 D=M @SP A=M-1 D=M-D @gt6 D;JGT @SP A=M-1 M=0 @end6 0;JEQ (@gt6) @SP A=M-1 M=-1 (@end6) // push constant 32766 @32766 D=A @SP A=M M=D @SP M=M+1 // push constant 32767 @32767 D=A @SP A=M M=D @SP M=M+1 // gt @SP AM=M-1 D=M @SP A=M-1 D=M-D @gt7 D;JGT @SP A=M-1 M=0 @end7 0;JEQ (@gt7) @SP A=M-1 M=-1 (@end7) // push constant 32766 @32766 D=A @SP A=M M=D @SP M=M+1 // push constant 32766 @32766 D=A @SP A=M M=D @SP M=M+1 // gt @SP AM=M-1 D=M @SP A=M-1 D=M-D @gt8 D;JGT @SP A=M-1 M=0 @end8 0;JEQ (@gt8) @SP A=M-1 M=-1 (@end8) // push constant 57 @57 D=A @SP A=M M=D @SP M=M+1 // push constant 31 @31 D=A @SP A=M M=D @SP M=M+1 // push constant 53 @53 D=A @SP A=M M=D @SP M=M+1 // add @SP AM=M-1 D=M @SP A=M-1 D=D+M M=D // push constant 112 @112 D=A @SP A=M M=D @SP M=M+1 // sub @SP AM=M-1 D=M @SP A=M-1 D=M-D M=D // neg @SP A=M-1 M=-M // and @SP AM=M-1 D=M @SP A=M-1 D=D&M M=D // push constant 82 @82 D=A @SP A=M M=D @SP M=M+1 // or @SP AM=M-1 D=M @SP A=M-1 D=D|M M=D // not @SP A=M-1 M=!M