There are no set definitions for "32-bit disassembler" and "64-bit disassembler". The terms are in fact ambiguous.
32-bit and 64-bit just refer to CPU architectures. Specifically to things such as register size and bus size. These can apply to many things.
Specifically, in the case of a disassembler, they can apply to two things:
- The CPU architecture for which the disassembler binary is compiled
- The CPU architecture which the disassembler is capable of disassembling.
Furthermore, there are multiple CPU families which come in both 32- and 64-bit flavours. The most relevant today are Intel & AMD, and ARM.
These are all independent. You could have a disassembler compiled to run on 32-bit Intel machines which is capable of disassembling binaries that are supposed to run on 64-bit ARM processors.
Now in the same CPU, a 64-bit architecture may or may not be an extension of a previous 32-bit architecture. This is the case with Intel.
So a 32-bit binary will typically be able to run on a 32-bit machine or a 64-bit machine, but a 64-bit binary will only be able to run on a 64-bit machine because it will use instructions, registers, addressing modes, etc than the 32-bit machine does not support.
Likewise if you try to disassemble a 64-bit binary using a disassember that is designed only to disassemble 32-bit binaries of the same CPU family, it will only recognize the 32-bit instructions, registers, addressing modes, etc. All of the 64-bit-specific stuff will just confuse the disassembler.
I'm not familiar with either OllyDBG or x64dbg so I don't know what they are capable of.
You seem to be under the impression that a "32 bit disassembler" will somehow convert or translate 64 bit code into 32 bit code. That is not possible. That would be in the realm of cross-compiling and emulation.