You are on page 1of 108

L do nghin cu b vi x l 8088

3
Nhiu im ging vi h vi x l 80x86=> nm bt c h vi x l ca hng khc

B vi x l 8088 n gin hn.

C tnh k tha ca cc sn phm trong h vi x l 80x86.

Chng II: B VI X L INTEL 8088


I - CU TRC BN TRONG V NGUYN L HOT NG CA B VI X L 8088 1. S khi ca b vi x l 8088 2. Nguyn l hot ng II - CC THANH GHI V CC CH A CH 1. Cc thanh ghi 2. Cch m ha lnh ca b vi x l 8088 3. Cc ch a ch d liu III- TP LNH CA B VI X L 8088

Chng II: B vi x l Intel 8088

I Cu trc bn trong v nguyn l hot ng ca b vi x l

Chng II: B vi x l Intel 8088

I Cu trc bn trong v nguyn l hot ng ca b vi x l

Khi n v giao tip bus (Bus Interface Unit, BIU): Thanh ghi on v thanh ghi con tr lnh IP Khi logic iu khin bus, b cng Bus d liu 8 bit v bus a ch 20 bit Khi thc hin lnh (Execution Unit, EU). Thanh ghi a nng, cc thanh ghi con tr v ch s Khi tnh ton s hc v logic ALU Khi iu khin EU Bus d liu 16 bit ca ALU, bus tn hiu iu khin. Vic chia CPU thnh hai phn lm vic ng thi c lin h vi nhau qua hng i lnh lm tng tc ng k ca CPU.

Chng II: B vi x l Intel 8088

2. Nguyn l hot ng
n v giao tip BIU Pht cc tn hiu a ch n b nh v cc cng vo ra I/O thng qua A Bus a ra a ch, c m lnh, c d liu t b nh thng qua D Bus Ghi d liu vo b nh thng qua D Bus c d liu t cc cng vo I thng qua D-Bus Ghi d liu ra cc cng O thng qua D-Bus Bn trong BIU cn c b nh m lnh (cn gi l hng i lnh) vi dung lng 4 byte dng cha cc lnh c c nm sn ch EU x l.

Chng II: B vi x l Intel 8088

I Cu trc bn trong v nguyn l hot ng ca b vi x l

Cc lnh nm ch EU x l

Chng II: B vi x l Intel 8088

2. Nguyn l hot ng
n v thc hin EU EU c nhim v cung cp a ch cho BIU khi ny c lnh v d liu Bn thn n th gii m lnh to ra cc tn hiu iu khin nhm thc hin lnh c gii m. Khi tnh ton s hc v logic ALU dng thc hin cc thao tc khc nhau vi cc ton hng ca lnh.

Chng II: B vi x l Intel 8088

2. Nguyn l hot ng
X l lnh ca b vi x l 8088 Ly Gii m Thc hin lnh

Chng II: B vi x l Intel 8088

2. Nguyn l hot ng
Chu k lnh Chu k lnh: Tng thi gian tm lnh, gii m lnh v thc hin lnh. Chu k lnh ca cc lnh khc nhau l khc nhau Chu k lnh bng mt s nguyn ln chu k my Chu k my: bng nghch o tn s hot ng (tc ng h) ca b vi x l

Chng II: B vi x l Intel 8088

Chng II: B VI X L INTEL 8088


I - CU TRC BN TRONG V NGUYN L HOT NG CA B VI X L 8088 1. S khi ca b vi x l 8088 2. Nguyn l hot ng II - CC THANH GHI V CC CH A CH 1. Cc thanh ghi 2. Cch m ha lnh ca b vi x l 8088 3. Cc ch a ch d liu III- TP LNH CA B VI X L 8088

Chng II: B vi x l Intel 8088

1. Cc thanh ghi
8088 c 14 thanh ghi 16 bit

Cc thanh ghi a nng


8 Bit cao 8 Bit thp 4 thanh ghi a nng: AX, BX, CX, DX

Lu tr tm thi d liu truy cp nhanh hn trnh khi phi truy cp b nh AX (Accumulator): thanh ghi cha, dng cha kt qu ca cc thao tc: lnh nhn, chia v mt s lnh hiu chnh d liu.

BX (Base): thanh ghi c s, thng cha a ch lch ca nh trong on DS. CX (Count): thanh ghi m, CX thng cha s ln lp trong cc lnh lp, CL thng cha s ln dch hoc quay trong lnh dch v quay thanh ghi. DX (Data): thanh ghi d liu, DX cng vi AX tham gia vo php nhn hoc chia cc s 16 bit. DX cn dng cha a ch ca cc cng vo/ra trong cc lnh vo ra d liu trc tip.
Chng II: B vi x l Intel 8088

Cc thanh ghi on
4 thanh ghi on: CS,DS,SS,ES

Lu tr a ch on ca 1 nh cn truy cp CS (Code Segment): thanh ghi on m, xc nh a ch bt u ca on nh cha m chng trnh.

DS (Data Segment): thanh ghi on d liu, xc nh a ch bt u ca on nh cha hu ht d liu ca chng trnh. ES (Extra Segment): thanh ghi on d liu ph, xc nh a ch bt u ca on nh cha d liu ph. on nh ny c cc lnh v chui s dng cha d liu ch. SS (Stack Segment): thanh ghi on ngn xp, xc nh a ch bt u ca on nh ngn xp.
Chng II: B vi x l Intel 8088

Phng php qun l b nh


B nh l tp hp cc nh (byte) Mi nh c nhn dng bng mt a ch vt l duy nht 20 bit Vi 20 bit a ch b vi x l c th nh a ch cho 1M nh Trong 1 MB b nh ngi ta chia thnh 4 on nh 64 KB khc nhau : Cha m chng trnh, Cha d liu v kt qu trung gian ca chng trnh To ra mt on nh c bit gi l ngn xp (STACK) dng vo vic qun l cc thng s ca vi x l khi gi CTC con hoc tr v t CTC.

Chng II: B vi x l Intel 8088

on b nh
on b nh (Memory segment): l mt khi gm 64KB nh lin tip. Mi on c xc nh bng mt a ch on (segment number), bt u bng a ch 0. a ch on l mt s 16 bit nn a ch on ln nht FFFFh. Bn trong mi on, cc nh c xc nh bng mt a ch tng i (offset), l s byte tnh t u on. Trong Mt on 64KB, offset l mt s 16 bit. Byte u tin trong mt on c offset 0 v byte cui cng trong on c offset FFFFh

Chng II: B vi x l Intel 8088

a ch Segment:Offset
Ni dung ca cc thanh ghi on l xc nh a ch bt u ca mi nh nm u on a ch ca nh nm u on l 20 bit, cc thanh ghi on ch c 16 bit => thm 0H vo bn phi T/G on

nhn c a ch vt l 20 bit ca mt nh no trong mt on nh bt k, CPU 8088 phi dng n hai thanh ghi 16 bit: mt thanh ghi on v mt thanh ghi lch. a ch vt l = Ni dung thanh ghi on x 10h + Ni dung thanh ghi lch = a ch on + a ch lch a ch logic = Thanh ghi on:Thanh ghi lch (a ch lch)

Chng II: B vi x l Intel 8088

VD
Vd:1 Cho mt nh c a ch vt l l 1256Ah hy cho bit a ch dng segment:offset vi cc on 1256h v 1240h? Gii: Gi X l offset trong segment 1256h v Y l offset trong segment 1240h chng ta c: 1256Ah=12560h+X 1256Ah=Y+12400h

Do : X=1256Ah-12560h=Ah
Y= 1256Ah-12400h=16Ah Nh vy: 1256Ah =1256:000A=1240:016A

Chng II: B vi x l Intel 8088

VD

Vd2: Mt nh c a ch vt l 80FD2h, trong on no th n c Offset bng BFD2h Gii: a ch vt l=segment * 10h + offset

Chng II: B vi x l Intel 8088

Mi lin h CVL & CLG

Chng II: B vi x l Intel 8088

Mi lin h CVL & CLG


Segment:Offset: l a ch logic v n tn ti di dng gi tr ca cc thanh ghi, v khi cn truy nhp nh no th n phi c i ra a ch vt l ca nh . a ch logic c tnh a tr: v ng vi mt a ch vt l c rt nhiu a ch logic khc nhau. V d, a ch vt l 12345H c th to ra t cc a ch logic sau: 1000H:2345H 1200H:0345H 1004H:2305H 0300H:E345H .. V cc on c di 64 KB nn khi bit a ch bt u ca on th ta cng bit c a ch kt thc on bng cch cng thm vo a ch bt u on FFFFH. V d: Mt thanh ghi on c a ch l 1000H => a ch bt u on l 10000H v a ch kt thc on l 1FFFFH.
Chng II: B vi x l Intel 8088

Thanh ghi con tr v ch s

IP (Instruction Pointer): thanh ghi con tr lnh IP lun tr vo lnh tip theo s c thc hin nm trong on m CS. a ch ca lnh ny l CS:IP. Thanh ghi IP dng truy nhp n cc lnh v khng b tc ng trc tip bi cc lnh, do trong mt lnh thng khng c mt IP nh mt ton hng. BP (Base Pointer): con tr c s BP ch yu c s dng truy nhp d liu nm trong on ngn xp. BP cng c th c s dng truy nhp d liu trong cc on khc. a ch logic ca nh ngn xp do BP tr ti l SS:BP
Chng II: B vi x l Intel 8088

Thanh ghi con tr v ch s


SP (Stack Ponter): con tr ngn xp SP lun tr vo nh hin thi ca ngn xp. a ch logic ca nh ngn xp l SS:SP SI (Source Index): ch s ngun SI tr vo d liu trong on d liu DS. a ch logic ca nh do SI tr ti l DS:SI DI (Destinaton Index): ch s ch, DI tr vo d liu trong on d liu DS. a ch logic ca nh do SI tr ti l DS:DI Ring trong cc lnh v chui th: ES:DI lun ng vi a ch ca mt phn t thuc chui ch DS:SI lun ng vi a ch ca mt phn t thuc chui ngun.

Chng II: B vi x l Intel 8088

Thanh ghi con tr v ch s

Bng tm tt s kt hp ngm nh gia thanh ghi on v thanh ghi lch:

Chng II: B vi x l Intel 8088

Thanh ghi c (Flag Register)


Mc ch ca thanh ghi c l ch ra trng thi ca b vi x l. Mi bit ca thanh ghi ny c dng phn nh mt trng thi nht nh ca kt qu php ton do ALU thc hin hoc mt trng thi hot ng ca CPU. Thanh ghi c c 16 bit nhng ch dng ht 9 bit lm bit c.

Cc c iu khin

Cc trng thi

Chng II: B vi x l Intel 8088

Thanh ghi c (Flag Register)


c 6 c trng thi l C, P, A, Z, S v O. Cc c trng thi ny c thit lp bng 1 hoc xa bng 0 sau hu ht cc lnh ton hc v logic. C (Carry): c nh, C = 1 khi c nh hoc mn. P (Parity): c chn l, P = 1 khi tng s bit 1 trong kt qu l chn, P = 0 khi tng s bit 1 trong kt qu l l. A (Auxiliary): c nh ph, A = 1 khi c nh hoc mn t mt s BCD thp sang mt s BCD cao. Z (Zero): c rng, Z = 1 khi kt qu ca php tnh s hc bng 0, Z = 0 khi kt qu ca php tnh s hc khc 0. S (Sign): c du, S = 1 kt qu m. O (Overflow): c trn, O = 1 khi kt qu vut ra ngoi gii hn biu din dnh cho n

Chng II: B vi x l Intel 8088

Thanh ghi c (Flag Register)


Cc c iu khin: c 3 c T, I, D. Cc c ny c thit lp bng 1 hoc xa bng 0 thng qua cc lnh iu khin ch lm vic ca b vi x l. T (Trap): c by, T = 1 th b vi x l lm vic ch chy tng lnh. I (Interrupt): c ngt, I = 1 th b vi x l cho php cc yu cu ngt c tc ng. C ny c thit lp bng lnh STI v xa bng lnh CLI. D (Direction): c hng, D = 1 th b vi x l lm vic vi chui k t theo th t t phi sang tri.

Chng II: B vi x l Intel 8088

Bi tp kt thc phn thanh ghi


B1: Mt nh c a ch vt l l 4A37Bh hy tnh a. a ch Offset ca n nu a ch on l 40FFh b. a ch on ca n nu a ch Offset l 123Bh B2: Xc nh a ch vt l ca nh c a ch logic l: 0A51h: CD90h

Chng II: B vi x l Intel 8088

Chng II: B VI X L INTEL 8088


I - CU TRC BN TRONG V NGUYN L HOT NG CA B VI X L 8088 1. S khi ca b vi x l 8088 2. Nguyn l hot ng II - CC THANH GHI V CC CH A CH 1. Cc thanh ghi 2. Cch m ha lnh ca b vi x l 8088 3. Cc ch a ch d liu III- TP LNH CA B VI X L 8088

Chng II: B vi x l Intel 8088

2. Cch m ha lnh ca b vi x l 8088


Cc lnh ca b vi x l phi c m ho di dng cc s 0 v 1 (cn gi l m my). dch cc m lnh ny sang m my th b vi x l s dng cc chng trnh dch hp ng nh MASM, TASM. V lnh cho b vi x l c cho di dng m my nn sau khi nhn lnh b vi x l phi thc hin gii m lnh ri sau mi thc hin lnh. Mt lnh vi x l c th di mt vi byte tu theo b vi x l. i vi b vi x l 8088 mt lnh c di t 1 - 6 byte. V d, lnh MOV dng m my cn t nht l 2 byte, trong 6 bit ca byte u dng cha m lnh.
M lnh a ch ca cc ton hng

Chng II: B vi x l Intel 8088

Chng II: B VI X L INTEL 8088


I - CU TRC BN TRONG V NGUYN L HOT NG CA B VI X L 8088 1. S khi ca b vi x l 8088 2. Nguyn l hot ng II - CC THANH GHI V CC CH A CH 1. Cc thanh ghi 2. Cch m ha lnh ca b vi x l 8088 3. Cc ch a ch d liu III- TP LNH CA B VI X L 8088

Chng II: B vi x l Intel 8088

3. Cc ch a ch d liu
Ch a ch (Addressing mode) l cch CPU tm thy ton hng cho cc lnh ca n. minh ha cho cc ch a ch ta s dng lnh chuyn d liu MOV, n c dng nh sau:

Lnh MOV sao chp d liu ngun vo ch, d liu ngun khng thay i cn d liu ch b thay i.

Chng II: B vi x l Intel 8088

3. Cc ch a ch d liu
a. Ch a ch thanh ghi

b
c

Ch a ch tc th Ch a ch trc tip

d. Ch a ch gin tip qua thanh ghi e


Ch a ch tng i c s
Ch a ch tng i ch s

f.

g. Ch a ch tng i ch s c s

Chng II: B vi x l Intel 8088

a.

Ch a ch thanh ghi

CPU s dng cc thanh ghi bn trong lm cc ton hng cha d liu cn thao tc. Cc thanh ghi s dng trong lnh phi cng kch c, tr mt s lnh nh lnh SHL DX, CL.

Chng II: B vi x l Intel 8088

3. Cc ch a ch d liu
a. Ch a ch thanh ghi

b
c

Ch a ch tc thi Ch a ch trc tip

d. Ch a ch gin tip qua thanh ghi e


Ch a ch tng i c s
Ch a ch tng i ch s

f.

g. Ch a ch tng i ch s c s

Chng II: B vi x l Intel 8088

Ch a ch tc th
Ton hng ch l mt thanh ghi hay nh Ton hng ngun l mt hng s

Quy nh vit hng s: - S hex: thm ch H vo cui, ring cc s bt u bng ch th phi thm c s 0 ng trc. V d: 1234H, 0A231H - S thp phn: vit bnh thng. V d: 123, 22 - K t v chui k t: phi t trong hai du phy trn. V d: A, AB

Chng II: B vi x l Intel 8088

b
VD:

Ch a ch tc th

Chng II: B vi x l Intel 8088

3. Cc ch a ch d liu
a. Ch a ch thanh ghi

b
c

Ch a ch tc th Ch a ch trc tip

d. Ch a ch gin tip qua thanh ghi e


Ch a ch tng i c s
Ch a ch tng i ch s

f.

g. Ch a ch tng i ch s c s

Chng II: B vi x l Intel 8088

Ch a ch trc tip

Mt ton hng l a ch lch ca nh trong on d liu Ton hng cn li ch c th l thanh ghi khng c l nh. a ch lch ca nh c th cho di dng tn hoc mt s hex (s hex 16 bit t trong ngoc vung).

Chng II: B vi x l Intel 8088

Ch a ch trc tip

VD: MOV AX,0 ; Ton hng ch AX ch a ch thanh ghi ; Ton hng ngun 0 ch a ch tc thi MOV SO,AX ;Ton hng ch SO ch a ch trc tip ; Ton hng AX ch a ch thanh ghi

Chng II: B vi x l Intel 8088

3. Cc ch a ch d liu
a. Ch a ch thanh ghi

b
c

Ch a ch tc th Ch a ch trc tip

d. Ch a ch gin tip qua thanh ghi e


Ch a ch tng i c s
Ch a ch tng i ch s

f.

g. Ch a ch tng i ch s c s

Chng II: B vi x l Intel 8088

Ch a ch gin tip qua thanh ghi

Mt ton hng l mt trong cc thanh ghi BP, BX, DI, SI cha a ch lch ca nh Cc thanh ghi ng vai tr nh l con tr tr n nh Ton hng kia ch c th l thanh ghi khng c l nh. Cc thanh ghi t trong ngoc vung.
BX, SI, DI cha a ch lch ca nh trong on d liu DS BP cha a ch lch ca nh trong on ngn xp SS.

Ch a ch gin tip qua thanh ghi

VD:SI cha a ch Offset 0100h v ni dung ti a ch l 1234h. MOV AX,[SI]; SI c a ch nh l DS:0100h ; Chuyn ni dung 1234h vo AX MOV AX,SI ; Chuyn 0100h vo AX

Ch a ch gin tip qua thanh ghi

VD: Gi s BX cha 1000h, offset 1000h cha 1BACH Gi s SI cha 2000h, offset 2000h cha 20FEH Gi s DI cha 3000h, offset 3000h cha 031DH a ch offset nm trong on d liu DS Hy cho bit lnh no sau y l hp l, nu hp l hy a ra a ch offset ca ton hng ngun v kt qu ca ton hng ch? A. MOV BX,[BX] B. MOV CX,[SI] C. MOV BX,[AX] D. ADD [SI],[DI] E. INC [DI]

d
Li gii:

Ch a ch gin tip qua thanh ghi

3. Cc ch a ch d liu
a. Ch a ch thanh ghi

b
c

Ch a ch tc th Ch a ch trc tip

d. Ch a ch gin tip qua thanh ghi e


Ch a ch tng i c s
Ch a ch tng i ch s

f.

g. Ch a ch tng i ch s c s

Chng II: B vi x l Intel 8088

Ch a ch tng i c s

Mt ton hng l mt nh c ch ra bi mt thanh ghi c s (BX, BP) cng vi mt gi tr dch chuyn (gi tr hng) Gi tr dch chuyn c th bng s hoc bng tn. Nu bng s th gi tr dch chuyn cng vi thanh ghi c s t trong ngoc vung. Nu l s c du th thuc khong [-32768,32767] Nu bng tn th tn ny t trc ngoc vung => C hai dng gi tr dch chuyn c th xut hin ng thi Cc dng biu thc ca ton hng
[Thanh ghi + dch] [ dch + thanh ghi] [thanh ghi] + dch dch [thanh ghi]
Chng II: B vi x l Intel 8088

Ch a ch tng i c s

Ton hng kia ch c th l thanh ghi khng c l nh. BX xc nh a ch trong on d liu DS BP xc nh a ch trong on ngn xp SS.

Chng II: B vi x l Intel 8088

Ch a ch tng i c s

VD: w l mt mng word, BX cha 4 MOV AX,W[BX]; dch l a ch offset ca bin w. Chuyn phn t c a ch w+4 vo AX Lnh trn tng ng: MOV AX,[W+BX] MOV AX, [BX + W] MOV AX, W+[BX] MOV AX, [BX] + W
Chng II: B vi x l Intel 8088

3. Cc ch a ch d liu
a. Ch a ch thanh ghi

b
c

Ch a ch tc th Ch a ch trc tip

d. Ch a ch gin tip qua thanh ghi e


Ch a ch tng i c s
Ch a ch tng i ch s

f.

g. Ch a ch tng i ch s c s

Chng II: B vi x l Intel 8088

Ch a ch tng i ch s

Tng t nh ch a ch tng i c s, ch khc l trong ch a ch ny s dng cc thanh ghi ch s SI hoc DI. nh ch ra thanh ghi ch s cng vi gi tr dch chuyn nm trong on d liu.

Chng II: B vi x l Intel 8088

3. Cc ch a ch d liu
a. Ch a ch thanh ghi

b
c

Ch a ch tc th Ch a ch trc tip

d. Ch a ch gin tip qua thanh ghi e


Ch a ch tng i c s
Ch a ch tng i ch s

f.

g. Ch a ch tng i ch s c s

Chng II: B vi x l Intel 8088

Ch a ch tng i ch s C s

Kt hp hai ch a ch tng i ch s v tng i c s ta c ch a ch tng i ch s c s. Ch a ch ny dng c thanh ghi ch s v thanh ghi c s xc nh a ch.

Chng II: B vi x l Intel 8088

VD
VD: A c khai bo nh sau A dw 0123h,0456h,0789h,0ABCh Trong on c nh a ch DS. BX cha 2, offset 0002h cha 4 SI cha 4, offset 0004h cha 2BACh DI cha 1 Lnh no hp l, Ch ra offset ca ton t ngun, con s dch a. Mov AX,[A+BX] e. MOV BX,[A+3+DI] b. MOV BX,[BX+2] F. MOV AX,[BX]2 c. MOV CX,A[SI] G. ADD BX,[A+AX] d. MOV AX,-2[SI]
Chng II: B vi x l Intel 8088

LI GiI

Chng II: B vi x l Intel 8088

Chng II: B VI X L INTEL 8088


I - CU TRC BN TRONG V NGUYN L HOT NG CA B VI X L 8088 1. S khi ca b vi x l 8088 2. Nguyn l hot ng II - CC THANH GHI V CC CH A CH 1. Cc thanh ghi 2. Cch m ha lnh ca b vi x l 8088 3. Cc ch a ch d liu III- TP LNH CA B VI X L 8088

Chng II: B vi x l Intel 8088

III- TP LNH CA B VI X L 8088


1 Nhm lnh chuyn d liu 2 Nhm lnh chuyn a ch 3
Nhm lnh chuyn thanh ghi c

7 Nhm lnh lp 8 Lnh gi chng trnh con 9 Nhm lnh tnh ton s hc

4 Nhm lnh chuyn d liu qua cng 10 Nhm lnh tnh ton logic 5 Nhm lnh iu khin chng trnh 11 Nhm lnh dch v quay bit

6 Lnh so snh

12 Nhm lnh x l chui

Chng II: B vi x l Intel 8088

Nhm lnh chuyn d liu

MOV ch, Ngun: Sao chp d liu Ngun vo ch V d: Mov AH,10D ;Chuyn gi tr 10 vo AH Mov AX,BX ; Chuyn gi tr thanh ghi BX vo thanh ghi AX Mov [DI],CX ; Chuyn gi tr thanh ghi CX vo nh DS:DI

Nhm lnh chuyn d liu

XCHG ch, Ngun: Hon i ni dung ca 2 ton hng ch v ngun V d: XCHG AH,BL ; Hon i ni dung ca hai thanh ghi AH v BL

Nhm lnh chuyn d liu

PUSH Ngun: Ct ni dung ca mt thanh ghi hoc mt nh 16 bit vo ngn xp V d: PUSH AX Lnh PUSH thc hin cc cng vic sau: + Gim SP (con tr ngn xp) i 2 + Ni dung ca ton hng ngun c lu vo v tr nh c tr bi (SS:SP). Ton hng ngun khng b thay i.

PUSHF: Khng c ton hng; ct ni dung ca thanh ghi c vo ngn xp


Chng II: B vi x l Intel 8088

Nhm lnh chuyn d liu


Ban u, SP cha a ch offset ca nh theo sau on ngn xp. SP c khi to bng 100h Lnh PUSH u tin gim SP i 2 lm cho con tr ch n t cui cng trong on ngn xp.

Chng II: B vi x l Intel 8088

Nhm lnh chuyn d liu

POP ch: Lnh POP c dng ly ra phn t nh ngn xp, trong phn t ch l mt thanh ghi 16 bit (tr IP) hoc l 1 t nh. V d: POP BX Lnh POP thc hin cc cng vic sau: + Ni dung ca nh SS:SP (nh ngn xp) c chuyn ti ton t ch + SP tng ln 2 POPF: Lnh POPF a vo thanh ghi c ni dung ca nh ngn xp
Chng II: B vi x l Intel 8088

Nhm lnh chuyn d liu

Nhm lnh chuyn d liu


Ch : - Cc lnh PUSH, PUSHF, POP, POPF khng nh hng n c - Cc lnh PUSH v POP ch thao tc vi cc WORD, vy nn nu dng vi cc byte, cc s liu trc tip l khng hp l. - Ct mt s liu trc tip l c php i vi cc b vi x l 80186, 80486
PUSH DL ; Khng hp l PUSH 2 ; Khng hp l

Nhm lnh chuyn a ch

LEA ch, Ngun (Load Effective Address) Trong : + ch thng l mt trong cc thanh ghi: BX, CX, DX, BP, SI, DI + Ngun l tn bin trong on DS c ch r trong lnh hoc nh c th => Chuyn a ch lch ca nh Ngun vo thanh ghi ch 16 bit V d Tb1 db Nhap so can kiem tra: $ LEA DX, Tb1

Chng II: B vi x l Intel 8088

Nhm lnh chuyn a ch


LDS ch, Ngun Trong : + ch l mt trong cc thanh ghi: AX, BX, CX, DX, SP, BP, SI, DI + Ngun l nh trong on DS c ch r trong lnh => Chuyn ni dung ca nh Ngun 32 bit vo cp thanh ghi 16 bit, 16 bit cao ca Ngun c np vo DS, 16 bit thp c np vo thanh ghi ch 16 bit. LES ch, Ngun +Ging nh LDS nhng thay DS bng ES

Chng II: B vi x l Intel 8088

Nhm lnh chuyn thanh ghi c


LAHF: Chuyn phn thp ca thanh ghi c vo AH SAHF: Chuyn ni dung ca AH vo 8 bit thp ca thanh ghi c PUSHF: Chuyn phn t nh ngn xp (16 bit) vo thanh ghi c

Chng II: B vi x l Intel 8088

Nhm lnh chuyn d liu qua cng


IN AL, port Hoc IN AL,DX c 8 bit t cng vo AL.
+ Nu a ch cng c gi tr t 0H n FFH th c th vit trc tip, + Nu a ch ca cng c gi tr ln hn FFH th phi t vo DX

OUT port,AL hoc OUT DX,AL => a 8 bit t thanh ghi AL ra cng

Chng II: B vi x l Intel 8088

Nhm lnh iu khin chng trnh


Lnh nhy khng iu kin: JMP Nhn => Chuyn ni dung ca nh CS:IP ti v tr c xc nh bi Nhn Lnh nhy c iu kin: J<iu kin> Nhn_gn Nu iu kin tha mn th nhy ti Nhn_gn. Cc lnh nhy c iu kin bao gm: JA, JAE, JB, JBE, JNA, JNAE, JNB, JNBE, JG, JGE, ....

Chng II: B vi x l Intel 8088

Lnh chuyn iu khin theo iu kin so snh


S khng du S c du So snh

JA
JAE , JNB JE , JZ JBE , JNA JB JNE , JNZ

JG
JGE , JNL JE , JZ JLE , JNG JL JNE , JNZ

>
>= = <= < <>

Lnh chuyn iu khin Lnh lm thay i c hiu theo c hiu trc tip
Lnh JC JNC JZ JNZ JO JNO JP JNP iu kin CF = 1 CF = 0 ZF = 1 ZF = 0 OF = 1 OF = 0 PF = 1 PF = 0 Lnh STC CLC STD CLD STI CLI iu kin CF = 1 CF = 0 DF = 1 DF = 0 IF = 1 IF = 0

JS
JNS JNS JCXZ

SF = 0
SF = 0 SF = 0 CX = 0

Nhm lnh iu khin chng trnh


JA/ JNBE Jump if Above: Nhy nu ln hn Jump if Not Below or Equal: Nhy nu khng thp hn hoc bng). vd: JA NHAN / JNBE NHAN JAE/JNB/JNC Jump if Above or Equal: Nhy nu cao hn hoc bng Jump if Not Below: Nhy nu khng thp hn Jump if No Carry: Nhy nu khng c nh vd: JAE NHAN JNB NHAN JNC NHAN

Chng II: B vi x l Intel 8088

Nhm lnh iu khin chng trnh

JB/JC/JNAE Jump if Below:Nhy nu thp hn Jump if Carry: Nhy nu c nh Jump if Not Above or Equal:Nhy nu khng cao hn hoc bng) VD: JB NHAN / JC NHAN / JNAE NHAN JBE/JNA Jump if Below or Equal: Nhy nu thp hn hoc bng Jump if Not Above: Nhy nu khng cao hn JBE NHAN JNA NHAN

Chng II: B vi x l Intel 8088

Nhm lnh iu khin chng trnh

JCXZ : Jump if CX Register if Zero : Nhy nu ni dung thanh ghi m rng. Vd: JCXZ NHAN JE/JZ: Jump if Equal/ Jump if Zero :Nhy nu bng nhau /Nhy nu kt qu bng khng JE NHAN JZ NHAN JG/JNLE Jump if Greater than/ Jump if Not Less than or Equal (Nhy nu ln hn/ Nhy nu khng b hn hoc bng) JG NHAN JNLE NHAN

Chng II: B vi x l Intel 8088

Nhm lnh iu khin chng trnh


JBE NHAN / JNA NHAN

JBE/JNA : Jump if Below or Equal/ Jump if Not Above (Nhy nu thp hn hoc bng/ Nhy nu khng cao hn)

JCXZ : Jump if CX Register if Zero (Nhy nu ni dung thanh m rng). Vd: JCXZ NHAN JE/JZ : Jump if Equal/ Jump if Zero (Nhy nu bng nhau/ Nhy nu kt qu bng khng)
JE NHAN / JZ NHAN

JG/JNLE: Jump if Greater than/ Jump if Not Less than or Equal (Nhy nu ln hn/ Nhy nu khng b hn hoc bng)
JG NHAN / JNLE NHAN / JNG NHAN

Tt c cc lnh nhy hoc nhy c iu kin u khng tc ng n c


Chng II: B vi x l Intel 8088

Nhm lnhso snh

CMP Left, Right Left c th l thanh ghi hoc nh (Khng c php l hng s) Right c th l thanh ghi hoc nh hoc hng s. => Lnh ny so snh Left v Right bng cch ly ton t Left tr i ton t Right, kt qu khng c lu li nhng cc c b nh hng. Cc ton hng ca lnh Cmp khng th cng l cc nh.

Chng II: B vi x l Intel 8088

Nhm lnh lp
LOOP NHAN Lnh ny dng lp li on chng trnh (gm cc lnh nm trong khong t NHAN n ht lnh Loop NHAN) cho n khi s ln lp CX=0 (sau mi ln thc hin lnh Loop NHAN th ng thi CX t ng gim 1) Lnh ny khng tc ng n c V d: Xor AL,AL Mov Cx,12 Lap: Inc AL Loop Lap

Chng II: B vi x l Intel 8088

Nhm lnh lp
LOOPE Hay LOOPZ NHAN: - Lp cho n khi CX=0 v ZF=1 - Gim CX i 1 nu v nhy n NHAN nu CX khc 0 v c ZF= 1 LOOPNE NHAN - Gim CX i 1 n v v nhy n NHAN nu ZF=0 v CX 0 LOOPNZ NHAN Tng t LOOPNE

Chng II: B vi x l Intel 8088

Lnh gi chng trnh con


Chng trnh con c cu trc:
Name PROC type ; thn th tc ... RET Name ENDP

Trong :
Name l tn ca th tc nh ngha bi ngi s dng Type ton hng tu chn c th l NEAR hay FAR NEAR c ngm nh nu b qua type. NEAR c ngha l dng lnh gi th tc cng on vi th tc FAR c ngha l dng lnh gi trong mt on khc
Chng II: B vi x l Intel 8088

Lnh gi chng trnh con


Gi CTC: CALL Nhn 1. a ch offset ca lnh ngay sau dng Call c ct vo ngn xp 2. Con tr lnh IP cha a ch offset ca lnh u tin ca th tc. Thao tc ny chuyn iu khin cho th tc

Chng II: B vi x l Intel 8088

Lnh gi chng trnh con


Tr v t CTC: RET tr v t mt th tc ta dng lnh: RET pop_value CTC s thc hin cc lnh ca n v khi gp RET, n s ly a ch ct trn STACK ra v np li thanh ghi IP thc thi lnh k tip.

Chng II: B vi x l Intel 8088

Nhm Contents lnh tnh ton s hc


ADD ch, Ngun ADC ch, Ngun

INC ch
DEC ch SUB ch, Ngun

Tnh ton s hc

SBB ch, Ngun NEG ch MUL Ngun_8bit MUL Ngun_16bit DIV Ngun_8bit

DIV Ngun_16bit IDIV Ngun

Nhm lnh tnh ton s hc


Lnh cng khng nh: ADD ch, Ngun ch ch + Ngun
Lnh ADD c s dng cng hai thanh ghi cng di Cng mt thanh ghi v mt nh Cng mt s vo mt thanh ghi hay mt nh (khng c ng thi l 2 nh v khng c l thanh ghi on)

Chng II: B vi x l Intel 8088

Nhm lnh tnh ton s hc

Lnh cng c nh: ADC ch, Ngun (Add With Carry) ch ch + Ngun + CF Nu CF=1 th ch=ch + ngun + 1 Nu CF=0 th ch=ch + ngun

Chng II: B vi x l Intel 8088

Nhm lnh tnh ton s hc

Lnh tr khng mn: SUB ch, Ngun ch ch - Ngun Lnh tr c mn: SBB ch, Ngun ch ch - Ngun CF

Lnh tng: INC ch ch ch + 1 Lnh gim: DEC ch ch ch - 1

Chng II: B vi x l Intel 8088

Nhm lnh tnh ton s hc

NEG ch ch -ch (M b 2) => Dng ph nh ni dung ca ton hng ch

Trc NEG BX Sau NEG BX


0002 FFFE

Chng II: B vi x l Intel 8088

Nhm lnh tnh ton s hc

- Lnh nhn khng du: MUL Ngun MUL Ngun_8bit AX AL x Ngun_8bit Khi nhn cc byte vi nhau, 1s c cha trong ton hng ngun v s cn li c gi thit cha trong AL. Ton hng ngun c th l 1 thanh ghi hay 1 byte nh nhng khng th l hng s MUL Ngun_16bit DX:AX AX x Ngun_16bit
S b nhn phi l s 16 bit trong AX

- Lnh nhn c du: IMUL Ngun Tng t MUL, s b nhn phi l s c du t trong AL hoc AX
Chng II: B vi x l Intel 8088

9
Lnh

Nhm lnh tnh ton s hc


Tch s dng thp phn Tch s dng hex 65535 -1 0000FFFF FFFFFFFF

VD1: Gi s AX cha 1, BX cha FFFFh


MUL BX IMUL BX

VD2: Gi s AX v BX cng cha FFFFH


Lnh
MUL BX

Tch s dng thp phn


4294836225

Tch s dng hex


FFFE0001

IMUL BX

000000001

Chng II: B vi x l Intel 8088

Nhm lnh tnh ton s hc


Lnh chia khng du: DIV Ngun DIV Ngun_8bit

Ly AX chia cho Ngun_8bit Thng trong AL, s d trong AH Ngun_8bit khng th l hng s.
DIV Ngun_16bit

Ly DX:AX chia cho Ngun_16bit Thng trong AX S d trong DX


Lnh chia c du: IDIV Ngun Tng t DIV Cc lnh hiu chnh khi thc hin php ton vi m BCD v ASCII:DAA, DAS, AAA, AAD, AAM, AAS.
Chng II: B vi x l Intel 8088

Nhm lnh tnh ton s hc

S trn s trong php chia: Thng s > ton hng ch (AL hoc AX). L do: S chia nh hn rt nhiu so vi s b chia. Khi xy ra iu ny chng trnh dng li v thng bo: Divide Overflow. VD: AX cha 0005h, DX cha 0000h, BX cha 0002h

Lnh DIV BX
IDIV BX
Chng II: B vi x l Intel 8088

thng s dng thp phn (AX) 2


2

S d dng thp phn (DX) 1


1

Nhm lnh tnh ton s hc

VD1: DX cha 0000h, AX cha 0005h, BX cha FFFEh AX=5, BX=65534 (DIV) AX=5, BX=-2 (IDIV)

Lnh DIV BX IDIV BX

thng s dng S d dng thp phn thp phn (AX) (DX) 0 -2 5 1

Chng II: B vi x l Intel 8088

Nhm lnh tnh ton s hc

VD2: DX cha FFFFh, AX cha FFFBh, BX cha 0002h Lnh 1: BX=2, DX:AX=-5 (IDIV) Lnh 2: BX=2, DX:AX= 2147483646 = 7FFFFFFEh qu ln cha trong AX (DIV) thng s dng thp phn (AX) -2 S d dng thp phn (DX) -1

Lnh DIV BX

IDIV BX

Divide flow

Chng II: B vi x l Intel 8088

10

Nhm lnh tnh ton logic

Ton t logic

Chng II: B vi x l Intel 8088

AND

AND ch, Ngun

ch ch AND Ngun i m ASCII ca mt s thnh s thp phn tng ng Khi c 1 k t t bn phm, AL cha m ASCII ca k t . V d khi n phm 5, AL cha 35h thay cho 5. nhn c 5 trong thanh ghi AL ta c th lm nh sau: SUB AL,30h Dng AND xo na byte cao ca AL AND AL,0Fh

Chng II: B vi x l Intel 8088

AND

AND ch, Ngun

i ch thng thnh ch hoa


a n z :61h n 7Ah, A dn Z : 41h n 5Ah. Nu DL cha m ASCII ca 1 ch thng ta c th i ra ch hoa bng cch thc hin lnh: SUB DL,20h AND DL,0DFh
K t
a b c .. z
Chng II: B vi x l Intel 8088

M ASCII
0110 0001 0110 0010 0110 0011 .. 0111 1010

K t
A B C .. Z

M ASCII
0100 0001 0100 0010 0100 0010 .. 0101 1010

OR, XOR, NOT, TEST


OR ch, Ngun: ch ch OR Ngun XOR ch, Ngun: - ch ch XOR Ngun - Xa thanh ghi NOT ch: - ch NOT ch - Ly s b 1 ca ton hng ch TEST ch, Ngun: ch AND Ngun Ton hng ch khng b thay i. Mc ch ca lnh TEST l thit lp cc c Cc c b tc ng: SF, ZF, PF phn nh kt qu AF khng xc nh CF,OF=0

Chng II: B vi x l Intel 8088

11

Nhm lnh dch v quay bit


Lnh dch bit
SHL ch,CL SAL ch,CL SHR ch,CL SAR ch,CL

Lnh quay bit


ROL ch,CL RCL ch,CL ROR ch,CL RCR ch,CL

Chng II: B vi x l Intel 8088

Lnh dch tri


- SHL ch,CL SAL tng t SHL Trong CL cha N. N php dch tri n c thc hin. Add Gi tr CL vn gi nguyn khng thay i khi Your thc hin xong lnh Text here Sau mi ln dch tri th gi tr 0 c thm vo v tr bn phi nht ca ton hng ch. Bit MSB c a vo CF

Lnh dch tri


Cc c b tc ng: + SF, PF, ZF phn nh kt qu, PF ch c ngha khi kt qu l 8 bit + CF cha bit cui cng c dch ra khi ton hng + OF = 1 nu kt qu b thay i du trong ln dch chuyn cui cng

Lnh dch tri


VD1: DH cha 8Ah, CL cha 3. Cho bit gi tr DH, CF
sau khi lnh SHL DH,CL c thc hin

Gi tr nh phn Ln 1 Ln 2 Ln 3

Lnh dch phi


- SHR ch,CL SAR tng t SHL Trong CL cha N. N php dch phi n c thc hin. Add Gi tr CL vn gi nguyn khng thay i khi Your thc hin xong lnh Text here Sau mi ln dch phi th gi tr 0 c thm vo v tr bn phi nht ca ton hng ch. Bit MSB c a vo CF

Lnh dch tri phi


Cc c b tc ng: + SF, PF, ZF phn nh kt qu, PF ch c ngha khi kt qu l 8 bit + CF cha bit cui cng c dch ra khi ton hng + OF = 1 nu kt qu b thay i du trong ln dch chuyn cui cng

Lnh dch phi


VD1: DH cha 8Ah, CL cha 3. Cho bit gi tr DH, CF
sau khi lnh SHR DH,CL c thc hin

Gi tr nh phn Ln 1 Ln 2 Ln 3

Lnh quay tri ROL


- ROL ch,1 hoc ROL ch,CL: Lnh ROL (Rotate left) dch cc bit sang bn tri. Bit msb c dch vo bit bn phi nht, ng thi c a vo c CF, bit lsm theo sau bit msb.

Lnh quay tri c nh RCL


- RCL ch,1 hoc RCL ch,CL: Lnh quay tri qua c nh - Rotate Carry Lef Dch cc bit ca ton hng ch sang tri. Bit msb c t vo c CF, gi tr c ca CF c a vo bit phi nht ca ton hng ch

Lnh quay tri ROL


- ROR ch,1 hoc ROR ch,CL: Lnh ROR (Rotate right) dch cc bit sang bn phi. Bit bn phi nht c dch vo v bit msb ng thi cng c a vo c C.

Lnh quay tri c nh RCL


- RCR ch,1 hoc RCR ch,CL: Lnh quay phi qua c nh - Rotate Carry Lef Dch cc bit ca ton hng ch sang phi. Bit lsb c t vo c CF, gi tr c ca CF c a vo bit tri nht ca ton hng ch

Nhm lnh x l chui

- Lnh chuyn chui: MOVS, MOVSB,MOVSW - Lnh so snh chui: CMPS, CMPSB, CMPSW - Lnh qut chui: SCAS, SCASB, SCASW - Lnh np chui Lnh np chui: LODS, LODSB, LODSW - Lnh lu chui: STOS, STOSB, STOSW

You might also like