exec_next proc pascal near
          local @@i:for_struct
          uses ax,bx      
          
          lea ax,@@i
          push ax
          call fpop             ;read cycle information
          mov bx,@@i.var
          inc variables[bx]     ;increment of cycle variable
          mov ax,variables[bx]  ;get cycle variable
          cmp ax,@@i.target
          jg @@exit             ;end cycle
          lea ax,@@i            ;put back cycle information
          push ax
          call fpush
          mov ax,@@i.loc
          mov _ip,ax            ;start from point followed by NEXT
@@exit:          
          ret
exec_next endp