/projects/05/Jump.hdl
https://github.com/cpatuzzo/nand2tetris · Unknown · 28 lines · 22 code · 6 blank · 0 comment · 0 complexity · 5ce3353f9167611b2f7aded9844ec389 MD5 · raw file
- CHIP Jump {
- IN zero, // indicates x == 0
- neg, // indicates x < 0
- code[3]; // One of the eight jump codes:
- // 000 : nil : No jump
- // 001 : JGT : If out > 0 jump
- // 010 : JEQ : If out == 0 jump
- // 011 : JGE : If out >= 0 jump
- // 100 : JLT : If out < 0 jump
- // 101 : JNE : If out != 0 jump
- // 110 : JLE : If out <= 0 jump
- // 111 : JMP : Jump
- OUT out;
- PARTS:
- Or(a=zero, b=neg, out=le);
- Not(in=le, out=pos);
- And(a=code[0], b=pos, out=j1);
- And(a=code[1], b=zero, out=j2);
- And(a=code[2], b=neg, out=j3);
- Or(a=j1, b=j2, out=or);
- Or(a=or, b=j3, out=out);
- }