m equ r1 i equ r5 x equ r2 si equ r6 itr equ r4 j equ r3 cseg at 0 jmp start ; S0 = m - x; ; Si+1 = m - x*Si/m; div16: xch a,b subb A,m jc sta setb ov jmp out sta: mov i,#10 m1: add a,m clr c cikl: djnz i,m2 jmp out m2: xch a,B rlc A xch a, B rlc A mov F0,C subb a,m jb F0,cikl jc m1 setb c jmp cikl out: ret ; reg b start: mov m,#100 mov x, #0 mov itr, #100 loop: // S0 = m - x mov a, m subb a, x mov si, a // j = 10 mov j, #10 innerLoop: mov b, x ; x mov a, si ; Si mul ab // x*Si // x*Si/m acall div16 // m - x*Si/m mov a, m subb a, b mov si, a dec j // checking end of the innerloop mov a, j jnz innerLoop inc x // increment X mov P3, si mov P2, x dec itr //checking end of the loop mov a, itr jnz loop jmp $ end