\documentclass[border=2mm]{standalone}
\usepackage{tikz,fontspec}
\usetikzlibrary{chains, scopes, patterns,
decorations.pathreplacing}
\newfontfamily\HexFont{Noto Sans Mono}
\tikzset{
register color/.code={
\pgfmathparse{
ifthenelse(#1<=7, "blue!10",
ifthenelse(#1<=12,"blue!20",
ifthenelse(#1==13,"yellow!30",
ifthenelse(#1==14,"green!10",
"green!20"
)
)
)
)
}\colorlet{RegColor}{\pgfmathresult}
},
sregister color/.code={
\pgfmathparse{
ifthenelse(#1==0,"green!70",
ifthenelse(or(#1>=1, #1<=3),"red!10",
"red!60"
)
)
}\colorlet{SRegColor}{\pgfmathresult}
},
}
\begin{document}
\begin{tikzpicture}[
start chain = D going below,
node distance = 0mm and 20mm,
font=\sffamily,
N/.style = {draw,
minimum height={height("0xAA BB CC DD")+2pt},
minimum width={width("0xAA BB CC DD")+2pt},
outer sep=0pt, text opacity=1, align=center,
},
N/.default = red!70,
]
\begin{scope}[nodes=on chain=D]
\tikzset{
every node/.append style={
draw,
font=\HexFont,
register color=#1, fill=RegColor
}
}
\foreach \r in {0, 1,...,15}{
\ifnum\r<7
\node[on chain=D, register color={\r}] {0xAA BB CC DD};
\else
\ifnum\r=9
\node[on chain=D, register color={\r}, text=blue] {0xAA FF FF EE};
\else
\node[on chain=D, register color={\r}] {0x00 11 22 33};
\fi
\fi
}
\end{scope}
\node[above] at (D-1.north west) {MSB};
\node[above] at (D-1.north east) {LSB};
\node (A) [N, register color=13, fill=RegColor, fill opacity=0.5, above right=2mm and 8mm of D-14.east]{case A};
\node (B) [N, register color=13, fill=RegColor, fill opacity=0.8, right=5mm of D-14]{case B};
\draw[densely dashed] (D-14.north east) -- (A.north west)
(D-14.south east) -- (B.south west);
\begin{scope}[
nodes=on chain,
start chain = S going below
]
\tikzset{
every node/.append style={
draw,
font=\HexFont,
sregister color=#1, fill=SRegColor
}
}
\node[N, sregister color=0, fill=SRegColor, , below=5mm of D-16] {0x00 00 00 FF};
\node[N, sregister color=1, fill=SRegColor, ] {0x11 11 11 00};
\node[N, sregister color=2, fill=SRegColor, ] {0x22 22 22 00};
\node[N, sregister color=3, fill=SRegColor, ] {0x33 33 33 00};
\node[N, sregister color=4, fill=SRegColor, ] {0x44 44 44 00};
\end{scope}
\end{tikzpicture}
\end{document}