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_ldb.asm (930B)


      1tpu X0 Y0
      2	## ${ADDR_INST_LDB}
      3
      4	mov UP, DOWN
      5	mov UP, NIL
      6	mov UP, ACC
      7	mov UP, DOWN
      8
      9	# read reg src
     10	mov ${ADDR_GPR}, RIGHT
     11	mov ${ADDR_INST_LDB}, RIGHT
     12	mov ${MEM_OP_READ}, RIGHT
     13	mov ACC, 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	# read memory [src]
     23	sav
     24	shr 6
     25	add ${ADDR_MEMORY_BASE}
     26	mov ACC, RIGHT
     27	swp
     28	mov ${ADDR_INST_LDB}, RIGHT
     29	mov ${MEM_OP_READ}, RIGHT
     30	mov ACC, RIGHT
     31	mov ${OP_NIL}, RIGHT
     32
     33	# get ack
     34	mov UP, NIL
     35	mov UP, NIL
     36	mov UP, ACC
     37	mov UP, NIL
     38
     39	# write reg dst
     40	mov ${ADDR_GPR}, RIGHT
     41	mov ${ADDR_INST_LDB}, RIGHT
     42	mov ${MEM_OP_WRITE}, RIGHT
     43	mov DOWN, RIGHT
     44	mov ACC, RIGHT
     45
     46	# get ack
     47	mov UP, NIL
     48	mov UP, NIL
     49	mov UP, NIL
     50	mov UP, NIL
     51
     52	# send ack
     53	mov DOWN, RIGHT
     54	mov ${ADDR_INST_LDB}, RIGHT
     55	mov ${OP_ACK}, RIGHT
     56	mov ${OP_NIL}, RIGHT
     57	mov ${OP_NIL}, RIGHT
     58end
     59
     60tpu X1 Y0
     61	mov LEFT, UP
     62end
     63
     64tpu X0 Y1
     65	mov UP, ACC
     66	mov UP, UP
     67	mov ACC, UP
     68end