"New ISA Prefix Fusion"

By: Adrian (a.delete@this.acm.org), August 17, 2020 5:39 pm
Room: Moderated Discussions
Anon3 (anon3.delete@this.anon3.invalid) on August 17, 2020 5:34 pm wrote:

> The processor cannot know where the instruction boundaries are without decoding from
> the target of a branch and some x86 instructions are one byte thus it's a fundamental
> property of the ISA (without CFI) that you must be able to jump to any address.

On x86 not only it is permitted to jump into the middle of an instruction, but actually this was used very frequently in most commercial MS-DOS programs, for 2 reasons, some times it was used for code obfuscation, to desynchronize the less clever disassemblers, some times it was used because this reduced the code size, e.g. by using a 1-byte load instruction instead of a 2-byte jump (on 8088) or 3-byte jump (on 8080). The load was only 1 byte long because it loaded an immediate value which was then ignored, so this was equivalent to skipping over the next 2 bytes of code.

The first time I have seen this technique used in many Microsoft programs for CP/M on Intel 8080, e.g. in their BASIC interpreter. Later this style of programming was inherited by many of their MS-DOS programs.
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
IBM introduces POWER10Crystal S. Diamond2020/08/16 09:20 PM
  "New ISA Prefix Fusion"QAnon2020/08/16 10:21 PM
    "New ISA Prefix Fusion"Anon32020/08/17 05:59 AM
      "New ISA Prefix Fusion"Kevin G2020/08/17 09:51 AM
        "New ISA Prefix Fusion"Maynard Handley2020/08/17 10:51 AM
          "New ISA Prefix Fusion"Anon32020/08/17 03:10 PM
            "New ISA Prefix Fusion"Maynard Handley2020/08/17 03:34 PM
              "New ISA Prefix Fusion"Anon32020/08/17 04:34 PM
                "New ISA Prefix Fusion"Adrian2020/08/17 05:39 PM
                "New ISA Prefix Fusion"anon22020/08/17 08:24 PM
                  "New ISA Prefix Fusion"Doug S2020/08/17 08:58 PM
                    "New ISA Prefix Fusion"hobold2020/08/18 12:47 AM
                    "New ISA Prefix Fusion"Michael S2020/08/18 03:48 AM
                      "New ISA Prefix Fusion"hobold2020/08/18 10:58 AM
                        "New ISA Prefix Fusion"dmcq2020/08/18 12:00 PM
                          "New ISA Prefix Fusion"Michael S2020/08/18 12:48 PM
                            "New ISA Prefix Fusion"hobold2020/08/18 01:29 PM
                            "New ISA Prefix Fusion"Maynard Handley2020/08/18 02:46 PM
                          "New ISA Prefix Fusion"Maynard Handley2020/08/18 02:42 PM
                            "New ISA Prefix Fusion"anon22020/08/18 06:04 PM
                              "New ISA Prefix Fusion"Maynard Handley2020/08/18 08:17 PM
                                "New ISA Prefix Fusion"dmcq2020/08/19 03:08 AM
                                  "New ISA Prefix Fusion"Maynard Handley2020/08/19 09:02 AM
                                    "New ISA Prefix Fusion"dmcq2020/08/19 10:08 AM
                                      "New ISA Prefix Fusion"Maynard Handley2020/08/19 11:05 AM
                                        "New ISA Prefix Fusion"dmcq2020/08/19 01:14 PM
                                          "New ISA Prefix Fusion"Maynard Handley2020/08/19 01:44 PM
  IBM introduces POWER10Thu2020/08/16 10:56 PM
    IBM introduces POWER10Michael S2020/08/17 01:12 AM
      IBM introduces POWER10Thu2020/08/17 02:27 AM
        IBM introduces POWER10TransientStudent2020/08/17 03:23 AM
          IBM introduces POWER10Rayla2020/08/17 03:29 AM
          IBM introduces POWER10Maynard Handley2020/08/17 09:44 AM
            IBM introduces POWER10Kevin G2020/08/17 09:57 AM
        IBM introduces POWER10Rayla2020/08/17 03:26 AM
          IBM introduces POWER10Thu2020/08/17 04:00 PM
  Matrix Math AcceleratorAdrian2020/08/17 12:01 AM
    Matrix Math AcceleratorMichael S2020/08/17 01:32 AM
      Matrix Math AcceleratorAdrian2020/08/17 01:46 AM
      Matrix Math Acceleratorj2020/08/18 01:32 AM
Reply to this Topic
Body: No Text
How do you spell avocado?