Is real mode limited to 16-bit instructions on the 8086 processor?

  • Thread starter Thread starter Ktx20
  • Start date Start date
  • Tags Tags
    Mode Processor
Click For Summary
SUMMARY

Real mode on the 8086 processor is strictly limited to 16-bit instructions, as confirmed by the Intel 64 and IA-32 Architectures Software Developer's Manuals. However, on the 80386 and later processors, while still in real-address mode, developers can utilize the address-size override prefix (0x67) and operand-size override prefix (0x66) to access 32-bit memory addresses and operate on 32-bit operands. Despite this capability, the address remains constrained to 20 bits, allowing access only up to memory address 0x000FFFFF unless switching to unreal mode.

PREREQUISITES
  • Understanding of x86 architecture and instruction sets
  • Familiarity with real mode and protected mode concepts
  • Knowledge of assembly programming for x86 processors
  • Access to Intel's Software Developer's Manuals
NEXT STEPS
  • Study the Intel 64 and IA-32 Architectures Software Developer's Manuals for in-depth knowledge
  • Learn about the differences between real mode and protected mode in x86 architecture
  • Explore the use of address-size and operand-size override prefixes in assembly programming
  • Investigate the concept of unreal mode and its applications in x86 programming
USEFUL FOR

Assembly language programmers, computer architecture students, and developers working with x86 processors who need to understand real mode limitations and capabilities.

Ktx20
Messages
1
Reaction score
0
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?
 
Computer science news on Phys.org
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:
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 http://www.intel.com/products/processor/manuals/" .

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.
 
Last edited by a moderator:

Similar threads

Replies
3
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
Replies
1
Views
4K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 37 ·
2
Replies
37
Views
7K
  • · Replies 13 ·
Replies
13
Views
4K
  • · Replies 23 ·
Replies
23
Views
5K
Replies
17
Views
5K
  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 8 ·
Replies
8
Views
13K