Initialize the eight working variables SHA256 I have a little confusion in understanding explanation of SHA256 by FIPS

a, b, c, d, e, f, g, h

are being initialized as (this is what i don't understand)


  2 . Initialize the eight working variables, $a,b,c,d,e,f,g,$ and $h$, with the $(i-1)^{st}$ hash value:
  
  $\ \ \ \ a = H_0^{(i-1)}$
   $\ \ \ \ b = H_1^{(i-1)}$
   $\ \ \ \ c = H_2^{(i-1)}$
   $\ \ \ \ d = H_3^{(i-1)}$
   $\ \ \ \ e = H_4^{(i-1)}$
   $\ \ \ \ f = H_5^{(i-1)}$
   $\ \ \ \ g = H_6^{(i-1)}$
   $\ \ \ \ h = H_7^{(i-1)}$  


cause with this, in stage 1 of iteration, variables

a, b, c, d, e, f, g, h

would have (pre-defined) Initial Values of H. But in Calculation Stage of these variables there is no use of next stage Intermediate Hash Values H.


  3 . $For\ t=0\ to\ 63:$
  $\ \ \ \ \{$
  $\ \ \ \ \ \ \ \ T_1=h+\sum_1^{\{256\}}(e)+Ch(e,f,g)+K_t^{\{256\}}+W_t$
  $\ \ \ \ \ \ \ \ T_2=\sum_0^{\{256\}}(a)+Maj(a,b,c)$
  $\ \ \ \ \ \ \ \ h=g$
  $\ \ \ \ \ \ \ \ g=f$
  $\ \ \ \ \ \ \ \ f=e$
  $\ \ \ \ \ \ \ \ e=d+T_1$
  $\ \ \ \ \ \ \ \ d=c$
  $\ \ \ \ \ \ \ \ c=b$
  $\ \ \ \ \ \ \ \ b=a$
  $\ \ \ \ \ \ \ \ a=T_1+T_2$
  $\ \ \ \ \}$


and what I see Intermediate Values are calculated with Variables not the other way around.


  4 . Compute the $i^{th}$ intermediate hashvalue $H^{(i)}$:
  
  $\ \ \ \ H_0^{(i)}=a+H_0^{(i-1)}$
   $\ \ \ \ H_1^{(i)}=b+H_1^{(i-1)}$
   $\ \ \ \ H_2^{(i)}=c+H_2^{(i-1)}$
   $\ \ \ \ H_3^{(i)}=d+H_3^{(i-1)}$
   $\ \ \ \ H_4^{(i)}=e+H_4^{(i-1)}$
   $\ \ \ \ H_5^{(i)}=f+H_5^{(i-1)}$
   $\ \ \ \ H_6^{(i)}=g+H_6^{(i-1)}$
   $\ \ \ \ H_7^{(i)}=h+H_7^{(i-1)}$  


Can you please explain to me how 2. Stage (Initialization) fit in Iteration Process of SHA256.
The variables a, b, c, d, e, f, g, h are assigned on each round of the compression function main loop, but the interim hash values are considered only per message chunk (i.e. after all rounds have completed)

I found the Wikipedia pseudo-code easier to understand than the description in your question, and it is clear there how the variables relate to interim hash values. Note where your reference relates previous hash components $H_0^{(i)}=a+H_0^{(i-1)}$ the pseudocode just assigns h0 = a + h0, because there is no need to keep previous hash values, just a current one which is updated after processing each chunk.

Just before calculating the rounds for the each chunk, both the current H array and a, b, c, d, e, f, g, h hold the same data. This changes during calculation of the rounds, and you need to keep the value of H so it can be added back in at the end of the chunk.

When starting the first message chunk, before any processing rounds, H and a, b, c, d, e, f, g, h hold the "initial values of H" (based on square roots of first 8 primes). You do not use those initial values again.