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

cpu.asm (875B)


      1tpu X0 Y0
      2	## ${ADDR_CPU}
      3
      4	# read rip
      5	mov ${ADDR_RIP}, RIGHT
      6	mov ${ADDR_CPU}, RIGHT
      7	mov ${MEM_OP_READ}, RIGHT
      8	mov 0x00, RIGHT
      9	mov ${OP_NIL}, RIGHT
     10
     11	# get ack
     12	mov UP, NIL
     13	mov UP, NIL
     14	mov UP, ACC
     15	mov UP, NIL
     16
     17	# read inst
     18	sav
     19	shr 6
     20	add ${ADDR_MEMORY_BASE}
     21	mov ACC, RIGHT
     22	swp
     23	mov ${ADDR_CPU}, RIGHT
     24	mov ${MEM_OP_READ}, RIGHT
     25	mov ACC, RIGHT
     26	mov ${OP_NIL}, RIGHT
     27
     28	# get ack
     29	swp
     30	mov UP, NIL
     31	mov UP, NIL
     32	mov UP, ACC
     33	mov UP, NIL
     34	swp
     35
     36	# write rip+1
     37	add 1
     38	mov ${ADDR_RIP}, RIGHT
     39	mov ${ADDR_CPU}, RIGHT
     40	mov ${MEM_OP_WRITE}, RIGHT
     41	mov 0x00, RIGHT
     42	mov ACC, RIGHT
     43
     44	# get ack
     45	mov UP, NIL
     46	mov UP, NIL
     47	mov UP, NIL
     48	mov UP, NIL
     49	swp
     50
     51	# run inst
     52	mov ${ADDR_DECODER}, RIGHT
     53	mov ${ADDR_CPU}, RIGHT
     54	mov ACC, RIGHT
     55	mov ${OP_NIL}, RIGHT
     56	mov ${OP_NIL}, RIGHT
     57
     58	# get ack
     59	mov UP, NIL
     60	mov UP, NIL
     61	mov UP, NIL
     62	mov UP, NIL
     63end
     64
     65tpu X1 Y0
     66	mov LEFT, UP
     67end