nop_1; 01 1 [1] template 1 nop_1; 01 2 [2] template 1 nop_1; 01 3 [3] template 1 nop_1; 01 4 [4] template 1 zero; 04 5 [5] set cx to zero, cx=0 or1; 02 6 [6] flip low order bit of cx, cx^=1 shl; 03 7 [7] shift left cx, cx<<=1 shl; 03 8 [8] shift left cx, cx<<=1 mov_cd; 18 9 [9] move cx to dx, dx=cx adrb; 1c 10 [a] search template (backward) address to ax nop_0; 00 11 [b] template 0 nop_0; 00 12 [c] template 0 nop_0; 00 13 [d] template 0 nop_0; 00 14 [e] template 0 sub_ac; 07 15 [f] substract cx from ax, ax=ax-cx mov_ab; 19 16 [10] move ax to bx, bx=ax adrf; 1d 17 [11] search template (forward) address to ax nop_0; 00 18 [12] template 0 nop_0; 00 19 [13] template 0 nop_0; 00 20 [14] template 0 nop_1; 01 21 [15] template 1 inc_a; 08 22 [16] increment ax, ax++ sub_ab; 06 23 [17] substract bx from ax, result to cx, cx=ax-bx nop_1; 01 24 [18] template 1 nop_1; 01 25 [19] template 1 nop_0; 00 26 [1a] template 0 nop_1; 01 27 [1b] template 1 mal; 1e 28 [1c] allocate memory, cx=size, return address in ax call; 16 29 [1d] call subroutine (nearest) nop_0; 00 30 [1e] template 0 nop_0; 00 31 [1f] template 0 nop_1; 01 32 [20] template 1 nop_1; 01 33 [21] template 1 divide; 1f 34 [22] cell division, start of cell in ax jmp; 14 35 [23] jump (nearest) nop_0; 00 36 [24] template 0 nop_0; 00 37 [25] template 0 nop_1; 01 38 [26] template 1 nop_0; 00 39 [27] template 0 if_cz; 05 40 [28] if cx==0 execute next intruction nop_1; 01 41 [29] template 1 nop_1; 01 42 [2a] template 1 nop_0; 00 43 [2b] template 0 nop_0; 00 44 [2c] template 0 push_ax; 0c 45 [2d] push ax on stack push_bx; 0d 46 [2e] push bx on stack push_cx; 0e 47 [2f] push cx on stack nop_1; 01 48 [30] template 1 nop_0; 00 49 [31] template 0 nop_1; 01 50 [32] template 1 nop_0; 00 51 [33] template 0 mov_iab; 1a 52 [34] move instruction at [bx] to [ax], [ax]=[bx] dec_c; 0a 53 [35] decrement cx, cx-- if_cz; 05 54 [36] if cx==0 execute next intruction jmp; 14 55 [37] jump (nearest) nop_0; 00 56 [38] template 0 nop_1; 01 57 [39] template 1 nop_0; 00 58 [3a] template 0 nop_0; 00 59 [3b] template 0 inc_a; 08 60 [3c] increment ax, ax++ inc_b; 09 61 [3d] increment bx, bx++ jmp; 14 62 [3e] jump (nearest) nop_0; 00 63 [3f] template 0 nop_1; 01 64 [40] template 1 nop_0; 00 65 [41] template 0 nop_1; 01 66 [42] template 1 if_cz; 05 67 [43] if cx==0 execute next intruction nop_1; 01 68 [44] template 1 nop_0; 00 69 [45] template 0 nop_1; 01 70 [46] template 1 nop_1; 01 71 [47] template 1 pop_cx; 12 72 [48] pop to cx pop_bx; 11 73 [49] pop to bx pop_ax; 10 74 [4a] pop to ax ret; 17 75 [4b] return from subroutine nop_1; 01 76 [4c] template 1 nop_1; 01 77 [4d] template 1 nop_1; 01 78 [4e] template 1 nop_0; 00 79 [4f] template 0 if_cz; 05 80 [50] if cx==0 execute next intruction