{ 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ň