Processor 8086 and real mode

  1. Hello
    Does anyone know if its true that all software running in real mode must use only 16-bit instructions? is there an authorised sourcet that can aprove od deny it?
  2. jcsd
  3. rcgldr

    rcgldr 7,408
    Homework Helper

    A true 8086 doesn't have 32 bit mode, but you asked about software running in real mode. On a 80386 or any later 32 bit cpu, I'm wondering what happens when a operand size prefix (66 hex) and/or effective address size prefix (67 hex) is used on an instruction in real mode?
    Last edited: Jun 29, 2011
  4. No. While in real-address mode on the 80386 and up, software may use the address-size override prefix (0x67) and/or the operand-size override prefix (0x66) to access 32-bit memory addresses and/or operate on 32-bit operands, respectively.

    However, please note that, when using the address-size override prefix in real-address mode, the address is still limited to 20 bits (i.e., you can only access up to memory address 0x000FFFFF). That is, unless you switch to unreal mode...

    My source? Volume 1: Basic Architecture of the Intel 64 And IA-32 Architectures Software Developer's Manuals. How is that for an authorized source? Straight from the horse's mouth, so to speak, eh?

    And, Ktx20, if you are going to be programming in assembly for x86 processors, you should REALLY get familiar with the manuals from Intel.

    There might be "educational" books out there, but Intel's PDFs were what I used to learn about the x86 architecture and how to program for it.
Know someone interested in this topic? Share a link to this question via email, Google+, Twitter, or Facebook

Have something to add?
Similar discussions for: Processor 8086 and real mode