3 ms·
> assembly language must have an unambiguous bidirectional mapping between the target binary code and the assembly language. This isn’t true for many CPU assem
by pansa2 6y ago
> assembly language must have an unambiguous bidirectional mapping between the target binary code and the assembly language.
This isn’t true for many CPU assembly languages, though. For example, the x86 instruction `add eax, ecx` can be assembled to either `01 c8` or `03 c1`.
> you can still unambiguously recover some sort of assembly which can be used to generate an identical binary output
If your binary contains `01 c8`, information is lost when that’s disassembled to `add eax, ecx` and there’s no guarantee that a newly assembled binary won’t contain `03 c1` in its place.
- kaslai 6y agoHm, yeah I hadn't considered the possibility of the machine itself having aliased instructions. That's some interesting info, thank you.