Professional Documents
Culture Documents
Cc thanh ghi trong b vi x l 8086 u l cc thanh ghi 16 bit v c chia thnh cc nhm nh sau: - Cc thanh ghi cng dng chung AX (accumulator), BX (base), CX (counter), DX (data): c th c truy xut c lp nh 2 thanh ghi 8 bit : AH v AL, BH v BL, CH v CL, DH v DL.
Cc thanh ghi con tr v ch mc (xem chi tit cc phn sau) SP (Stack Pointer), BP (Base Pointer): con tr dng khi lm vic vi stack SI (Source Index), DI (Destination Index): ch s mng khi x l mng (chui) - Cc thanh ghi phn on CS (Code Segment), DS (Data Segment), ES (Extra data Segment), SS (Stack Segment): tng ng lu a ch phn on m lnh, phn on d liu, phn on d liu b sung, phn on ngn xp. a ch phn on ny s c kt hp vi a ch offset truy xut nh. (xem chi tit cc phn sau) - Cc thanh ghi con tr lnh v trng thi IP (Intruction Pointer): thanh ghi cha a ch offset ca lnh k tip cn thc hin. Thanh ghi ny khng th c truy xut trc tip. FLAGS: thanh ghi c trng thi, dng cha cc bit m t trng thi ca lnh va c thc hin, hoc cha cc bit iu khin cn thit lp trc khi gi lnh. Bao gm cc bit c sau y: (xem chi tit cc phn sau)
CF (Carry Flag): PF (Parrity Flag): AF (Auxilary Flag): ZF (Zero Flag): SF (Sign Flag): TF (Trace Flag): IF (Interrupt Flag): DF (Direction Flag): OF (Overflow Flag):
bt khi php tnh va thc hin c s dng bit nh bt khi kt qu ca php tnh va thc hin c chn bit 1 bt khi php tnh va thc hin c s dng bit nh ph bt khi kt qu ca php tnh va thc hin l 0 bt khi kt qu ca php tnh va thc hin c bit du bt bt chuyn sang ch chy tng bc bt cho php cc ngt xy ra bt chn ch gim ch s t ng khi lm vic vi mng bt khi php tnh va thc hin gy ra trn s
a ch logic
Cc thanh ghi trong 8086 u l 16 bit. Nu dng cc thanh ghi ny lu tr a ch 20bit th khng tin li. Ngi ta tm cch gim s bit dng nh a ch xung cn 16bit. tng c s dng l: thng thng, cc d liu m mt chng trnh cn truy cp nm gn nhau v to thnh mt khi khng ln lm; nh vy, nu ta nh a ch tng i (gi l offset) trong mt khi th s lng bit dng nh a ch s gim xung. B nh c chia thnh cc khi 64KB, gi l segment, cc khi ny khng xp tun t cnh nhau m xp gi u, vi khong cch 16byte. Ngha l, c 16 byte th li bt u mt segment mi. Nh vy, s lng segment trong 1MB b nh l 1MB / 16byte = 65536 = 2^16. Do , nh a ch segment ta cng cn 16 bit. Trong phm vi mt segment 64KB (=65536 byte), ch cn dng 16 bit lm a ch offset xc nh mt nh. (Xem Hnh 1. T chc b nh kiu segment - offset) Tm li, trong cch nh a ch logic, mi nh c a ch l mt cp (segment:offset), tng cng 32bit. Tuy nhin, nh ni trn, cc d liu c lin quan trong b nh thng gn nhau trong mt khi segment nn ta c th khng cn xc nh tng minh a ch segment m ch cn ngm hiu. Khi bt u lm vic vi mt segment no th ta s dng mt thanh ghi ghi li a ch segment . Thanh ghi ny s c dng chung cho tt c cc php truy xut b nh tip theo. V nh th, trong cc php truy xut b nh tip theo, ch cn dng thm 16 bit a ch offset l xc nh v tr mt nh. Nu a ch gm c hai phn segment:offset, ngi ta gi l a ch xa. Nu a ch ch c offset cn segment ngm nh th ngi ta gi l a ch gn, hm l n xc nh mt nh ch trong phm vi ca segment ngm nh m thi.
Physical address
RAM
16 bytes
0000Fh 00010h 00011h .. 0001Fh 00020h .. 0FFFFh 10000h .. 1000Fh 10010h .. 1001Fh 10020h .. F0000h .. F000Fh F0010h .. FFFF0h .. FFFFFh
16 bytes
Segment 0001
0000h:0020h 0001h:0010h 0002h:0000h V mi nh c th thuc nhiu segment khc nhau, mt a ch vt l 00020h c th ng vi nhiu a ch logic khc nhau, ty vo vic la chn segment.
Segment 0002
Segment F000h
Segment F001h
Mt chng trnh khi c np vo b nh thc hin thng thng chim 3 phn on. Mt phn on dnh cho m lnh (code segment), mt phn on dnh cho d liu (data segment), v mt phn on ngn xp (stack segment) dnh lu cc gi tr trung gian hoc cc a ch tr v dng khi gi hm. a ch ca 3 phn on tng ng c np vo 3 thanh ghi CS, DS, SS. Thanh ghi IP cha a ch offset ca lnh sp c thc hin. Nh vy, cp CS:IP s cho bit a ch logic ca lnh. Thanh ghi SP cha a ch offset ca nh cui cng c lu vo stack. Cc php truy xut n phn on ngn xp s dng cp SS:SP. Cc lnh truy xut d liu trong phn on d liu s dng n DS kt hp vi offset c tnh ton t m lnh c c a ch logic ca nh cn truy xut.