  The \emph{state complexity} of a regular language $L_m$ is the number $m$ of
states in a minimal deterministic finite automaton (DFA) accepting $L_m$. The
state complexity of a regularity-preserving binary operation on regular
languages is defined as the maximal state complexity of the result of the
operation where the two operands range over all languages of state complexities
$\le m$ and $\le n$, respectively. We find a tight upper bound on the state
complexity of the binary operation \emph{overlap assembly} on regular
languages. This operation was introduced by Csuhaj-Varj\'u, Petre, and Vaszil
to model the process of self-assembly of two linear DNA strands into a longer
DNA strand, provided that their ends "overlap". We prove that the state
complexity of the overlap assembly of languages $L_m$ and $L_n$, where $m\ge 2$
and $n\ge1$, is at most $2 (m-1) 3^{n-1} + 2^n$. Moreover, for $m \ge 2$ and $n
\ge 3$ there exist languages $L_m$ and $L_n$ over an alphabet of size $n$ whose
overlap assembly meets the upper bound and this bound cannot be met with
smaller alphabets. Finally, we prove that $m+n$ is a tight upper bound on the
overlap assembly of unary languages, and that there are binary languages whose
overlap assembly has exponential state complexity at least $m(2^{n-1}-2)+2$.
