3 ms·
Author here. Thanks for the link! I added the "x86 Is an Octal Machine" link, quoting your comment, in the end of my "encoding resources" post here: https://blo
by kenanb 3y ago
Author here. Thanks for the link! I added the "x86 Is an Octal Machine" link, quoting your comment, in the end of my "encoding resources" post here: https://blog.kenanb.com/code/low-level/2024/01/07/x86-insn-encoding-resources.html https://blog.kenanb.com/code/low-level/2024/01/07/x86-insn-e...
I have also been referencing that document since I started writing on the topic: https://blog.kenanb.com/code/low-level/2024/01/04/x86-insn-encoding.html#octal-system https://blog.kenanb.com/code/low-level/2024/01/04/x86-insn-e...
It really helps reasoning about the encoding, but as you pointed out, x64 extension makes it challenging. I basically end up switching between octal and hex, depending on the byte, during the process.
- toast0 3y agoI suspect it's similar to the 6502, picking the right arrangement and grouping of bits will make the patterns more apparent. The 6502 has a much more limited set of instructions, but here's an example of changing the arrangement [1]. [1] https://www.nesdev.org/wiki/CPU_unofficial_opcodes https://www.nesdev.org/wiki/CPU_unofficial_opcodes
- ithkuil 3y agoThe pdp-11 was also an "octal machine" and it was clear from all the documentation that it was. When did the switch to hex happen?
- kenanb 3y agoAnother note on this topic that in hindsight, should have been obvious, but it got me confused at the time: Just trying to dump the whole (or large parts of the) instruction in octal will make things much more confusing. That's not what's meant by the "x86 is an octal machine" statement. It is only individual bytes, and only certain bytes, of the instruction the should be "separately" printed in octal, to make certain patterns easier to read. If you try to print a group of bytes in octal at once, irrelevant information from adjacent byte will be bundled into a single octal digit.