• any of em are fine

opinions of varying quality. fishcat with five hammers, not afraid to use them. made out of meat, but no nutritional value.


"disassembly" is a procedure by which you can turn an unambiguous sequence of bytes that have one interpretation into a mushy structure that takes extra work to figure out how to execute. i do not like the wrinkle of being able to disassemble 3300 into (xor, eax, [rax]) because that representation also suggests your disassembler could one day say (xor, [rax], [rax]). but that will never happen! so you develop checks and edge cases for things that were literally impossible without this mushy intermediate representation.

i don't know what to do with this and i'm not sure if it's actually better for anyone if the computer could inline the exact logic to handle some decoded instruction and not a word more. maybe the explosion in generated code is worse overall. buh.


You must log in to comment.

in reply to @iximeow's post:

"unambiguous" seems a bit optimistic.

but i like the idea... i've had a similar thought that a disassembler could return a mnemonic id and a "shape" structure with just enough information for getter functions to quickly extract the actual operands from the original bytes. no idea if it's a good idea, but it may have potential as a way to confuse (or gain an 'unfair' advantage in) benchmarks