tikz rectangle nodes fail to align

enter image description here

You made a syntax error when using the positioning library. It is necessary to write below = of...

\documentclass{article}
\usepackage{tikz}

\usetikzlibrary{shapes,arrows, decorations.pathreplacing, positioning}

\tikzstyle{instruction-bits-variable} = [rectangle split,
    rectangle split horizontal,
    draw,
    text centered,
    minimum height=1em]

\begin{document}

\begin{figure}%[H]
\centering
\begin{tikzpicture}[auto]

    \node [instruction-bits-variable,
           rectangle split parts=7,
           label={west:{instr 0:}}] (instr0) {};

    \node [instruction-bits-variable,
           rectangle split parts=8,
           node distance = 2em,
           label={west:{instr 1:}},
           below  =of instr0.west,
           anchor=west] (instr1) {};

\end{tikzpicture}
\caption {Fixed length instructions}
\label {fig:instruction-format-components}
\end {figure}

\end{document}

Slightly shorter code, recent syntax for determining of node style:

\documentclass{report}
\usepackage{tikz}
\usetikzlibrary{arrows, 
                decorations.pathreplacing, positioning,
                shapes,}

\tikzset{instruction-bits-variable/.style = {% <---
            rectangle split, 
            rectangle split horizontal,
            rectangle split parts=#1,        % <---
            draw, align=center, minimum height=1em}
        } 

\begin{document}
    \begin {figure}[ht]
\centering
    \begin{tikzpicture}[
    node distance = 7mm and 4mm % <--- 
                        ]
\node [instruction-bits-variable=7,
       label=west:{instr 0:}] (instr0) {};
\node [instruction-bits-variable=8,
       label=west:{instr 1:},
       below = of instr0.west, anchor=west] (instr1) {};

\end{tikzpicture}
\caption {Fixed length instructions}
\label {fig:instruction-format-components}
    \end {figure}
\end{document}

Result is the same as it is in other answer.