"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
Name:
Email:
Topic:
Body: No Text
How do you spell avocado?