(Addressing Mode) :cho pheùp  cho pheùp

Chöông 2 : TAÄP LEÄNH 89C51 Chöông 2 : TAÄP LEÄNH 89C51

ADDADD A, R5 A, R5 A, 25h ADDADD A, 25h A, @R5 ADDADD A, @R5 ADDADD A, #25h A, #25h SJMPSJMP nhannhan AJMPAJMP nhannhan LJMP nhannhan LJMP MOVC A, @A + PC MOVC A, @A + PC

Ví duï : :

2.1. CAÙC CHEÁ ÑOÄ ÑÒA CHÆ 2.1. CAÙC CHEÁ ÑOÄ ÑÒA CHÆ (Addressing Mode) : ta xaùc ñònh nguoàn vaø ñích cuûa döõ lieäu. Khi 1 leänh ñöôïc  ta xaùc ñònh nguoàn vaø ñích cuûa döõ lieäu. Khi 1 leänh ñöôïc  thöïc thi vaø leän naøy caàn döõ lieäu, caâu hoûi ñaët ra “ döõ lieäu  thöïc thi vaø leän naøy caàn döõ lieäu, caâu hoûi ñaët ra “ döõ lieäu  chöùa ôû ñaâu ? “ caùc cheá ñoä ñòa chæ traû lôøi caâu hoûi naøy.  chöùa ôû ñaâu ? “ caùc cheá ñoä ñòa chæ traû lôøi caâu hoûi naøy.  coù 8 cheá ñoä ñònh ñòa chæ nhö sau : coù 8 cheá ñoä ñònh ñòa chæ nhö sau :  Thanh ghi. Ví duï : : Thanh ghi. (Register) Ví duï (Register)  Tröïc tieáp. Ví duï : : (Direct) Tröïc tieáp. (Direct) Ví duï  Giaùn tieáp. Ví duï : : (Indirect) Giaùn tieáp. (Indirect) Ví duï  Töùc thôøi. Ví duï : : (Immediate) Ví duï Töùc thôøi. (Immediate)  Töông ñoái. Ví duï : : (Relative) Töông ñoái. (Relative) Ví duï  Tuyeät ñoái. (Absolute) Ví duï : : Tuyeät ñoái. (Absolute) Ví duï  Daøi.Daøi. Ví duï : : (Long) Ví duï (Long)  Chæ soá. (Index)Ví duï Chæ soá. (Index)

Thanh ghi R0 coù ñòa chæ 00H. Noäi dung thanh ghi R0 =12H. 12H chính laø ñòa chæ oâ nhôù. Noäi dung cuûa oâ nhôù naøy laø 80

80H laø opcode cuûa maõ leänh JMP; 05H chính laø giaù trò offset seõ coäng vôùi giaù trò trong boä ñeám chöông trình PC ñeå tính ñòa chæ cuûa leänh tieáo seõhöïc hieän.

2.2. TAÄP LEÄNH 89C51 2.2. TAÄP LEÄNH 89C51

89c51 laø vi xöû lyù 8 bit. Vì vaäy 89c51 laø vi xöû lyù 8 bit. Vì vaäy boä leänh goàm coù 256 leänh. Trong boä leänh goàm coù 256 leänh. Trong thöïc teá chæ coù ñònh nghóa 255 leänh. thöïc teá chæ coù ñònh nghóa 255 leänh. Boä leänh chia thaønh 5 nhoùm : Boä leänh chia thaønh 5 nhoùm : + Nhoùm leänh soá hoïc. + Nhoùm leänh soá hoïc. + Nhoùm leänh logic. + Nhoùm leänh logic. + Nhoùm leänh di chuyeån döõ lieäu. + Nhoùm leänh di chuyeån döõ lieäu. + Nhoùm leänh xöû lyù bit. + Nhoùm leänh xöû lyù bit. + Nhoùm leänh reõ nhaùnh. + Nhoùm leänh reõ nhaùnh.

2.2.3. Nhoùm leänh chuyeån döõ lieäu: ( Data

Transfer )

Tro n g  ra m  n o ä i

MOV

,

Caùc ñòa chæ naèm trong vuøng 128 byte cao chæ  ñöôïc truy xuaát baèng kieåu ñònh ñòa chæ giaùn  tieáp ngoïai tröø caùc thanh ghi chöùc naêng ñaët  bieät. - Giöõa 2 thanh ghi

MOV A, R1

- Ñöa döõ lieäu töùc thôøi vaøo 1 thanh ghi

MOV A,#15

- Chuyeån noäi dung noäi nhôù vaøo 1 thanh ghi

MOV A,15H

- Chuyeån noäi dung vaøo thanh ghi coù chöùc naêng ñaëc bieät

MOV P1, #50H

ÔÛ RAM ngoaøi Döõ lieäu phaûi ñöôïc chöùa trong thanh ghi A vaø ñòa chæ phaûi chöùa ôû trong Ri (i = 0,1) hoaëc DPTR

Ñ/ c 8 bit Duøng thanh ghi Ri=(0 , 1)

MOV R0 , # 3Eh MOV A,# 0FFh MOVX @R0 , A

Ñ/ c 16 bit Duøng thanh ghi DPTR

MOV DPTR , # 0123h  MOV A,# 0FFh MOVX @DPTR, A

2.2.3.3 TRA BAÛNG TÌM  KIEÁM

Duøng leänh MOVC (Move Const) : Truy xuaát moät baûng coù 256 ñieåm (0 -255). Soá cuûa ñieåm muoán truy xuaát ñöôïc ñeå trong thanh ghi A (offset). Ñòa chæ ñaàu baûng (neàn) chöùa trong DPTR. Coù 2 cheá ñoä

MOCV A, @ A + PC ; PC ( program

; DPTR

counter) Boä ñeám chöông trình MOVC R1 , @A + DPTR ( data pointer) Con troû döõ lieäu

2.2.4. NHOÙM CAÙC LEÄNH REÕ  NHAÙNH

2.2.5. NHOÙM LEÄNH XÖÛ LYÙ BIT

SETB P1.0

CLR P1.0

CPL P1.0 ANL C,#1 ORL C,15H MOV C,#0 Cho pheùp thao taùc treân töøng bit.  SETB CLR NOT ANL  ORL  MOV