You are on page 1of 6

Lch s b x l Intel

Intel 8080 (1972)

Chng 3 Kin trc 8086

64K addressable RAM 8-bit registers CP/M operating system 5,6,8,10 MHz

Intel 8086/8088 (1978)

my first IBM-PC used 8088 1 MB addressable RAM 16-bit registers 16-bit data bus (8-bit for 8088) separate floating-point unit (8087) used in low-cost microcontrollers now

computer (1986)

IBM - AT
Intel 80286 (1982)
16 MB addressable RAM Protected memory several times faster than 8086 introduced IDE bus architecture 80287 floating point unit Up to 20MHz 134K transistors

Intel IA 32 Family
Intel386 (1985)
4 GB addressable RAM 32-bit registers paging (virtual memory) Up to 33MHz

Intel486 (1989)
instruction pipelining Integrated FPU 8K cache

Pentium (1993)
Superscalar (two parallel pipelines)

Intel P6 Family
Pentium Pro (1995)
advanced optimization techniques in microcode More pipeline stages On-board L2 cache

3.1 Cu trc chung ca 80x86


Hnh nh 80x86

Pentium II (1997)
MMX (multimedia) instruction set Up to 450MHz

Pentium III (1999)


SIMD (streaming extensions) instructions (SSE) Up to 1+GHz 8086

Pentium 4 (2000)
NetBurst micro-architecture, tuned for multimedia 3.8+GHz

Pentium D (2005, Dual core)

3.2 Cu trc thanh ghi ca 8086


Pentium

Thanh ghi L cc phn t c kh nng lu tr thng tin vi dung lng 8, 16 , 32, 64 bit. c xy dng t cc FlipFlop nn c tc truy xut rt nhanh.
S chn 8086

Phn loi thanh ghi:


- Thanh ghi a nng (Multi-purposed registers) : AX, BX, CX, DX - Thanh ghi on (segment registers): CS, DS, SS, ES. - Thanh ghi con tr v ch s (pointer and index registers): IP, BP, SP, SI, DI - Thanh ghi c (flag register): thanh ghi 16 bit c cc c iu khin

Thanh ghi a nng


Cu trc thanh ghi AX
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

AX ngoi chc nng lu tr d liu, n cn c CPU dng trong php ton s hc nh nhn, chia. AX l tha s (nhn) hoc AX l s b chia (chia)

Th d nu AX=1234h th AH=12H AL=34h

AH

AL

Thanh ghi AX (Accumulator register) : thanh ghi tch lu, di 16 bit nhng n cng c th chia lm 2 thanh ghi 8 bit AH v AL. Cc thanh ghi AH, AL c th s dng c lp cha d liu

Cu trc thanh ghi BX


15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Cu trc thanh ghi CX


15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

CH BH BL

CL

Thanh ghi BX (Base register) : di 16 bit nhng n cng c th chia lm 2 thanh ghi 8 bit BH v BL BX thng c dng cha cc a ch c s

CX (Counter register) : thanh ghi ny dng lm b m trong cc vng l p. Cc lnh t ng lp li v sau mi ln lp gi tr ca CX t ng gim i 1. CL thng cha s ln dch, quay trong cc lnh dch, quay thanh ghi

Cu trc thanh ghi DX


15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

DH

DL

Thanh ghi DX : thanh ghi d liu, DX thng c cha a ch offset ca xu k t khi c thao tc nhp vo xu k t hoc in xu k t . DX (cng vi AX) cn tham gia ch a kt qu ca php nhn cc s 16 bit ho c lm s b chia cho php chia 16 bit. Ngoi ra, DX cn dng cha a ch cc cng vo ra trong trng hp thc hin cc lnh IN/OUT

Thanh ghi DX (Data register) : di 16 bit nhng n cng c th chia lm 2 thanh ghi 8 bit DH v DL

Thanh ghi on (segment registers)


CPU c 4 thanh ghi on (segment) di 16 bit, cc thanh ghi ny khng th chia lm 2 thanh ghi 8 bit nh 4 thanh ghi AX, BX, CX v DX. Cc thanh ghi on c s dng nh l a ch c s ca cc lnh trong chng tr nh, stack v d liu. 4 thanh ghi on : CS (Code Segment), DS (Data Segment), SS (Stack Segment) v ES (Extra Segment). CS : cha a ch bt u ca code trong chng tr nh. DS : cha a ch ca cc bin khai bo trong chng tr nh. SS : cha a ch ca b nh Stack dng trong chng tr nh ES : cha a ch c s b sung cho cc bin b nh.

3 trong 4 thanh ghi on c dng trong cc mc ch c bit sau CS : xc nh on lnh ni cha chng trnh c thi hnh. DS : xc nh on d liu ni cha chng trnh c thi hnh. SS : xc nh on stack vng lm vic tm thi dng theo di cc tham s v cc a ch ang c chng trnh hin hnh s dng. Cn thanh ghi ES : tr n on thm, thng c dng b sung cho on d liu c vng nh >64k cho oan d liu.

Thanh ghi con tr v ch s


L cc thanh ghi 16 bit Chng thng c lu a ch lnh (offset) v kt hp vi thanh ghi on tng ng to thnh cp thanh ghi cha a ch xc nh ca m lnh, mc d liu, hoc d liu trong stack. Nh vo thanh ghi ny ngi ta c th tnh a ch vt l.

Thanh ghi con tr lnh IP (Instruction Pointer): tr vo lnh k tip s c thc hin nm trong on m do con tr CS tr ti. a ch y ca lnh: CS:IP Thanh ghi con tr ngn sp SP (Stack Pointer): tr vo nh hin thi ngn sp nm trong on ngn sp SS. a ch y l SS:SP Thanh ghi ch s ngun SI (Source Index): tr vo mt mc d liu trong on DS. a ch y ca mc d liu: DS:SI Thanh ghi ch s ch DI (Destination Index): tr vo mt mc d liu trong on DS. a ch y l DS:DI

Thanh ghi c

C PF (Parity flag): c chn l, PF=1khi tng s cc bit 1 trong kt qu php tnh l mt s chn. C AF (Auxiliary flag): c nh ph AF =1 khi c nh t bit th 4 sang bit th 5 hoc c mn t bit 5 sang bit 4 trong bi u din BCD ca mt s C ZF (Zero flag): ZF=1 khi k t qu tnh ton bng 0 C SF (Sign Flag): c du SF=1 khi kt qu tnh ton l mt s m C TF (Trap Flag): C by TF=1 khi CPU ang lm vic ch chy tng lnh. Ch ny s dng khi g ri (debug) chng trnh. C IF (Interrupt enable Flag): c cho php ngt IF=1, cho php tc ng n yu cu ngt che c (maskable Interrupts) C DF (Direction Flag): c hng DF=1 khi CPU x l chui k t theo th t t phi sang tri C OF (Overflow Flag): c trn OF=1 khi kt qu l mt s b 2 vt ra ngoi gii hn biu din dnh cho n.

Thanh ghi c lu trng thi ca CPU ti mi thi im. Cu trc ca thanh ghi c nh hnh v. Cc bit c nh du x l cc c cha dng n.

C CF (carry flag): c CF =1 khi c nh hoc tr c mn t bit c trng s cao nht. Ngoi ra, c CF=1 trong trng hp khi thao tc vi file hoc th mc gy ra li nh li to, xa file v th mc.

Thanh ghi 32 bit


Vi mt s CPU i mi, c cc thanh ghi di 32, 64 bit. Ta ghi thm ch E trc cc thanh ghi 16 bit V d: EAX, EBX, ECX, EDX

Ch hot ng 80x86
Cc ch hot ng - Real address mode: native MS-DOS - Protected mode: + native mode (windows, Linux), separate memory + Virtual 8086 mode: mi chng trnh u c my 8086 o

Qun l a ch 8086
CPU 8086 c 16 bit, do vy ch qun l c 64K b nh. PC 8086 c 1MB b nh (20 bit) Dng phng php phn on b nh thanh ghi 16 bit c th qun l 1MB b nh B nh 1MB c chia lm cc on (segment) 64KB

a ch vt l & lun l
a ch dng trong thit k cc mch gii m a ch cho b nh v xut nhp Trong lp trnh, a ch vt l khng dng c m c thay bng a ch lun l

a ch lun l
a ch ca mt nh c xc nh bi 2 phn: a ch trong Segment : offset on
a ch on V d: B001:1234

S hnh thnh a ch
Mi a ch nh c hnh thnh t mt php tnh tng t 1 a ch c s v 1 a ch offset a ch c s lu trong thanh ghi segment, a ch offset nm trong thanh ghi ch s hay con tr Php cng ny to ra a ch 20 bit

Mi thnh phn l mt s 16 bit

15

Minh ha
ach ch Offset a Offset

Cch tnh a ch vt l t a ch lun l


a ch vt l = (segment*16) + offset Segment 0 + offset

15
ach ch segment a segment

0
0000

a ch vt l

19

cng
ach ch v l20 20bit bit a v ttl

Ex : tnh a ch vt l tng ng a ch lun l B001:1234 a ch vt l = B0010h + 1234h = B1244h

M hnh ha a ch
Trong mi on, nh u tin c offset l 0000h v nh cui cng l FFFFh. B nh
offset

Mi nh ch c mt a ch vt l nhng c th c nhiu a ch lun l (ti sao?)


Ex : 1234:1234 u c chung a ch vt l 13574h

0000

1334:0234 1304:0534

nh c a ch segment: offset

64KB FFFF

hiu r ti sao ta hy xt mi quan h gia a ch vt l vi segment v offset 00000h 0000: 0001: 0002:
Phn chng chp ca 3 segment 0000,0001,0002 00010h 00020h

Tng kt
Hiu c cu trc thanh ghi ca 8086 Nm c a ch vt l, a ch lun l, cch tnh a ch vt l t a ch lun l

0FFFFh 1000Fh 1001Fh

You might also like