Intuition The one idea behind this whole topic
A computer's brain understands only patterns of on/off switches — bits. x86 is one particular language for turning those bits into commands ("add these two numbers", "copy this to there"), a language that has been growing for 40 years without ever forgetting an old word. Everything on the parent page — registers, hex numbers, addresses, instruction bytes — is just a way of naming groups of these switches , so before we can read the parent page we must first learn what each name means and what picture it stands for.
This page assumes you know nothing except how to count. We build every symbol the parent x86 overview uses, one brick at a time.
A bit is one switch that is either 0 (off) or 1 (on). It is the smallest amount of information a computer can hold.
Picture a light switch on a wall. It has exactly two states. That's a bit. Everything else in this entire subject is just many of these switches lined up in a row.
Intuition Why start here?
Every register, every address, every instruction the parent talks about is literally a row of these switches. If you can picture the switches, you can picture all of x86. Nothing is more fundamental.
When we say a register is "16-bit" or "64-bit", we mean how many switches long the row is . Wider = it can hold bigger numbers and more distinct patterns.
Look at figure s01 again: 8 switches side by side make one byte. The parent's phrase "8086 was 16-bit" simply means its main storage rows were 16 switches long (2 bytes). "64-bit" means 64 switches long (8 bytes).
width n
patterns 2 n
biggest value
8 (byte)
256
255
16
65 536
65 535
20
1 048 576 (1 MB)
1 048 575
32
~4.3 billion
~4.3 billion − 1
64
~1.8 × 1 0 19
huge
Intuition Why 20 bits will matter
Notice 2 20 = 1 048 576 = 1 MB . When the parent says the 8086 "wanted a 20-bit / 1 MB address space", it is asking for a switch-row 20 long . Keep this row-length idea; the whole segmentation story is about it not fitting in a 16-long row.
Intuition Why we don't write bits directly
Writing 1122334455667788 as 64 individual 0s and 1s is 64 characters of eye-strain. Humans need a shorter way to name a group of switches. That shortcut is hexadecimal .
Definition Hexadecimal (hex)
A way of writing numbers using 16 digits : 0 1 2 3 4 5 6 7 8 9 A B C D E F, where A=10, B=11, … F=15. We flag it with the prefix 0x. So 0x1F means "the hex number 1F", not the decimal 1 followed by F.
0x1000 as switches
0x1000 has 4 hex digits = 4 × 4 = 16 bits. The digit 1 is 0001, each 0 is 0000:
0x1000 = 1 0001 0 0000 0 0000 0 0000
In plain decimal that switch pattern equals 4096 . This is the same number named three ways — hex, bits, decimal.
Intuition Why we need a "shift"
The parent's headline formula multiplies a segment "×16". We need to see that this isn't real multiplication — it's sliding the switches over . Understanding this removes the "×16 is expensive" myth completely.
≪ k
The notation x ≪ k means "take the row of switches x and slide every switch k places to the left , filling the freed right-hand slots with 0s." The symbol ≪ literally looks like arrows pointing left.
0 x 1000 ≪ 4
Sliding 0001 0000 0000 0000 left by 4 and padding with a zero digit gives 0x10000 (a 20-bit row). We just turned a 16-bit number into the top of a 20-bit number — exactly the segmentation trick, seen as pure sliding.
A register is one fixed switch-row that lives inside the CPU chip itself, with a name (like RAX) instead of an address. Because it's on the chip, the maths unit reads and writes it faster than anything else.
Picture a labelled box holding 64 switches. The parent's whole table (RAX/EAX/AX/AL) is describing one such box that you're allowed to peek at using different window-sizes:
AL = the lowest 8 switches,
AX = the lowest 16 ,
EAX = the lowest 32 ,
RAX = all 64 .
Intuition Nesting = the fossil record
No data ever moves when you read AL instead of RAX — you just look through a smaller window onto the same row. Each bigger name was added in a later x86 generation by widening the box , which is why they nest. This is exactly the parent's "one register, four names" picture. See more in Registers and the Register File .
Definition Memory address
Main memory is a huge line of numbered byte-boxes. An address is just the number of one box — "go to box #4096".
Definition Segment and Offset
Offset = how far into a chosen region you are (a 16-bit row on the 8086).
Segment = which region you started from (also 16-bit).
The 8086 combined these two 16-bit rows to reach a 20-bit address it couldn't otherwise name — the topic of Memory Addressing Modes and the parent's segmentation section.
Now every symbol in the parent's key formula is defined:
PhysAddr = ( Segment ≪ 4 ) + Offset
Read it as: slide the segment-row 4 places left (×16), then add the offset-row. Both pieces are 16 switches; the shift lifts one to fill the top of a 20-switch address. Nothing here is mysterious anymore.
An instruction is one command for the CPU, stored in memory as a short run of bytes.
The opcode is the byte(s) that say what to do — the verb, like "ADD" or "MOV" (move/copy). The other bytes (prefixes, operands, constants) say to what .
Intuition Why x86 instructions vary in length
Because a command includes its constants inside itself, a big constant makes a longer instruction. So instructions run from 1 up to 15 bytes. A row of variable length is harder to chop apart than a row of fixed length — that difference is the whole RISC vs CISC argument, and it feeds the Fetch-Decode-Execute Cycle and Micro-operations (µops) the parent mentions. You now have every word needed to read those sections.
Left shift = times 2 to the k
Instruction and Opcode bytes
x86 architecture overview
Each foundation flows into the parent x86 overview ; nothing there uses a brick we haven't laid here. Contrast with ARM Architecture once you've mastered these.
Cover the right side and test yourself. If any line surprises you, reread its section.
What is a bit? One switch that is either 0 (off) or 1 (on).
How many bits in a byte? 8 bits.
How many distinct patterns fit in n bits? 2 n .
Why does hardware want a 20-bit address for 1 MB? Because 2 20 = 1 048 576 = 1 MB , so 20 switches can name every byte.
How many bits does one hex digit stand for? 4 bits (one nibble), since 2 4 = 16 .
Write 0 x 1000 as a decimal number. 4096 .
What does x ≪ 4 do, and what does it equal? Slides the switches 4 places left; equals x × 16 .
Is "Segment × 16" a runtime multiply? No — it is a left shift by 4 bits, done by wiring, essentially free.
What is a register? A named switch-row inside the CPU, the fastest storage the maths unit can reach.
What is AL compared to RAX? The lowest 8 bits (a small window) onto the same 64-bit register.
What is an opcode? The byte(s) saying what an instruction does — its verb.
Why do x86 instructions vary from 1 to 15 bytes? Because constants are stored inside the instruction, so bigger constants make it longer.