0: input_addr
4: output_addr
8: stack_top_pos
256: _start
318: loop
378: process
416: write_loop
438: write_loop_end
456: output
480: output_loop
508: end
510: zero
530: fail
1024: result_bytes
1028: result_length
---
mem[0..3]: 80 00 00 00 @"input_addr"
mem[4..7]: 84 00 00 00 @"output_addr"
mem[8..255]: 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @"stack_top_pos"
mem[256..261]: MoveA {mode = Long, src = Immediate 8, dst = DirectAddrReg A7} @_start
mem[262..265]: MoveA {mode = Long, src = IndirectAddrReg 0 A7 Nothing, dst = DirectAddrReg A7}
mem[266..271]: MoveA {mode = Long, src = Immediate 1028, dst = DirectAddrReg A6}
mem[272..277]: MoveA {mode = Long, src = Immediate 1024, dst = DirectAddrReg A5}
mem[278..283]: MoveA {mode = Long, src = Immediate 0, dst = DirectAddrReg A0}
mem[284..287]: MoveA {mode = Long, src = IndirectAddrReg 0 A0 Nothing, dst = DirectAddrReg A0}
mem[288..291]: Move {mode = Long, src = IndirectAddrReg 0 A0 Nothing, dst = DirectDataReg D7}
mem[292..293]: Move {mode = Long, src = DirectDataReg D7, dst = DirectDataReg D1}
mem[294..299]: Cmp {mode = Long, src = Immediate 0, dst = DirectDataReg D1}
mem[300..305]: Ble {ref = 510}
mem[306..311]: Asr {mode = Long, src = Immediate 1, dst = DirectDataReg D7}
mem[312..317]: Move {mode = Long, src = Immediate 0, dst = DirectDataReg D5}
mem[318..319]: Cmp {mode = Long, src = DirectDataReg D7, dst = DirectDataReg D5} @loop
mem[320..325]: Bge {ref = 456}
mem[326..327]: Move {mode = Long, src = DirectDataReg D5, dst = DirectDataReg D0}
mem[328..333]: And {mode = Long, src = Immediate 1, dst = DirectDataReg D0}
mem[334..339]: Cmp {mode = Long, src = Immediate 0, dst = DirectDataReg D0}
mem[340..345]: Bne {ref = 378}
mem[346..351]: MoveA {mode = Long, src = Immediate 0, dst = DirectAddrReg A0}
mem[352..355]: MoveA {mode = Long, src = IndirectAddrReg 0 A0 Nothing, dst = DirectAddrReg A0}
mem[356..359]: Move {mode = Long, src = IndirectAddrReg 0 A0 Nothing, dst = DirectDataReg D6}
mem[360..365]: Sub {mode = Long, src = Immediate 2, dst = DirectDataReg D1}
mem[366..371]: Cmp {mode = Long, src = Immediate 1, dst = DirectDataReg D1}
mem[372..377]: Beq {ref = 530}
mem[378..379]: Move {mode = Long, src = DirectDataReg D6, dst = DirectDataReg D4} @process
mem[380..385]: Asr {mode = Long, src = Immediate 16, dst = DirectDataReg D4}
mem[386..387]: Move {mode = Byte, src = DirectDataReg D4, dst = DirectDataReg D3}
mem[388..393]: Asr {mode = Long, src = Immediate 8, dst = DirectDataReg D4}
mem[394..399]: Cmp {mode = Long, src = Immediate 0, dst = DirectDataReg D4}
mem[400..405]: Beq {ref = 530}
mem[406..409]: Add {mode = Long, src = DirectDataReg D4, dst = IndirectAddrReg 0 A6 Nothing}
mem[410..415]: Move {mode = Long, src = Immediate 0, dst = DirectDataReg D2}
mem[416..417]: Cmp {mode = Long, src = DirectDataReg D4, dst = DirectDataReg D2} @write_loop
mem[418..423]: Beq {ref = 438}
mem[424..425]: Move {mode = Byte, src = DirectDataReg D3, dst = IndirectAddrRegPreDecrement A5}
mem[426..431]: Add {mode = Long, src = Immediate 1, dst = DirectDataReg D2}
mem[432..437]: Jmp {ref = 416}
mem[438..443]: Asl {mode = Long, src = Immediate 16, dst = DirectDataReg D6} @write_loop_end
mem[444..449]: Add {mode = Long, src = Immediate 1, dst = DirectDataReg D5}
mem[450..455]: Jmp {ref = 318}
mem[456..459]: Move {mode = Long, src = IndirectAddrReg 0 A6 Nothing, dst = DirectDataReg D4} @output
mem[460..465]: MoveA {mode = Long, src = Immediate 4, dst = DirectAddrReg A1}
mem[466..469]: MoveA {mode = Long, src = IndirectAddrReg 0 A1 Nothing, dst = DirectAddrReg A1}
mem[470..473]: Move {mode = Long, src = DirectDataReg D4, dst = IndirectAddrReg 0 A1 Nothing}
mem[474..479]: MoveA {mode = Long, src = Immediate 1024, dst = DirectAddrReg A5}
mem[480..485]: Cmp {mode = Long, src = Immediate 0, dst = DirectDataReg D4} @output_loop
mem[486..491]: Ble {ref = 508}
mem[492..495]: Move {mode = Long, src = IndirectAddrRegPreDecrement A5, dst = IndirectAddrReg 0 A1 Nothing}
mem[496..501]: Sub {mode = Long, src = Immediate 4, dst = DirectDataReg D4}
mem[502..507]: Jmp {ref = 480}
mem[508..509]: Halt @end
mem[510..515]: MoveA {mode = Long, src = Immediate 4, dst = DirectAddrReg A1} @zero
mem[516..519]: MoveA {mode = Long, src = IndirectAddrReg 0 A1 Nothing, dst = DirectAddrReg A1}
mem[520..527]: Move {mode = Long, src = Immediate 0, dst = IndirectAddrReg 0 A1 Nothing}
mem[528..529]: Halt
mem[530..535]: MoveA {mode = Long, src = Immediate 4, dst = DirectAddrReg A1} @fail
mem[536..539]: MoveA {mode = Long, src = IndirectAddrReg 0 A1 Nothing, dst = DirectAddrReg A1}
mem[540..547]: Move {mode = Long, src = Immediate (-1), dst = IndirectAddrReg 0 A1 Nothing}
mem[548..549]: Halt
mem[550..1023]: ( 00 )
mem[1024..1027]: 00 00 00 00 @"result_bytes"
mem[1028..4095]: ( 00 ) @"result_length"
/* comment */