In my book "Jezici za gimnazijalce" (not available online) and in my Bachelor thesis (which will be online in about a month) I was claiming that assembly languages are like the Piraha language in that both of them don't support linguistic recursion.
However, I can't help but notice that some assembly languages do indeed support linguistic recursion. WebAssembly Text Format is usually considered an assembly language, but it is written in S-expressions. If it's written in S-expressions, it obviously supports linguistic recursion. However, one can easily argue that WebAssembly Text Format is not a real assembly language.
PicoBlaze assembly language doesn't support linguistic recursion, I can be certain of that because I made an assembler for PicoBlaze for my Bachelor thesis. I added the support for arithmetic expressions in constants and some other things, but that's still not real linguistic recursion because arithmetic expressions in constants don't allow one to embed one directive into another (load (load s0, s1), s2 is invalid assembly directive, and so is any similar one).
However, I am not sure about x86 assembly. Does it have some directive that expect another directive as an operand? My Arithmetic Expression Compiler, which outputs x86 assembly, doesn't output any such directive, but that doesn't mean there aren't such directives in x86 assembly.