User:Ashmanskas/p364/asm.v
From LaPET electronics
< User:Ashmanskas | p364
asm.v
mem['h00] = 'h005c; // start: load one mem['h01] = 'h015d; // store i mem['h02] = 'h005d; // iloop: load i mem['h03] = 'h055c; // add one mem['h04] = 'h015d; // store i mem['h05] = 'h045a; // jumpn done mem['h06] = 'h005b; // load zero mem['h07] = 'h015e; // store j mem['h08] = 'h005e; // jloop: load j mem['h09] = 'h055c; // add one mem['h0a] = 'h015e; // store j mem['h0b] = 'h005d; // load i mem['h0c] = 'h065e; // sub j mem['h0d] = 'h031c; // jumpz jdone mem['h0e] = 'h005b; // load zero mem['h0f] = 'h015f; // store k mem['h10] = 'h005f; // kloop: load k mem['h11] = 'h055c; // add one mem['h12] = 'h015f; // store k mem['h13] = 'h065d; // sub i mem['h14] = 'h0308; // jumpz jloop mem['h15] = 'h005e; // load j mem['h16] = 'h075f; // mul k mem['h17] = 'h0160; // store prod mem['h18] = 'h065d; // sub i mem['h19] = 'h0302; // jumpz iloop mem['h1a] = 'h0410; // jumpn kloop mem['h1b] = 'h0208; // jump jloop mem['h1c] = 'h005b; // jdone: load zero mem['h1d] = 'h0161; // store outnum mem['h1e] = 'h005d; // load i mem['h1f] = 'h0162; // store remain mem['h20] = 'h0667; // sub d10000 mem['h21] = 'h0423; // jumpn thsnds mem['h22] = 'h025a; // jump done mem['h23] = 'h005b; // thsnds: load zero mem['h24] = 'h0163; // store hdigit mem['h25] = 'h0062; // nx1000: load remain mem['h26] = 'h0668; // sub d1000 mem['h27] = 'h042d; // jumpn hndrds mem['h28] = 'h0162; // store remain mem['h29] = 'h0063; // load hdigit mem['h2a] = 'h0564; // add h1000 mem['h2b] = 'h0163; // store hdigit mem['h2c] = 'h0225; // jump nx1000 mem['h2d] = 'h0063; // hndrds: load hdigit mem['h2e] = 'h0561; // add outnum mem['h2f] = 'h0161; // store outnum mem['h30] = 'h005b; // load zero mem['h31] = 'h0163; // store hdigit mem['h32] = 'h0062; // nxt100: load remain mem['h33] = 'h0669; // sub d100 mem['h34] = 'h043a; // jumpn tens mem['h35] = 'h0162; // store remain mem['h36] = 'h0063; // load hdigit mem['h37] = 'h0565; // add h100 mem['h38] = 'h0163; // store hdigit mem['h39] = 'h0232; // jump nxt100 mem['h3a] = 'h0063; // tens: load hdigit mem['h3b] = 'h0561; // add outnum mem['h3c] = 'h0161; // store outnum mem['h3d] = 'h005b; // load zero mem['h3e] = 'h0163; // store hdigit mem['h3f] = 'h0062; // nxt10: load remain mem['h40] = 'h066a; // sub d10 mem['h41] = 'h0447; // jumpn ones mem['h42] = 'h0162; // store remain mem['h43] = 'h0063; // load hdigit mem['h44] = 'h0566; // add h10 mem['h45] = 'h0163; // store hdigit mem['h46] = 'h023f; // jump nxt10 mem['h47] = 'h0063; // ones: load hdigit mem['h48] = 'h0561; // add outnum mem['h49] = 'h0562; // add remain mem['h4a] = 'h0161; // store outnum mem['h4b] = 'h0800; // out mem['h4c] = 'h005b; // load zero mem['h4d] = 'h065c; // sub one mem['h4e] = 'h015e; // store j mem['h4f] = 'h005e; // jdelay: load j mem['h50] = 'h065c; // sub one mem['h51] = 'h015e; // store j mem['h52] = 'h0302; // jumpz iloop mem['h53] = 'h006a; // load d10 mem['h54] = 'h015f; // store k mem['h55] = 'h005f; // kdelay: load k mem['h56] = 'h065c; // sub one mem['h57] = 'h015f; // store k mem['h58] = 'h034f; // jumpz jdelay mem['h59] = 'h0255; // jump kdelay mem['h5a] = 'h0200; // done: jump start mem['h5b] = 'h0000; // zero: .data 0 mem['h5c] = 'h0001; // one: .data 1 mem['h5d] = 'h0000; // i: .data 0 mem['h5e] = 'h0000; // j: .data 0 mem['h5f] = 'h0000; // k: .data 0 mem['h60] = 'h0000; // prod: .data 0 mem['h61] = 'h0000; // outnum: .data 0 mem['h62] = 'h0000; // remain: .data 0 mem['h63] = 'h0000; // hdigit: .data 0 mem['h64] = 'h1000; // h1000: .data 1000 mem['h65] = 'h0100; // h100: .data 100 mem['h66] = 'h0010; // h10: .data 10 mem['h67] = 'h2710; // d10000: .data 2710 mem['h68] = 'h03e8; // d1000: .data 3e8 mem['h69] = 'h0064; // d100: .data 64 mem['h6a] = 'h000a; // d10: .data a