You are on page 1of 15

CHNG II: TP LNH 8951

I. NHM LNH DI CHUYN D LiU: 1. Lnh di chuyn d liu trc tip: - C php: MOV <CH>, <NGUN> Trong : . <CH>: c th l thanh ghi, a ch nh trong vng RAM ni . <NGUN>: c th l thanh ghi, a ch nh trong vng RAM ni hoc #<gi tr>

- Thc hin: di chuyn ni dung <NGUN> vo <CH>


- V d: MOV A, 120

MOV
MOV MOV MOV

B, #24
120,#10110010B R3, A P3,#3EH

2. Nhm lnh di chuyn d liu gin tip: a. Lin quan n vng nh RAM ni: + Lnh c b nh: - C php: MOV <CH>, @Rp Trong : . <CH>: thanh ghi, nh . Rp: l thanh ghi R0 hoc R1 - Thc hin: ly ni dung nh trong vng RAM ni c a ch l ni dung thanh ghi Rp t vo <CH> - V d: MOV MOV MOV 120,#47 R1,#120 A,@R1

; sau khi thc hin xong on lnh ni dung thanh ghi A cha gi tr 47

+ Lnh ghi b nh: - C php: MOV @Rp, <NGUN> Trong : . <NGUN>: thanh ghi, nh hoc #<gi tr> . Rp: l thanh ghi R0 hoc R1 - Thc hin: t ni dung <NGUN> vo nh trong vng RAM ni c a ch l ni dung thanh ghi Rp. - V d 1: MOV MOV R0,#100 @R0, #0E3H

; sau khi thc hin xong on lnh ni dung nh 100 cha gi tr E3H - V d 2: MOV MOV MOV A, #49 R1,#127 @R1, A ; (127) = 49

b. Lin quan n vng nh d liu ngoi: + Lnh c b nh: - C php: MOVX A, @DPTR - Thc hin: ly ni dung nh trong vng d liu ngoi c a ch l ni dung thanh ghi DPTR t vo thanh ghi A

- V d:
MOV DPTR,#1000 MOVX A, @DPTR ; A (1000) + Lnh c b nh: - C php: MOVX @DPTR, A - Thc hin: ly ni dung A t vo nh trong vng d liu ngoi c a ch l ni dung thanh ghi DPTR. - V d: MOV DPTR,#1000

MOV

A, #4EH

MOVX @DPTR, A ; ghi gi tr 4EH vo nh ngoi c a ch 1000 c. Lnh lin quan n vng nh chng trnh (c m lnh): - C php: MOVC A,@A+DPTR - Thc hin: ly ni dung nh trong vng nh chng trnh c a ch l ni dung thanh ghi A + DPTR t vo thanh ghi A. - V d 1: MOV MOV MOVC - V d 2: MOV MOV MOVC TABLE: A, #4 DPTR,#TABLE A, @A+DPTR DB 12H, 4EH, 0C7H, 084H, 055H, A,#2 DPTR,#500 A,@A+DPTR ; A (502)

3. Nhm lnh lin quan n ngn xp: + Ghi vo ngn xp: - C php: PUSH Thanh ghi/ a ch - Thc hin: ct ni dung thanh ghi hoc nh vo nh ngn xp + c ngn xp: - C php: POP Thanh ghi/ a ch - Thc hin: ly ni dung nh ngn xp gn vo thanh ghi, nh + v d: MOV A,#100

MOV
PUSH PUSH

100,#3EH
ACC 100

MOV
MOV POP POP

A, #21H
100, #40 100 ACC

4. Lnh trao i d liu: - C php: XCH A, <NGUN> Trong : <NGUN> c th l thanh ghi, nh hoc @Rp - Thc hin: trao i ni dung thanh ghi A v <NGUN>

II. NHM LNH S HC


1. Lnh cng: a. Cng khng nh: - C php: ADD A, <NGUN> Trong : <NGUN> c th l thanh ghi, nh, #<gi tr> hoc @Rp - Thc hin: A A + <NGUN>

b. Cng c nh:
- C php: ADDC A, <NGUN> Trong : <NGUN> c th l thanh ghi, nh, #<gi tr> hoc @Rp - Thc hin: A A + <NGUN> + C

2. Lnh tr: - C php: SUBB A, <NGUN> Trong : <NGUN> c th l thanh ghi, nh, #<gi tr> hoc @Rp - Thc hin: A A - <NGUN> - C (carry bit) 3. Lnh nhn: - C php:

MUL

AB

- Thc hin: A * B = BA (B: byte cao cua kt qua; A: byte thp cua kt qua) 4. Lnh chia: - C php:

DIV

AB

- Thc hin: A : B = A d B (A: cha phn nguyn; B: cha phn d) 5. Lnh tng mt n v:

- Cu php:

INC

<CH>

Trong : <CH> c th l thanh ghi, nh - Thc hin: <CH> = <CH> + 1

6. Lnh giam mt n v: - Cu php: DEC <CH> Trong : <CH> c th l thanh ghi, nh - Thc hin: <CH> = <CH> - 1

III. NHM LNH NHAY:


1. Lnh nhay khng iu kin: a. Nhay gn: - Cu php: SJMP <NHAN> Trong : <NHAN> l mt t, hay nhm t vit lin nhau, theo sau bng du : dng nh du v tr chng trnh. - Thc hin: nhy khng iu kin n v tr chng trnh c ch nh bi <NHAN>, khoang cch t lnh n <NHAN> khng vt qu 128 byte ma lnh. b. Nhay xa: - Cu php: LJMP <NHAN>

- Thc hin: nhay n v tr c ch nh bi <NHAN>, <NHAN> c th nm bt k v tr no trong chng trnh.

2. Lnh nhay c iu kin:


a. Lnh so sanh va nhay nu khng bng (compare and jump if not equal) - Cu php:

CJNE

A, <TOAN HANG >, <NHAN>

Trong <TOAN HANG> c th l thanh ghi, nh hoc #<gi tr> - Thc hin: So snh A v <TOAN HANG>, nu: + A <TOAN HANG>: nhay n <NHAN> v nu: . A > <TOAN HANG>: bit C = 0 . A < <TOAN HANG>: bit C = 1 + A = <TOAN HANG>: thc hin lnh k tip - Mt dng khc cua lnh: CJNE Ri/@Rp, #<GIA TRI>, <NHAN>

b. Lnh giam ni dung Ri mt n vi va nhay nu bng zero (decrement Ri by 1 and jump if not zero):

- Cu php:

DJNZ Ri, <NHAN>

- Thc hin: Ri = Ri - 1, nu: + Ri > 0: nhay n <NHAN>

+ Ri =0: thc hin lnh k tip


c. Lnh nhay phu thuc vao trang thai bit kim tra: - Cu php: JB/ JNB BIT, <NHAN> Trong : BIT c th l cc bit cua mt thanh ghi hoc cc chn I/O cua vi iu khin - Thc hin: nhay n v tr chng trnh c ch nh bi <NHAN> nu BIT bng 1 hoc bng 0

d. Lnh nhay thng qua vic kim tra c CARRY:


- Cu php: JC/ JNC <NHAN> - Thc hin: nhay n v tr chng trnh c ch nh bi <NHAN> nu C bng 1 hoc bng 0

e. Lnh nhay thng qua vic kim tra c ZERO: - Cu php: JZ/ JNZ <NHAN> - Thc hin: nhay n v tr chng trnh c ch nh bi <NHAN> nu Z bng 1 hoc bng 0

IV. NHM LNH LOGIC:


1. ANL
2. ORL 3. XRL

A, <NGUN>
A, <NGUN> A, <NGUN>

4. CLR
5. CPL 6. NOP

A
A

; xa ni dung thanh ghi A


; ao cc BIT trong thanh ghi A ; lnh khng thc hin, bo qua khi gp lnh ny

7. SWAP

; ao v tr 4 bit cao v 4 bit thp trong thanh ghi A

8 Nhm lnh quay vong: a. Quay phai thanh ghi A - Cu php: RR A

- Thc hin: Bit 7 ------------------>- bit 0

b. Lnh quay trai thanh ghi A:

- Cu php:
- Thc hin:

RL

Bit 7 --<----------------- bit 0

c. Lnh quay trai thanh ghi A vi c C: - Cu php: - Thc hin: C Bit 7 --<----------------- bit 0 RLC A

d. Lnh quay phai thanh ghi A vi c C: - Cu php: - Thc hin: C Bit 7 -->----------------- bit 0 RRC A

V. NHM LNH THAO TAC BIT:


1. CLR 2. SETB 3. CPL BIT BIT BIT ; xa BIT = 0 ; t BIT = 1 ; ao ni dung hin ti cua BIT

4. Lnh di chuyn BIT


MOV MOV C, BIT ; C BIT BIT, C ; BIT C

Vi ic vi iu khin AT89C51, chung ta c 254 cu lnh, cc cu lnh ny chia ra lm 5 nhm: (1) Nhm cc cu lnh lin quan n s hc. Nh lnh cng (add). lLnh tr (sub). Lnh tng (inc) theo bc 1, Lnh giam (dec) theo bc 1. Php nhn (mul). Php chia (div). Lnh thp phn ha (da). (2) Nhm cc cu lnh lin quan n vic chuyn di bit. Nh lnh nhp 8 bit (mov). Lnh ly 8 bit t bang (movc). Lnh ly 8 bit t b nh ngoi (movx). Lnh ct 8 bit vo ngn xp (push). Lnh ly 8 bit ra khoi ngn xp (pop). Lnh hon chuyn 8 bit (xch), (xchd). (3) Nhm cc cu lnh lin quan n php logic. Nh lnh ly php logic And (anl). Ly php logic Or (orl). Lnh ly php logic Ex-Or (xrl). Lnh ly b (cpl). Lnh cho quay bit qua tri (rl), quay tri c dng c C (rlc). Lnh cho bit quay qua phai (rr), quay phai c dng c C (rrc). Lnh ao 4 bit cao thp trong thanh ghi (swap). (4) Nhm cc cu lnh lin quan n bin cua php ton Bool. Nh lnh t bit 0 (clr). Lnh t bit 1 (setb). Lnh ly bit b (cpl). Lnh ly logic And cho bit (anl). Lnh ly logic Or cho bit (orl). Lnh chuyn bit vo ra c C (mov). Lnh nhy c iu kin theo bit (jc), (jnc), (jb), (jnb), (jbc) (5) Nhm cc cu lnh lin quan n chc nng nhy. Nh lnh gi chng trnh con (call)., (lcall) Lnh quay li (ret), (reti). Lnh nhy (ajmp), sjmp, jmp. Cc lnh nhy c iu kin (jz), (jnz). Lnh nhy sau khi qua php so snh (cjne). Lnh trng (nop).

You might also like