It has been long known that machine code for Von Neumann architecture machines is too "brittle" to reasonably mimic some life-based dataprocessing.
As a simple example, if you alter a single bit in a machine instruction, you won't necessarily get something useful, you may very well crash the processor or program.
Contrariwise, biological systems are more resilient to alterations. If you change a DNA base from A to C, you will get a protein out which might even be more useful than the unaltered state (it is more likely to have no effect or deleterious effect, but the whole machine doesn't stop). Similarly if you have less of enzyme Q for some reason, things won't crash, they'll just not work as well as they might otherwise.
Very productive work has been done with less fragile "machine code" running on virtual machines, but the last detailed reading I'd done on the subject was from an an ancient Proceedings from the Santa Fe Institute for the study of Complexity so I'm sure the approach has been refined considerably since then.