Basic Architecture Ia32 x86
Basic Architecture Ia32 x86
ia32 – x86
Main Features
• CISC, “Backward Compatible”
• Extended 8008, 8080
• 32 bit wordsize
• Little Endian
• Unaligned Memory Access
• Instructions have one memory and one (r/imm)
Operating modes of ia32
• Real address mode
• Protected mode
• System management mode
History
• 8086 – first 16bit micropro.
• 80286 – more addressing modes(obsolete)
• i386 – 32 bit arch, flat addressing model
• i486 – added fpu
• Pentium – performance +++ isa =
• Pentium pro – p6 microarch. (conditional move)
• P2 – p6++
• P3 – sse for vectors
• P4 – sse 2 ( added float cap. In sse)
• P4e – hyperthreading + 64 bit ext
• Core 2 – b2 p6 + multicore
• Core i7 – hyperthreading + multicore
*Eight in
32-bit Architecture
Eg:
MOV AX, BX
XOR AX, DX
ADD AL, BL
Immediate mode
In this type of addressing mode the source operand is a 8 bit or 16 bit data.
Destination operand can never be immediate data.
Eg:
MOV CL, 0A
ADD AL, 45
In this type of addressing mode the effective address is directly given in the
instruction as displacement.
Eg:
Eg:
In this the effective address is sum of base register and index register.
Base register: BX, BP
Index register: SI, DI
The physical memory address is calculated according to the base register.
Eg:
MOV AL, [BP+SI]
MOV AX, [BX+DI]
Indexed mode
Eg:
In this the effective address is the sum of base register and displacement.
Eg:
In this type of addressing mode the effective address is the sum of index
register, base register and displacement.
Eg:
Eg:
MOVS B -> Moves a byte from the source location to the destination
location
MOVS W -> Moves a word (2 bytes) from the source location to the
destination location.
Input/Output mode
IN destination_register, port_number
Eg:
IN AL, 45
OUT 50, AL
Relative mode
JNZ destination
Eg:
Source: https://www.cs.virginia.edu/~evans/cs216/guides/x86.html
eax – program
Data Movement Instructions: counter