{ 1: } { jednotlivé optimalizované smyčky } @Bres_loop1: mov [es:di],ax { uloží nainterpolovanou hodnotu do pole } cmp dx,0 jnl @21 { podmíněný skok predikce dx } add dx,bx { dx = dx + bx (predikce 1) } add di,2 { di = di + 2 (další položka v poli) } jmp @31 @21: add dx,cx { dx = dx + cx (predikce 2) } inc ax { ax = ax + 1 (interpolovaná hodnota) } add di,2 { di = di + 2 (další položka v poli) } @31: dec si jnz @Bres_loop1 jmp @done { 1: -x } @Bres_loop1x: mov [es:di],ax { uloží nainterpolovanou hodnotu do pole } cmp dx,0 jnl @21x { podmíněný skok predikce dx } add dx,bx { dx = dx + bx (predikce 1) } add di,2 { di = di + 2 (další položka v poli) } jmp @31x @21x: add dx,cx { dx = dx + cx (predikce 2) } dec ax { ax = ax - 1 (interpolovaná hodnota) } add di,2 { di = di + 2 (další položka v poli) } @31x: dec si jnz @Bres_loop1x jmp @done { 1: -y } @Bres_loop1y: mov [es:di],ax { uloží nainterpolovanou hodnotu do pole } cmp dx,0 jnl @21y { podmíněný skok predikce dx } add dx,bx { dx = dx + bx (predikce 1) } sub di,2 { di = di - 2 (další položka v poli) } jmp @31y @21y: add dx,cx { dx = dx + cx (predikce 2) } inc ax { ax = ax + 1 (interpolovaná hodnota) } sub di,2 { di = di - 2 (další položka v poli) } @31y: dec si jnz @Bres_loop1y jmp @done { 1: -x a -y } @Bres_loop1xy: mov [es:di],ax { uloží nainterpolovanou hodnotu do pole } cmp dx,0 jnl @21xy { podmíněný skok predikce dx } add dx,bx { dx = dx + bx (predikce 1) } sub di,2 { di = di - 2 (další položka v poli) } jmp @31xy @21xy: add dx,cx { dx = dx + cx (predikce 2) } dec ax { ax = ax - 1 (interpolovaná hodnota) } sub di,2 { di = di - 2 (další položka v poli) } @31xy: dec si jnz @Bres_loop1xy jmp @done { 2: } @Bres_loop2: mov [es:di],ax { uloží nainterpolovanou hodnotu do pole } cmp dx,0 jnl @22 { podmíněný skok predikce dx } add dx,bx { dx = dx + bx (predikce 1) } inc ax { ax = ax + 1 (interpolovaná hodnota) } jmp @32 @22: add dx,cx { dx = dx + cx (predikce 2) } inc ax { ax = ax + 1 (interpolovaná hodnota) } add di,2 { di = di + 2 (další položka v poli) } @32: dec si jnz @Bres_loop2 jmp @done { 2: -x } @Bres_loop2x: mov [es:di],ax { uloží nainterpolovanou hodnotu do pole } cmp dx,0 jnl @22x { podmíněný skok predikce dx } add dx,bx { dx = dx + bx (predikce 1) } dec ax { ax = ax - 1 (interpolovaná hodnota) } jmp @32x @22x: add dx,cx { dx = dx + cx (predikce 2) } dec ax { ax = ax - 1 (interpolovaná hodnota) } add di,2 { di = di + 2 (další položka v poli) } @32x: dec si jnz @Bres_loop2x jmp @done { 2: -y } @Bres_loop2y: mov [es:di],ax { uloží nainterpolovanou hodnotu do pole } cmp dx,0 jnl @22y { podmíněný skok predikce dx } add dx,bx { dx = dx + bx (predikce 1) } inc ax { ax = ax + 1 (interpolovaná hodnota) } jmp @32y @22y: add dx,cx { dx = dx + cx (predikce 2) } inc ax { ax = ax + 1 (interpolovaná hodnota) } sub di,2 { di = di - 2 (další položka v poli) } @32y: dec si jnz @Bres_loop2y jmp @done { 2: -x a -y } @Bres_loop2xy: mov [es:di],ax { uloží nainterpolovanou hodnotu do pole } cmp dx,0 jnl @22xy { podmíněný skok predikce dx } add dx,bx { dx = dx + bx (predikce 1) } inc ax { ax = ax + 1 (interpolovaná hodnota) } jmp @32xy @22xy: add dx,cx { dx = dx + cx (predikce 2) } inc ax { ax = ax + 1 (interpolovaná hodnota) } sub di,2 { di = di - 2 (další položka v poli) } @32xy: dec si jnz @Bres_loop2xy @done: end; výheň