inst_jnz.asm (992B)
1tpu X0 Y0 2 ## ${ADDR_INST_JNZ} 3 4 mov UP, DOWN 5 mov UP, NIL 6 mov UP, DOWN 7 mov UP, NIL 8 9 # get reg r0 10 mov ${ADDR_GPR}, RIGHT 11 mov ${ADDR_INST_JNZ}, RIGHT 12 mov ${MEM_OP_READ}, RIGHT 13 mov 0x00, RIGHT 14 mov ${OP_NIL}, RIGHT 15 16 # get ack 17 mov UP, NIL 18 mov UP, NIL 19 mov UP, ACC 20 mov UP, NIL 21 22 jne 0, do_jmp 23 mov DOWN, NIL 24 jmp do_ack 25do_jmp: 26 27 # get rip 28 mov ${ADDR_RIP}, RIGHT 29 mov ${ADDR_INST_JNZ}, RIGHT 30 mov ${MEM_OP_READ}, RIGHT 31 mov 0x00, RIGHT 32 mov ${OP_NIL}, RIGHT 33 34 # get ack 35 mov UP, NIL 36 mov UP, NIL 37 mov UP, ACC 38 mov UP, NIL 39 40 # add offset 41 add DOWN 42 sub 16 43 44 # request rip change 45 mov ${ADDR_RIP}, RIGHT 46 mov ${ADDR_INST_JNZ}, RIGHT 47 mov ${MEM_OP_WRITE}, RIGHT 48 mov 0x00, RIGHT 49 mov ACC, RIGHT 50 51 # receive response 52 mov UP, NIL 53 mov UP, NIL 54 mov UP, NIL 55 mov UP, NIL 56 57do_ack: 58 # send ack 59 mov DOWN, RIGHT 60 mov ${ADDR_INST_JNZ}, RIGHT 61 mov ${OP_ACK}, RIGHT 62 mov ${OP_NIL}, RIGHT 63 mov ${OP_NIL}, RIGHT 64end 65 66tpu X1 Y0 67 mov LEFT, UP 68end 69 70tpu X0 Y1 71 mov UP, ACC 72 mov UP, UP 73 mov ACC, UP 74end