anchor.diff:    if Compare(v3, One) = 0 then
       Error(ecNoInverse);
     // Remember odd/even iterations
  -  iter := 1;
  -  // Step 2. Loop while v3 <> 0
  +  iter := 0;
  +  // Step X2. Loop while v3 <> 0
     while not v3.IsZero do
     begin
  -    // Step 3. Divide and Subtract
  +    // Step X3. Divide and Subtract
       DivMod(u3, v3, q, t3);
       t1 := Add(u1, BigInteger.Multiply(q, v1));
       // Swap
  
positive.code:     class operator Modulus(const Left: BigInteger; Right: UInt16): BigInteger; inline;
  
      /// <summary>Unary minus. Negates the value of the specified BigInteger.</summary>
      class operator Negative(const Value: BigInteger): BigInteger; inline;
  
  {$IFDEF BIGINTEGERIMMUTABLE}
    private
  
negative.code:        MOV     EBX,EDX
         INC     R11D
         CMP     R11D,R10D
         JB      @MultLoop
  @SkipMult:
         MOV     [R9 + CLimbSize*R11],EDX
         POP     RDX                      // POP Extra
         MOVZX   EDX,DX
         XOR     EBX,EBX
  @AddLoop:
         ADC     [R9 + CLimbSize*RBX],EDX
         JNC     @Exit
         MOV     EDX,0                    //
         INC     EBX                      // These 3 instructions should not modify the carry flag!
         DEC     R10D                     //
         JNE     @AddLoop
  @Exit:
  end;
  {$IFEND}
  
  