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_swp.asm (996B)


      1tpu X0 Y0
      2	## ${ADDR_INST_SWP}
      3
      4	# get req
      5	mov UP, DOWN
      6	mov UP, NIL
      7	mov UP, ACC
      8	mov ACC, DOWN
      9	mov UP, DOWN
     10
     11	# read reg src
     12	mov ${ADDR_GPR}, RIGHT
     13	mov ${ADDR_INST_SWP}, RIGHT
     14	mov ${MEM_OP_READ}, RIGHT
     15	mov ACC, RIGHT
     16	mov ${OP_NIL}, RIGHT
     17
     18	# get ack (src value)
     19	mov UP, NIL
     20	mov UP, NIL
     21	mov UP, ACC
     22	mov UP, NIL
     23
     24	# write reg dst
     25	mov ${ADDR_GPR}, RIGHT
     26	mov ${ADDR_INST_SWP}, RIGHT
     27	mov ${MEM_OP_WRITE}, RIGHT
     28	mov DOWN, RIGHT
     29	mov ACC, RIGHT
     30
     31	# get ack (prev dst value)
     32	mov UP, NIL
     33	mov UP, NIL
     34	mov UP, ACC
     35	mov UP, NIL
     36
     37	# write reg src
     38	mov ${ADDR_GPR}, RIGHT
     39	mov ${ADDR_INST_SWP}, RIGHT
     40	mov ${MEM_OP_WRITE}, RIGHT
     41	mov DOWN, RIGHT
     42	mov ACC, RIGHT
     43
     44	# get ack (prev src value)
     45	mov UP, NIL
     46	mov UP, NIL
     47	mov UP, NIL
     48	mov UP, NIL
     49
     50	# send ack
     51	mov DOWN, RIGHT
     52	mov ${ADDR_INST_SWP}, RIGHT
     53	mov ${OP_ACK}, RIGHT
     54	mov ${OP_NIL}, RIGHT
     55	mov ${OP_NIL}, RIGHT
     56end
     57
     58tpu X1 Y0
     59	mov LEFT, UP
     60end
     61
     62tpu X0 Y1
     63	mov UP, ACC
     64	swp
     65	mov UP, ACC
     66	mov UP, UP
     67	mov ACC, UP
     68	swp
     69	mov ACC, UP
     70end