Add Immediate

Edit and compile if you like:
\documentclass[border=3pt]{standalone}
%%Fonts
%\usepackage{fontspec}
%\setmainfont[Mapping=tex-text]{JetBrains Mono}
% Tikz
\usepackage{tikz}
\usetikzlibrary{calc}
% Sizes
\def\cellheight{30pt}
\def\fieldlinewidth{0.7pt}
\pgfmathsetlengthmacro{\scalefactor}{4pt}
% Tikz Set
\tikzset{
instr_field/.style={
draw,
rectangle,
line width = \fieldlinewidth,
minimum height = \cellheight,
},
byte_values/.style={above, font=\tiny},
bytes/.style={above, font=\scriptsize},
every text node part/.style={align=center}
}
% Instruction Fields
\def\fields{
cond/31/28/-1,
op/27/26/00,
I/25/25/1,
cmd/24/21/0100,
S/20/20/-1,
Rn/19/16/-1,
Rd/15/12/-1,
rot/11/8/0000,
imm8/7/0/-1
}
\begin{document}
\begin{tikzpicture}
% Widths
\foreach \field/\high/\low in \fields {
\pgfmathsetmacro{\width}{(\high-\low + 1) * \scalefactor}
\expandafter\xdef\csname \field w\endcsname{\width mm}
}
% Instruction Fields
\foreach \field/\high/\low/\value [count=\i from 0] in \fields {
\ifnum\i=0
\node[
instr_field,
anchor=west,
minimum width=\csname\field w\endcsname] (tmp\i) {\field};
\else
\pgfmathsetmacro{\prev}{int(\i-1)}
\node[
instr_field,
anchor=west,
minimum width=\csname\field w\endcsname] (tmp\i) at ($(tmp\prev.east)-(\fieldlinewidth,0)$) {\field};
\fi
\ifnum\high=\low
\node[bytes] at (tmp\i.north) {\high};
\else
\node[bytes] at (tmp\i.north) {\high:\low};
\fi
\ifnum\value=-1\else
\node[byte_values] at (tmp\i.south) {\value};
\fi
}
% Name
% \node[anchor=east, xshift=-40pt] at (tmp0) {ADD(S)-I};
\end{tikzpicture}
\end{document}
Add Register

Edit and compile if you like:
\documentclass[border=3pt]{standalone}
%%Fonts
%\usepackage{fontspec}
%\setmainfont[Mapping=tex-text]{JetBrains Mono}
% Tikz
\usepackage{tikz}
\usetikzlibrary{calc}
% Sizes
\def\cellheight{30pt}
\def\fieldlinewidth{0.7pt}
\pgfmathsetlengthmacro{\scalefactor}{4pt}
% Tikz Set
\tikzset{
instr_field/.style={
draw,
rectangle,
line width = \fieldlinewidth,
minimum height = \cellheight,
},
byte_values/.style={above, font=\tiny},
bytes/.style={above, font=\scriptsize},
every text node part/.style={align=center}
}
% Instruction Fields
\def\fields{
cond/31/28/-1,
op/27/26/00,
I/25/25/0,
cmd/24/21/0100,
S/20/20/-1,
Rn/19/16/-1,
Rd/15/12/-1,
shamt5/11/7/00000,
sh/6/5/00,
0/4/4/-1,
Rm/3/0/-1
}
\begin{document}
\begin{tikzpicture}
% Widths
\foreach \field/\high/\low in \fields {
\pgfmathsetmacro{\width}{(\high-\low + 1) * \scalefactor}
\expandafter\xdef\csname \field w\endcsname{\width mm}
}
% Instruction Fields
\foreach \field/\high/\low/\value [count=\i from 0] in \fields {
\ifnum\i=0
\node[
instr_field,
anchor=west,
minimum width=\csname\field w\endcsname] (tmp\i) {\field};
\else
\pgfmathsetmacro{\prev}{int(\i-1)}
\node[
instr_field,
anchor=west,
minimum width=\csname\field w\endcsname] (tmp\i) at ($(tmp\prev.east)-(\fieldlinewidth,0)$) {\field};
\fi
\ifnum\high=\low
\node[bytes] at (tmp\i.north) {\high};
\else
\node[bytes] at (tmp\i.north) {\high:\low};
\fi
\ifnum\value=-1\else
\node[byte_values] at (tmp\i.south) {\value};
\fi
}
% Name
% \node[anchor=east, xshift=-40pt] at (tmp0) {ADD(S)-R};
\end{tikzpicture}
\end{document}
Load Register

Edit and compile if you like:
\documentclass[border=3pt]{standalone}
%%Fonts
%\usepackage{fontspec}
%\setmainfont[Mapping=tex-text]{JetBrains Mono}
% Tikz
\usepackage{tikz}
\usetikzlibrary{calc}
% Sizes
\def\cellheight{30pt}
\def\fieldlinewidth{0.7pt}
\pgfmathsetlengthmacro{\scalefactor}{4pt}
% Tikz Set
\tikzset{
instr_field/.style={
draw,
rectangle,
line width = \fieldlinewidth,
minimum height = \cellheight,
},
byte_values/.style={above, font=\tiny},
bytes/.style={above, font=\scriptsize},
every text node part/.style={align=center}
}
% Instruction Fields
\def\fields{
cond/31/28/-1,
op/27/26/01,
Ī/25/25/0,
P/24/24/1,
U/23/23/-1,
B/22/22/0,
W/21/21/0,
L/20/20/1,
Rn/19/16/-1,
Rd/15/12/-1,
imm12/11/0/-1
}
\begin{document}
\begin{tikzpicture}
% Widths
\foreach \field/\high/\low in \fields {
\pgfmathsetmacro{\width}{(\high-\low + 1) * \scalefactor}
\expandafter\xdef\csname \field w\endcsname{\width mm}
}
% Instruction Fields
\foreach \field/\high/\low/\value [count=\i from 0] in \fields {
\ifnum\i=0
\node[
instr_field,
anchor=west,
minimum width=\csname\field w\endcsname] (tmp\i) {\field};
\else
\pgfmathsetmacro{\prev}{int(\i-1)}
\node[
instr_field,
anchor=west,
minimum width=\csname\field w\endcsname] (tmp\i) at ($(tmp\prev.east)-(\fieldlinewidth,0)$) {\field};
\fi
\ifnum\high=\low
\node[bytes] at (tmp\i.north) {\high};
\else
\node[bytes] at (tmp\i.north) {\high:\low};
\fi
\ifnum\value=-1\else
\node[byte_values] at (tmp\i.south) {\value};
\fi
}
% Name
% \node[anchor=east, xshift=-40pt] at (tmp0) {LDR};
\end{tikzpicture}
\end{document}
Branch and Link

Edit and compile if you like:
\documentclass[border=3pt]{standalone}
%%Fonts
%\usepackage{fontspec}
%\setmainfont[Mapping=tex-text]{JetBrains Mono}
% Tikz
\usepackage{tikz}
\usetikzlibrary{calc}
% Sizes
\def\cellheight{30pt}
\def\fieldlinewidth{0.7pt}
\pgfmathsetlengthmacro{\scalefactor}{4pt}
% Tikz Set
\tikzset{
instr_field/.style={
draw,
rectangle,
line width = \fieldlinewidth,
minimum height = \cellheight,
},
byte_values/.style={above, font=\tiny},
bytes/.style={above, font=\scriptsize},
every text node part/.style={align=center}
}
% Instruction Fields
\def\fields{
cond/31/28/-1,
op/27/26/10,
1L/25/24/11,
imm24/23/0/-1
}
\begin{document}
\begin{tikzpicture}
% Widths
\foreach \field/\high/\low in \fields {
\pgfmathsetmacro{\width}{(\high-\low + 1) * \scalefactor}
\expandafter\xdef\csname \field w\endcsname{\width mm}
}
% Instruction Fields
\foreach \field/\high/\low/\value [count=\i from 0] in \fields {
\ifnum\i=0
\node[
instr_field,
anchor=west,
minimum width=\csname\field w\endcsname] (tmp\i) {\field};
\else
\pgfmathsetmacro{\prev}{int(\i-1)}
\node[
instr_field,
anchor=west,
minimum width=\csname\field w\endcsname] (tmp\i) at ($(tmp\prev.east)-(\fieldlinewidth,0)$) {\field};
\fi
\ifnum\high=\low
\node[bytes] at (tmp\i.north) {\high};
\else
\node[bytes] at (tmp\i.north) {\high:\low};
\fi
\ifnum\value=-1\else
\node[byte_values] at (tmp\i.south) {\value};
\fi
}
% Name
% \node[anchor=east, xshift=-40pt] at (tmp0) {B};
\end{tikzpicture}
\end{document}