Home > Articles > Hardware

  • Print
  • + Share This
Like this article? We recommend

Stringing Along

One of the most bizarre parts of the x86 instruction set is the presence of string manipulation instructions. Most modern architectures try to keep the amount of time an instruction takes to complete as deterministic as possible. Not so with the 8086. There are instructions for comparing and copying (null-terminated) strings of bytes, words, and dwords.

Now, the more disruptive members of the audience will likely have realized that this means that these instructions could potentially take a very long time to complete. Because individual instructions are atomic, this gives a very simple denial of service attack against any x86 machine.

Did I say instructions are atomic? Well, on most architectures they are. On x86, however, you can receive and handle an interrupt in the middle of a string manipulation instruction. This, of course, makes them no different from a simple loop, and once again leads one to doubt the sanity of the designers of the instruction set.

  • + Share This
  • 🔖 Save To Your Account