campctf2023-chall-tis256

Zachtronics TIS100-inspired reversing challenge for CampCTF 2023
git clone https://git.sinitax.com/sinitax/campctf2023-chall-tis256
Log | Files | Refs | Submodules | README | sfeed.txt

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