HOC VIÊN CÔNG NGHÊ B U CHINH VIÊN THÔNG ̣ Ư

̣ ̣ ́ ̃

Ợ

̣ ̀

LÂP TRINH H P NG Ữ AVR

̉ ̣ ́

̣ ̣

̀ Ử

̣ ̀ ̉ ́ ́ ̣

GIANG VIÊN: THS. PHAM THÊ DUY ĐIÊN THOAI/EMAIL: 0903661501 DUYPT@PTITHCM.EDU.VN BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU HOC KY/NĂM BIÊN SOAN: 02/2010

̣ ̀ ̣

̣

̣Nôi dung Nôi dung

Ệ Ệ

Ậ Ậ

I THI U T P L NH AVR I THI U T P L NH AVR Ữ Ữ

Ệ Ệ Ợ Ợ

Ệ Ệ

6.1 GI Ớ 6.1 GI Ớ 6.2 C U TRÚC L NH H P NG Ấ 6.2 C U TRÚC L NH H P NG Ấ 6.3 H Ẫ ƯỚ 6.3 H Ẫ ƯỚ

NG D N GIAO Di N CODEVISONAVR Ệ NG D N GIAO Di N CODEVISONAVR Ệ

22

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

6.1 GI 6.1 GI

I THI U T P L NH AVR I THI U T P L NH AVR

Ớ Ớ

Ậ Ậ

Ệ Ệ

Ệ Ệ

ạ ạ

ệ ệ

ộ ệ ộ ệ

ể ể ể ể

ứ ằ ứ ằ ứ ằ ứ ằ ể ể

ể ể

ứ ằ ứ ằ

ằ ằ ằ ằ ằ ằ ằ ằ ằ ằ

ể ể ộ ệ ộ ệ

ứ ứ

ể ể

ị ị

 Ký hi u các toán h ng (operand) Ký hi u các toán h ng (operand) RdRd : Các thanh ghi R0 – R31 ho c R16 – R31 (tuỳ thu c l nh). : Các thanh ghi R0 – R31 ho c R16 – R31 (tuỳ thu c l nh). ặ ặ : Các thanh ghi R0 – R31. RrRr : Các thanh ghi R0 – R31. : H ng s ( 0 – 7), có th là bi u th c h ng. bb ể ố : H ng s ( 0 – 7), có th là bi u th c h ng. ể ố ss : H ng s ( 0 – 7), có th là bi u th c h ng. ể ố : H ng s ( 0 – 7), có th là bi u th c h ng. ố ể : H ng s ( 0 – 31/63), có th là bi u th c h ng. PP ứ ằ ố : H ng s ( 0 – 31/63), có th là bi u th c h ng. ứ ằ ố : H ng s ( 0 – 63), có th là bi u th c h ng. KK ể ố : H ng s ( 0 – 63), có th là bi u th c h ng. ể ố kk : H ng s (d i giá tr tuỳ thu c l nh), có th là bi u th c ể ố ả : H ng s (d i giá tr tuỳ thu c l nh), có th là bi u th c ể ố ả h ng.ằh ng.ằ qq

: H ng s ( 0 – 63), có th là bi u th c h ng. : H ng s ( 0 – 63), có th là bi u th c h ng.

ứ ằ ứ ằ

ể ể

ể ể

ằ ằ

ố ố

33

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

́ ̣ ́ ̣ ̀

CAC LÊNH SÔ HOC VA LOGIC CAC LÊNH SÔ HOC VA LOGIC

́ ̣ ́ ̣ ̀

ả ả

ớ ớ

ợ ợ

ự ự

ệ ệ

ớ ớ

ớ ớ

ờ ờ ớ ớ

ớ ớ

ớ ớ

ờ ờ

ừ ừ ừ ừ ừ ừ ừ ứ ừ ứ ứ ứ

ạ ạ ADDADD Rd, Rr Rd, Rr ADCADC Rd, Rr Rd, Rr ADIWADIW Rd, KRd, K SUBSUB Rd, Rr Rd, Rr SUBI Rd, KRd, K SUBI Rd, Rr SBCSBC Rd, Rr SBCI Rd, KRd, K SBCI SBIWSBIW Rd, KRd, K Rd, Rr ANDAND Rd, Rr ANDI Rd, KRd, K ANDI OROR Rd, Rr Rd, Rr Rd, KRd, K ORIORI Rd, Rr EOREOR Rd, Rr

G i nh Toán h ng Mô t G i nh Toán h ng Mô t • ộ ộ • ộ ộ • • • • • • • • • • • • COMCOM RdRd • NEGNEG RdRd • SBRSBR Rd,KRd,K • CBRCBR Rd,KRd,K • INCINC RdRd • DECDEC RdRd • TSTTST RdRd • CLRCLR RdRd • SERSER RdRd • MULMUL Rd,Rr Rd,Rr

CờCờ Z,C,N,V,H Z,C,N,V,H Z,C,N,V,H Z,C,N,V,H Z,C,N,V Z,C,N,V Z,C,N,V,H Z,C,N,V,H Z,C,N,V,H Z,C,N,V,H Z,C,N,V,H Z,C,N,V,H Z,C,N,V,H Z,C,N,V,H Z,C,N,V Z,C,N,V Z,N,VZ,N,V Z,N,VZ,N,V Z,N,VZ,N,V Z,N,VZ,N,V Z,N,VZ,N,V Z,C,N,V Z,C,N,V Z,C,N,V,H Z,C,N,V,H Z,N,VZ,N,V Z,N,VZ,N,V Z,N,VZ,N,V Z,N,VZ,N,V Z,N,VZ,N,V Z,N,VZ,N,V NoneNone CC

Clock Clock 11 11 22 11 11 11 11 22 11 11 11 11 11 11 11 11 11 11 11 11 11 11 22

Th c hi n Th c hi n C ng không nh Rd ←Rd + Rr C ng không nh Rd ←Rd + Rr C ng có nh Rd ← Rd + Rr + C C ng có nh Rd ← Rd + Rr + C + giá tr t c th i Rd+1:Rd ← Rd+1:Rd + K ị ứ + giá tr t c th i Rd+1:Rd ← Rd+1:Rd + K ị ứ Tr không nh Rd ← Rd - Rr Tr không nh Rd ← Rd - Rr Tr giá tr t c th i Rd ← Rd - K ờ ị ứ Tr giá tr t c th i Rd ← Rd - K ờ ị ứ Tr có c nh Rd ← Rd - Rr - C ờ Tr có c nh Rd ← Rd - Rr - C ờ Tr t c th i có nh Rd ← Rd - K - C Tr t c th i có nh Rd ← Rd - K - C - t c th i theo t Rd+1:Rd ← Rd+1:Rd – K ừ ờ - t c th i theo t Rd+1:Rd ← Rd+1:Rd – K ừ ờ Logic AND Rd ← Rd AND Rr Logic AND Rd ← Rd AND Rr AND v i s t c th i Rd ← Rd AND K ờ ớ ố ứ AND v i s t c th i Rd ← Rd AND K ờ ớ ố ứ Logical OR Rd ← Rd OR Rr Logical OR Rd ← Rd OR Rr OR v i s t c th i Rd ← Rd OR K ờ ớ ố ứ OR v i s t c th i Rd ← Rd OR K ờ ớ ố ứ Exclusive OR Rd ← Rd XOR Rr Exclusive OR Rd ← Rd XOR Rr Bù 1Bù 1 Rd ← $FF - Rd Rd ← $FF - Rd Bù 2Bù 2 Rd ← $00 - Rd Rd ← $00 - Rd ậL p bit trong t. ghi Rd ← Rd v K ậ Rd ← Rd v K L p bit trong t. ghi Rd ← Rd and ($FFh - K) Xóa bit trong t. ghi Rd ← Rd and ($FFh - K) Xóa bit trong t. ghi Rd ← Rd + 1 TăngTăng Rd ← Rd + 1 Gi mảGi mả Rd ← Rd - 1 Rd ← Rd - 1 Rd ← Rd and Rd K.tra zero ho c âmặ Rd ← Rd and Rd K.tra zero ho c âmặ Rd ← Rd xor Rd Xóa thanh ghi Rd ← Rd xor Rd Xóa thanh ghi Rd ← $FF ậL p thanh ghi ậ Rd ← $FF L p thanh ghi R1, R0 ← Rd x Rr Nhân không d uấ R1, R0 ← Rd x Rr Nhân không d uấ

44

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

́ ̣ ̃ ́

CAC LÊNH RE NHANH CAC LÊNH RE NHANH

ng đ i ố ng đ i ố ế ế

22 22 33

NoneNone NoneNone NoneNone

PC ← PC + k + 1 PC ← PC + k + 1 PC ← Z PC ← Z PC ← k PC ← k

ề ề

PC ← PC + k + 1 PC ← PC + k + 1

Nh y t ả ươ Nh y t ả ươ nh y gián ti p (Z) ả nh y gián ti p (Z) ả Nh y không đi u ki n ả ệ Nh y không đi u ki n ệ ả G i c.trình con t. đ i ố ọ G i c.trình con t. đ i ố ọ

33 44 44 44

ằ ằ

ả ả

11 11

ớ ớ

PC ← Z NoneNone PC ← Z PC ← k NoneNone PC ← k PC ← STACK NoneNone PC ← STACK II PC ← STACK PC ← STACK None 1 / 2 / 3 if (Rd = Rr) PC ← PC + 2 or 3 None 1 / 2 / 3 if (Rd = Rr) PC ← PC + 2 or 3 Z,C,N,V,H Rd - Rr Z,C,N,V,H Rd - Rr Z,C,N,V,H Rd - Rr - C Rd - Rr - C Z,C,N,V,H Z,C,N,V,H Rd - K 11 Z,C,N,V,H Rd - K if (Rr(b)=0) PC ← PC + 2or3 None 1 / 2 / 3 None 1 / 2 / 3 if (Rr(b)=0) PC ← PC + 2or3 None 1 / 2 / 3 if (Rr(b)=1) PC ← PC + 2or3 None 1 / 2 / 3 if (Rr(b)=1) PC ← PC + 2or3 None 1 / 2 / 3 if(I/O(P,b)=0) PC←PC+2or3 None 1 / 2 / 3 if(I/O(P,b)=0) PC←PC+2or3 None 1 / 2 / 3 if(I/O(P,b)=1) PC ← PC+2or3 None 1 / 2 / 3 if(I/O(P,b)=1) PC ← PC+2or3

G i gián ti p (Z) ế ọ G i gián ti p (Z) ế ọ ng trình con G i ch ươ ọ ng trình con G i ch ươ ọ c.trình con Quay v t ề ừ c.trình con Quay v t ề ừ ng t Quay v t ắ ề ừ Quay v t ng t ề ừ ắ So sánh và 0 nh y khi b ng So sánh và 0 nh y khi b ng So sánh So sánh So sánh có c nhờ So sánh có c nhờ So sánh v i s t c th i ờ ớ ố ứ So sánh v i s t c th i ờ ớ ố ứ 0 nh y khi bit = 0 (Skip) 0 nh y khi bit = 0 (Skip) 0 nh y n u bit = 1 ế 0 nh y n u bit = 1 ế 0 nh y n u bit I/O = 0 ế 0 nh y n u bit I/O = 0 ế 0 nh y n u bit I/O= 1 ế 0 nh y n u bit I/O= 1 ế

ả ả ả ả ả ả ả ả

• RJMPRJMP kk • IJMP IJMP • JMPJMP kk • RCALL k RCALL k NoneNone 33 • ICALL ICALL • CALLCALL kk • RETRET • RETIRETI • CPSECPSE Rd,Rr Rd,Rr • CPCP Rd,Rr Rd,Rr • CPCCPC Rd,Rr Rd,Rr • CPICPI Rd,KRd,K • SBRCSBRCRr, bRr, b • SBRS Rr, bRr, b SBRS • SBICSBIC P, bP, b • SBISSBIS P, bP, b • s, k R nhánh khi c tr ng thái=1 if (SREG(s) = 1)then PC←PC+k + 1 None 1 / 2 BRBS s, k R nhánh khi c tr ng thái=1 if (SREG(s) = 1)then PC←PC+k + 1 None 1 / 2 BRBS • s, k R nhánh khi c tr ng thái=0 if (SREG(s) = 0) then PC←PC+k + 1 None 1 / 2 BRBCBRBCs, k R nhánh khi c tr ng thái=0 if (SREG(s) = 0) then PC←PC+k + 1 None 1 / 2

ờ ạ ờ ạ ờ ạ ờ ạ

ẽ ẽ ẽ ẽ

55

́ ̣ ̃ ́

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

́ ̣ ̃ ́

CAC LÊNH RE NHANH CAC LÊNH RE NHANH

if (Z = 1) then PC← PC + k + 1 if (Z = 1) then PC← PC + k + 1

ằ ằ

ằ ằ

• • • • • •

if (C = 1) then PC ← PC + k + 1 if (C = 1) then PC ← PC + k + 1

None 1 / 21 / 2 None 1 / 21 / 2 None None 1 / 21 / 2 None if (C = 1) then PC← PC + k + 1 None if (C = 1) then PC← PC + k + 1 1 / 21 / 2 if (C = 0) then PC← PC + k + 1 None None if (C = 0) then PC← PC + k + 1 1 / 21 / 2 None if (C = 0) then PC ← PC + k + 1 None if (C = 0) then PC ← PC + k + 1

ng ng

ế ế ế ế

• • • • • • • • • • • •

BREQBREQ kk BRNE kk BRNE BRCS kk BRCS BRCC kk BRCC BRSHBRSH kk BRLOBRLO kk None None BRMI kk BRMI BRPL kk BRPL BRGE kk BRGE BRLTBRLT kk BRHS kk BRHS BRHC kk BRHC BRTS kk BRTS BRTCBRTC kk BRVS kk BRVS BRVCBRVC kk BRIEBRIE k k BRIDBRID k k

None 1 / 21 / 2 if (N = 1) then PC ← PC + k + 1 None if (N = 1) then PC ← PC + k + 1 None 1 / 21 / 2 if (N = 0) then PC ← PC + k + 1 None if (N = 0) then PC ← PC + k + 1 1 / 21 / 2 None if (NxorV= 0) then PC←PC+ k + 1 None if (NxorV= 0) then PC←PC+ k + 1 1 / 21 / 2 if (NxorV= 1) then PC← PC + k + 1 None if (NxorV= 1) then PC← PC + k + 1 None 1 / 21 / 2 None if (H = 1) then PC ← PC + k + 1 None if (H = 1) then PC ← PC + k + 1 None 1 / 21 / 2 if (H = 0) then PC ← PC + k + 1 None if (H = 0) then PC ← PC + k + 1 None 1 / 21 / 2 if (T = 1) then PC ← PC + k + 1 if (T = 1) then PC ← PC + k + 1 None None 1 / 21 / 2 if (T = 0) then PC ← PC + k + 1 None if (T = 0) then PC ← PC + k + 1 None 1 / 21 / 2 if (V = 1) then PC ← PC + k + 1 None if (V = 1) then PC ← PC + k + 1 1 / 21 / 2 if (V = 0) then PC ← PC + k + 1 NoneNone if (V = 0) then PC ← PC + k + 1 None 1 / 21 / 2 if (I = 1) then PC ← PC + k + 1 None if (I = 1) then PC ← PC + k + 1 1 / 21 / 2 if (I = 0) then PC ← PC + k + 1 NoneNone if (I = 0) then PC ← PC + k + 1

R nhánh n u b ng ế ẽ R nhánh n u b ng ế ẽ R nhánh n u không b ng if (Z = 0) then PC← PC + k + 1 ế ẽ R nhánh n u không b ng if (Z = 0) then PC← PC + k + 1 ế ẽ R nhánh n u CF=1 ế ẽ R nhánh n u CF=1 ế ẽ R nhánh n u CF=0 ế ẽ R nhánh n u CF=0 ế ẽ R nhánh n u > ho c = ặ ế ẽ R nhánh n u > ho c = ặ ế ẽ R nhánh n u nh h n ỏ ơ ế ẽ R nhánh n u nh h n ỏ ơ ế ẽ 1 / 21 / 2 R nhánh n u âm ẽ R nhánh n u âm ẽ R nhánh n u d ươ ẽ R nhánh n u d ươ ẽ R nhánh > ho c =, có d u ấ ặ ẽ R nhánh > ho c =, có d u ấ ặ ẽ R nhánh < ho c =, có d u ấ ặ ẽ R nhánh < ho c =, có d u ẽ ấ ặ R nhánh n u HF = 1 ẽ R nhánh n u HF = 1 ẽ R nhánh n u HF = 0 ẽ R nhánh n u HF = 0 ẽ R nhánh n u TF = 1 ẽ R nhánh n u TF = 1 ẽ R nhánh n u TF = 0 ẽ R nhánh n u TF = 0 ẽ R nhánh n u OF = 1 ẽ R nhánh n u OF = 1 ẽ R nhánh n u OF = 0 ẽ R nhánh n u OF = 0 ẽ R nhánh n u IF = 1 ẽ R nhánh n u IF = 1 ẽ R nhánh n u IF = 1 ẽ R nhánh n u IF = 1 ẽ

ế ế ế ế ế ế ế ế ế ế ế ế ế ế ế ế

66

́ ̣ ̃ ́

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

́ ̣ ̣

CAC LÊNH TRUYÊN D LIÊU CAC LÊNH TRUYÊN D LIÊU

̀ Ữ ̀ Ữ

NoneNone NoneNone NoneNone NoneNone NoneNone NoneNone NoneNone NoneNone

11 11 33 22 22 22 22 22

Rd ← Rr Rd ← Rr Rd ← K Rd ← K Rd ← (k) Rd ← (k) Rd ← (X) Rd ← (X) Rd ← (X), X ← X + 1 Rd ← (X), X ← X + 1 X ← X - 1, Rd ← (X) X ← X - 1, Rd ← (X) Rd ← (Y) Rd ← (Y) Rd ← (Y), Y ← Y + 1 Rd ← (Y), Y ← Y + 1 Y← Y - 1, Rd ← (Y) Y← Y - 1, Rd ← (Y)

ạ ạ ạ ạ ạ ạ ạ ạ ả ả ạ ạ ạ ạ ả ả

Chép thanh ghi Chép thanh ghi N p giá tr t c th i ị ứ ờ N p giá tr t c th i ị ứ ờ SRAM N p tr c ti p t ế ừ ự N p tr c ti p t SRAM ế ừ ự N p gián ti p ế N p gián ti p ế N p gián ti p và tăng ế N p gián ti p và tăng ế Gi m và n p gián ti p ế ạ Gi m và n p gián ti p ế ạ N p gián ti p ế N p gián ti p ế N p gián ti p và tăng ế N p gián ti p và tăng ế Gi m và n p gián ti p ế ạ Gi m và n p gián ti p ế ạ

• • • • • • •

Rd ← (Y + q) Rd ← (Y + q) Rd ← (Z) Rd ← (Z) Rd ← (Z), Z ← Z+1 Rd ← (Z), Z ← Z+1 Z ← Z - 1, Rd ← (Z) Z ← Z - 1, Rd ← (Z) Rd ← (Z + q) Rd ← (Z + q) (k) ← Rr (k) ← Rr (X) ← Rr (X) ← Rr

NoneNone NoneNone NoneNone NoneNone NoneNone NoneNone NoneNone

22 22 22 22 22 33 22

• MOVMOV Rd, Rr Rd, Rr • LDILDI Rd, KRd, K • LDSLDS Rd, kRd, k • Rd, XRd, X LDLD • Rd, X+ LDLD Rd, X+ • LDLD Rd, -X Rd, -X • Rd, YRd, Y LDLD • Rd, Y+ LDLD Rd, Y+ • LDLD Rd, -Y Rd, -Y NoneNone 22 LDDLDD Rd,Y+q Rd,Y+q N p gián ti p v i đ d i N p gián ti p v i đ d i ớ ộ ờ ế ế ớ ộ ờ LDLD Rd, ZRd, Z N p gián ti p ế N p gián ti p ế LDLD N p gián ti p và gi m Rd, Z+ ả ế N p gián ti p và gi m Rd, Z+ ả ế LDLD Gi m và n p gián ti p Rd, -Z ế ạ Gi m và n p gián ti p Rd, -Z ế ạ Rd, Z+q N p gián ti p v i đ d i LDDLDD Rd, Z+q N p gián ti p v i đ d i ớ ộ ờ ế ớ ộ ờ ế L u tr c ti p vào SRAM k, Rr STSSTS k, Rr ế ứ L u tr c ti p vào SRAM ế ứ L u gián ti p X, RrX, Rr STST ế L u gián ti p ế

ạ ạ ạ ạ ạ ạ ả ả ạ ạ ư ư ư ư

77

́ ̣ ̣

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

́ ̣ ̣

CAC LÊNH TRUYÊN D LIÊU CAC LÊNH TRUYÊN D LIÊU

̀ Ữ ̀ Ữ

ả ả ế ế

L u gián ti p và gi m ế L u gián ti p và gi m ế Gi m và l u gián ti p ư Gi m và l u gián ti p ư L u gián ti p ế L u gián ti p ế L u gián ti p và tăng ế L u gián ti p và tăng ế Gi m và l u gián ti p ế ư Gi m và l u gián ti p ế ư L u gián ti p v i đ d i ớ ộ ờ ế L u gián ti p v i đ d i ớ ộ ờ ế L u gián ti p ế L u gián ti p ế L u gián ti p và tăng ế L u gián ti p và tăng ế Gi m và l u gián ti p ế ư Gi m và l u gián ti p ế ư L u gián ti p v i đ d i ớ ộ ờ ế L u gián ti p v i đ d i ớ ộ ờ ế ng trình ng trình

ạ ừ ộ ạ ừ ộ

ớ ớ

ư ư ả ả ư ư ư ư ả ả ư ư ư ư ư ư ả ả ư ư b nh ch b nh ch ổ ọ ổ ọ ổ ổ

ỉ ỉ

• STST X+, Rr X+, Rr • STST -X, Rr -X, Rr • STST Y, RrY, Rr • STST Y+, Rr Y+, Rr • STST -Y, Rr -Y, Rr • Y+q,Rr STDSTD Y+q,Rr • Z, Rr STST Z, Rr • STST Z+, Rr Z+, Rr • STST -Z, Rr -Z, Rr • Z+q,Rr STDSTD Z+q,Rr • LPMLPM N p t N p t • Rd, PRd, P ININ • OUTOUT P, RrP, Rr • PUSHPUSHRrRr • POPPOP RdRd

ươ ươ Đ c c ng vào ra Đ c c ng vào ra Ghi c ng vào ra Ghi c ng vào ra N p thanh ghi vào đ nh stack N p thanh ghi vào đ nh stack L y đ nh stack ra thanh ghi L y đ nh stack ra thanh ghi

(X) ← Rr, X ← X + 1 (X) ← Rr, X ← X + 1 X ← X - 1, (X) ← Rr X ← X - 1, (X) ← Rr (Y) ← Rr (Y) ← Rr (Y) ← Rr, Y ← Y + 1 (Y) ← Rr, Y ← Y + 1 Y ← Y - 1, (Y) ← Rr Y ← Y - 1, (Y) ← Rr (Y + q) ← Rr (Y + q) ← Rr (Z) ← Rr (Z) ← Rr (Z)← Rr, Z ← Z + 1 (Z)← Rr, Z ← Z + 1 Z ← Z - 1, (Z) ← Rr Z ← Z - 1, (Z) ← Rr (Z + q)← Rr (Z + q)← Rr R0 ← (Z) R0 ← (Z) Rd ← P Rd ← P P ← Rr P ← Rr STACK ← Rr STACK ← Rr Rd ← STACK Rd ← STACK

NoneNone NoneNone NoneNone NoneNone NoneNone NoneNone NoneNone NoneNone NoneNone NoneNone NoneNone NoneNone NoneNone NoneNone NoneNone

22 22 22 22 22 22 22 22 22 22 33 11 11 22 22

ạ ạ ấ ấ

ỉ ỉ

88

́ ̣ ̣

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

́ ̣ ̉

CAC LÊNH KIÊM TRA BIT CAC LÊNH KIÊM TRA BIT

ả ả

ị ị ị ị

ổ ổ

I/O(P, b) ← 0 I/O(P, b) ← 0 T ← Rr(b) TT T ← Rr(b) Rd(b) ← T Rd(b) ← T

• LSLLSL Rd D ch trái logic Rd(n+1) ← Rd(n),Rd(0) ← 0,C ← Rd(7) Rd D ch trái logic Rd(n+1) ← Rd(n),Rd(0) ← 0,C ← Rd(7) • Rd D ch ph i logic Rd(n) ← Rd(n+1),Rd(7) ← 0,C ← Rd(0) LSRLSR Rd D ch ph i logic Rd(n) ← Rd(n+1),Rd(7) ← 0,C ← Rd(0) • ROLROL Rd Quay trái qua CF Rd(0) ← C,Rd(n+1) ← Rd(n),C ← Rd(7) Rd Quay trái qua CF Rd(0) ← C,Rd(n+1) ← Rd(n),C ← Rd(7) • RORROR Rd Quay ph i qua CF Rd(7) ← C,Rd(n) ← Rd(n+1),C ← Rd(0) Rd Quay ph i qua CF Rd(7) ← C,Rd(n) ← Rd(n+1),C ← Rd(0) ả ả • Rd D ch ph i s h c ASRASR Rd D ch ph i s h c ả ố ọ ị ả ố ọ ị • SWAP Rd Chuy n đ i Nibbles ể SWAP Rd Chuy n đ i Nibbles ể • L p cậ BSET ss ờ L p cậ BSET ờ • BCLRBCLR ss Xóa cờ Xóa cờ • ậL p bit I/O SBISBI P, bP, b ậ L p bit I/O • CBICBI P, bP, b Clear Bit in I/O Register Clear Bit in I/O Register • BSTBST Rr, bRr, b Bit Store from Register to T Bit Store from Register to T • Bit load from T to Register BLDBLD Rd, bRd, b Bit load from T to Register • ậL p CF SECSEC L p CF C ← 1 C ← 1 • CLCCLC Xóa CF C ← 0 Xóa CF C ← 0 • N ← 1 ậL p NF SENSEN L p NF N ← 1 • CLNCLN Clear Negative Flag Clear Negative Flag N ← 0 N ← 0 • SEZSEZ L p ZF ậL p ZF • CLZCLZ Xóa ZF Xóa ZF

Z,C,N,V,H 1 Z,C,N,V,H 1 Z,C,N,V 1 1 Z,C,N,V Z,C,N,V,H 1 Z,C,N,V,H 1 Z,C,N,V 1 1 Z,C,N,V Rd(n) ← Rd(n+1), n=0..6 Z,C,N,V 1 1 Rd(n) ← Rd(n+1), n=0..6 Z,C,N,V Rd(3..0)  Rd(7..4) 1 1 NoneNone Rd(3..0)  Rd(7..4) SREG(s) ← 1 SREG(s) 1 1 SREG(s) ← 1 SREG(s) SREG(s) 1 1 SREG(s) ← 0 SREG(s) SREG(s) ← 0 None 2 I/O(P, b) ← 1 None 2 I/O(P, b) ← 1 2 2 NoneNone 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Z ← 1 Z ← 1 Z ← 0 Z ← 0

NoneNone CC CC NN NN ZZ ZZ

99

́ ̣ ̉

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

́ ̣ ̉

CAC LÊNH KIÊM TRA BIT CAC LÊNH KIÊM TRA BIT

ắ ổ ắ ổ

ậ ậ

ậ ậ

ộ ộ

• SEISEI Cho phép ng t t ng I ← 1 I Cho phép ng t t ng I ← 1 I • CLICLI C m ng t c ng II I ← 0 C m ng t c ng ắ ổ ấ I ← 0 ắ ổ ấ • SESSES L p c ki m tra d u S ← 1 S L p c ki m tra d u ấ ờ ể ậ S ← 1 S ấ ờ ể ậ • CLSCLS Xóa c ki m tra d u SS S ← 0 Xóa c ki m tra d u ấ ờ ể S ← 0 ấ ờ ể • SEVSEV L p c tràn bù 2 V ← 1 V L p c tràn bù 2 ờ V ← 1 V ờ • CLVCLV Xóa c tràn bù 2 VV V ← 0 Xóa c tràn bù 2 ờ V ← 0 ờ • SETSET L p T trong SREG T ← 1 T ậL p T trong SREG T ← 1 T • CLTCLT Xóa T trong SREG TT T ← 0 Xóa T trong SREG T ← 0 • SEHSEH L p c HF trong SREG H ←1 H L p c HF trong SREG ờ H ←1 H ờ • CLHCLH Xóa c HF trong SREG HH Xóa c HF trong SREG H ← 0 ờ H ← 0 ờ • NOPNOP Không h at đ ng NoneNone Không h at đ ng ọ ọ • SLEEP NoneNone NgủNgủ SLEEP • WDRWDR Watchdog Reset NoneNone Watchdog Reset

11 11 11 11 11 11 11 11 11 11 11 11 11

1010

́ ̣ ̉

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

6.2 C U TRÚC L NH H P NG 6.2 C U TRÚC L NH H P NG

Ợ Ợ

Ấ Ấ

Ệ Ệ

Ữ Ữ

ỉ ỉ

ị ủ ị ủ

6.2.1 Các ch th trong assembler ị 6.2.1 Các ch th trong assembler ị 6.2.2 Cú pháp các ch th c a assembler ỉ 6.2.2 Cú pháp các ch th c a assembler ỉ 6.2.3 Các bi u th c trong assembler ứ 6.2.3 Các bi u th c trong assembler ứ

ể ể

1111

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

6.2.1 Các ch th trong assembler ị 6.2.1 Các ch th trong assembler ị

ỉ ỉ

 H H

Ị Ị

Ẫ Ẫ

ƯỚ ƯỚ

Ữ Ữ ứ ứ

ự ự ệ ệ ệ ệ ợ ợ

ồ ồ ỉ ỉ ệ ệ ớ ớ ợ ợ ị ị

ị ườ ị ườ

NG D N TRÌNH D CH H P NG (ASSEMBLER) Ợ NG D N TRÌNH D CH H P NG (ASSEMBLER) Ợ Assembler làm vi c trên các file ngu n ch a đ ng các l nh g i nh ớ Assembler làm vi c trên các file ngu n ch a đ ng các l nh g i nh ớ (mnemonic), các nhãn (label) và các ch th (directive). L nh g i nh và (mnemonic), các nhãn (label) và các ch th (directive). L nh g i nh và ch th th ch th th M t dòng mã (code) không đ M t dòng mã (code) không đ

c h n 120 ký t c h n 120 ký t ng kèm theo các toán h ng (operand). ng kèm theo các toán h ng (operand). ượ ượ ạ ạ ơ ơ ỉ ỉ ộ ộ . ự . ự

1 trong 4 d ng sau: 1 trong 4 d ng sau: ộ ộ ể ở ể ở ạ ạ

ỉ ỉ ị ị

ạ ạ ạ ạ

M t dòng nh p vào có th ậ M t dòng nh p vào có th ậ ch th [các toán h ng] [ghi chú] 1. [Nhãn:] ch th [các toán h ng] [ghi chú] 1. [Nhãn:] l nh [các toán h ng] [ghi chú] 2. [Nhãn:] ệ l nh [các toán h ng] [ghi chú] 2. [Nhãn:] ệ 3. Ghi chú (comment) 3. Ghi chú (comment) 4. Dòng tr ng r ng ố 4. Dòng tr ng r ng ố ỗ ỗ

1212

Các ghi chú đ Các ghi chú đ đ u dòng: đ u dòng: ượ ượ c b t đ u b ng d u “;” ằ c b t đ u b ng d u “;” ằ ắ ầ ắ ầ ấ ấ ở ầ ở ầ

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

(tt)(tt)

6.2.1 Các ch th trong assembler ị 6.2.1 Các ch th trong assembler ị

ỉ ỉ

Ví d : đo n ch Ví d : đo n ch ng trình nh ng trình nh ụ ụ ạ ạ ươ ươ ỏ ỏ

ặ ặ

1313

; Doan chuong trinh vi du ; Doan chuong trinh vi du label: .EQU var1=100 label: .EQU var1=100 .EQU var2=200 .EQU var2=200 test: rjmp test test: rjmp test ặ; Đ t var1 = 100 ; Đ t var1 = 100 ặ; Đ t var2 = 200 ; Đ t var2 = 200 ; Vòng l p vô h n ạ ặ ; Vòng l p vô h n ạ ặ

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

(tt)(tt)

6.2.1 Các ch th trong assembler ị 6.2.1 Các ch th trong assembler ị

ỉ ỉ

 Gi Gi

ả ả

i thích các ch th ị i thích các ch th ị

ỉ ỉ

Mô tả

Ch thỉ

Đ t byte cho bi n

BYTE

ế

Đo n mã l nh

CSEG

Đ nh nghĩa các byte h ng

DB

Đ t tên ký hi u cho thanh ghi

DEF

Ch đ nh CPU s d ng

DEVICE

ử ụ

Đo n d li u

DSEG

ữ ệ

Đ nh nghĩa các t

(word) h ng

DW

ENDMACRO

K t thúc macro

ế

EQU

Đ t m t ký hi u b ng m t bi u th c ứ ằ

ESEG

Đo n d li u EEPROM

ữ ệ

EXIT

Thoát t

t p tin

ừ ậ

1414

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

(tt)(tt)

6.2.1 Các ch th trong assembler ị 6.2.1 Các ch th trong assembler ị

ỉ ỉ

Ch thỉ

Mô tả

INCLUDE

Đ c ngu n t

t p tin khác

ồ ừ ậ

LIST

M t p tin th ng kê

ở ậ

LISTMAC

M t p tin th ng kê c a macro

ở ậ

MACRO

B t đ u ch

ng trình macro

ắ ầ

ươ

NOLIST

T t t p tin th ng kê

ắ ậ

ORG

Đ t đ a ch ban đ u cho ch

ng trình

ặ ị

ươ

SEG

Đ t ký hi u cho m t bi u th c ứ

1515

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

6.2.2 Cú pháp các ch th c a assembler ỉ 6.2.2 Cú pháp các ch th c a assembler ỉ

ị ủ ị ủ

• Ch th BYTE: Ch th BYTE: ị ỉ ỉ ị • Cú pháp: Cú pháp: Label: Label:

bi uth c .BYTE bi uth c ể .BYTE ể

ứ ứ

• Ví d :ụVí d :ụ

.DSEG .DSEG

var1: .BYTE 1 var1: .BYTE 1 table: .BYTE tab_size table: .BYTE tab_size ; reserve 1 byte to var1 ; reserve 1 byte to var1 ; reserve tab_size bytes ; reserve tab_size bytes

.CSEG .CSEG

1616

ldi r30, low(var1) ldi r30, low(var1) ldi r31, high(var1) ldi r31, high(var1) ld r1, Z ld r1, Z ; Load Z register low ; Load Z register low ; Load Z register high ; Load Z register high ; Load VAR1 into register 1 ; Load VAR1 into register 1

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

(tt)(tt)

6.2.2 Cú pháp các ch th c a assembler ỉ 6.2.2 Cú pháp các ch th c a assembler ỉ

ị ủ ị ủ

; L u ý có d u “.” ; L u ý có d u “.”

đ u đ u

ư ư

ấ ấ

ở ầ ở ầ

đ đ t tr đ đ t tr c b nh trong b nh ch c b nh trong b nh ch ng trình ng trình ể ặ ướ ể ặ ướ ộ ộ ộ ộ ớ ớ ớ ớ ươ ươ

bi uth c bi uth c

ứ ứ

ể ể

• Ch th CSEG: Ch th CSEG: ị ỉ ỉ ị • Cú pháp: Cú pháp: .CSEG .CSEG • Ch th DB: Ch th DB: ị ỉ ị ỉ ho c b nh EEPROM. ớ ộ ặ ho c b nh EEPROM. ặ ộ ớ • Cú pháp: Cú pháp: .DB.DB • Ví d :ụVí d :ụ

.CSEG .CSEG

consts: .DB 0, 255, 0b01010101, -128, 0xaa consts: .DB 0, 255, 0b01010101, -128, 0xaa

.ESEG .ESEG

1717

eeconst: .DB 0xff eeconst: .DB 0xff

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

(tt)(tt)

6.2.2 Cú pháp các ch th c a assembler ỉ 6.2.2 Cú pháp các ch th c a assembler ỉ

ị ủ ị ủ

đ t ký hi u cho các thanh ghi đ t ký hi u cho các thanh ghi ệ ệ ặ ặ

• Ch th DEF: Ch th DEF: ị ỉ ỉ ị • Cú pháp: Cú pháp: .DEF Symbol = Register .DEF Symbol = Register

.DEF temp = R16 .DEF temp = R16 .DEF ior = R0 .DEF ior = R0 .CSEG .CSEG

ldi temp, 0xf0 ; Load 0xf0 into temp register ldi temp, 0xf0 ; Load 0xf0 into temp register in ior, 0x3f ; Read SREG into ior register in ior, 0x3f ; Read SREG into ior register eor temp, ior ; Exclusive or temp and ior eor temp, ior ; Exclusive or temp and ior

1818

• Ví d :ụVí d :ụ

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

(tt)(tt)

6.2.2 Cú pháp các ch th c a assembler ỉ 6.2.2 Cú pháp các ch th c a assembler ỉ

ị ủ ị ủ

Ch đ nh CPU s d ng Ch đ nh CPU s d ng ử ụ ử ụ ị ị ỉ ỉ

• Ch th DEVICE: Ch th DEVICE: ị ỉ ỉ ị • Cú pháp: Cú pháp: .DEVICE TênCPU .DEVICE TênCPU

• Ví d :ụVí d :ụ

Cho bi Cho bi t b t đ u đo n d li u t b t đ u đo n d li u ế ắ ầ ế ắ ầ ữ ệ ữ ệ ạ ạ

.DEVICE ATMEGA16 .DEVICE ATMEGA16 • Ch th DSEG: Ch th DSEG: ị ỉ ị ỉ • Cú pháp: Cú pháp: .DSEG .DSEG

• Ví d :ụVí d :ụ

.DSEG .DSEG

1919

var1: .BYTE 1 var1: .BYTE 1 table: .BYTE tab_size table: .BYTE tab_size ; Start data segment ; Start data segment ; reserve 1 byte to var1 ; reserve 1 byte to var1 ; reserve tab_size bytes. ; reserve tab_size bytes.

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

(tt)(tt)

6.2.2 Cú pháp các ch th c a assembler ỉ 6.2.2 Cú pháp các ch th c a assembler ỉ

ị ủ ị ủ

Đ nh nghĩa các t Đ nh nghĩa các t h ng trong b nh ch h ng trong b nh ch ng trình ng trình ừ ằ ừ ằ ộ ộ ớ ớ ươ ươ ị ị

• Ch th DW: Ch th DW: ị ỉ ị ỉ ho c b nh EEPROM. ớ ộ ặ ho c b nh EEPROM. ặ ộ ớ • Cú pháp: Cú pháp: Label: .DW bi uth c ứ Label: .DW bi uth c ứ

ể ể

• Ví d :ụVí d :ụ

.CSEG .CSEG

varlist:.DW 0,0xffff,0b1001110001010101,-32768,65535 varlist:.DW 0,0xffff,0b1001110001010101,-32768,65535

.ESEG .ESEG

2020

eevar: .DW 0xffff eevar: .DW 0xffff

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

(tt)(tt)

6.2.2 Cú pháp các ch th c a assembler ỉ 6.2.2 Cú pháp các ch th c a assembler ỉ

ị ủ ị ủ

ế ếK t thúc macro K t thúc macro

• Ch th ENMACRO: Ch th ENMACRO: ị ỉ ị ỉ • Cú pháp: Cú pháp:

.ENDMACRO .ENDMACRO

• Ví d :ụVí d :ụ

.MACRO SUBI16 .MACRO SUBI16

subi r16, low(@0) subi r16, low(@0) sbci r17, high(@0) sbci r17, high(@0)

2121

.ENDMACRO .ENDMACRO ; Start macro definition ; Start macro definition ; Subtract low byte ; Subtract low byte ; Subtract high byte ; Subtract high byte ; End macro definition ; End macro definition

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

(tt)(tt)

6.2.2 Cú pháp các ch th c a assembler ỉ 6.2.2 Cú pháp các ch th c a assembler ỉ

ị ủ ị ủ

Gán m t giá tr ị ộ Gán m t giá tr ị ộ

• Ch th EQU: Ch th EQU: ị ỉ ỉ ị • Cú pháp: Cú pháp:

.EQU label = expression .EQU label = expression

• Ví d :ụVí d :ụ

Xác đ nh b t đ u c a đo n d li u EEPROM Xác đ nh b t đ u c a đo n d li u EEPROM ị ị ắ ầ ắ ầ ữ ệ ữ ệ ủ ủ ạ ạ

.EQU io_offset = 0x23 .EQU io_offset = 0x23 .EQU porta = io_offset + 2 .EQU porta = io_offset + 2 • Ch th ESEG: Ch th ESEG: ị ỉ ỉ ị • Cú pháp: Cú pháp: .ESEG .ESEG

• Ví d :ụVí d :ụ

..DSEG DSEG

; Start data segment ; Start data segment

vartab: .BYTE 4 ; Reserve 4 bytes in SRAM vartab: .BYTE 4 ; Reserve 4 bytes in SRAM

2222

.ESEG .ESEG

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

eevar: .DW 0xff0f ; Initialize one word in EEPROM eevar: .DW 0xff0f ; Initialize one word in EEPROM ̀ Ử ̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

(tt)(tt)

6.2.2 Cú pháp các ch th c a assembler ỉ 6.2.2 Cú pháp các ch th c a assembler ỉ

ị ủ ị ủ

D ng h p d ch ợ D ng h p d ch ợ ừ ừ ị ị

assembler đ c các file đ ọ assembler đ c các file đ ọ ượ ượ c ch rõ ỉ c ch rõ ỉ

• Ch th EXIT: Ch th EXIT: ị ỉ ỉ ị • Cú pháp: Cú pháp: .EXIT .EXIT • Ch th INCLUDE: Ch th INCLUDE: ị ỉ ị ỉ • Cú pháp: Cú pháp:

.INCLUDE “filename” .INCLUDE “filename”

• Ví d :ụVí d :ụ

..INCLUDE “iodefs.asm” INCLUDE “iodefs.asm”

2323

; Include I/O definitions ; Include I/O definitions

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

(tt)(tt)

6.2.2 Cú pháp các ch th c a assembler ỉ 6.2.2 Cú pháp các ch th c a assembler ỉ

ị ủ ị ủ

M file th ng kê M file th ng kê ố ố ở ở

• Ch th LIST: Ch th LIST: ị ỉ ỉ ị • Cú pháp: Cú pháp: .LIST .LIST

• Ví d :ụVí d :ụ

2424

.NOLIST .NOLIST .INCLUDE “macro.inc” .INCLUDE “macro.inc” .INCLUDE “const.def” .INCLUDE “const.def” .LIST .LIST ; Disable listfile generation ; Disable listfile generation ; The included files will not ; The included files will not ; be shown in the listfile ; be shown in the listfile ; Reenable listfile generation ; Reenable listfile generation

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

(tt)(tt)

6.2.2 Cú pháp các ch th c a assembler ỉ 6.2.2 Cú pháp các ch th c a assembler ỉ

ị ủ ị ủ

t khi t khi ị ị ế ế

c cho th y trong file c cho th y trong file Ch th này báo cho assembler bi Ch th này báo cho assembler bi ượ ượ ỉ ỉ ể ể ấ ấ

ọ ự ọ ự c t o b i assembler c t o b i assembler c g i, s khai tri n macro đ c g i, s khai tri n macro đ ượ ạ ượ ạ ở ở

• Ch th LISTMAC: Ch th LISTMAC: ị ỉ ị ỉ macro đ ượ macro đ ượ th ng kê đ ố th ng kê đ ố • Cú pháp: Cú pháp:

.LISTMAC .LISTMAC

..MACRO MACX MACRO MACX

• Ví d :ụVí d :ụ

add r0,@0 add r0,@0

.ENDMACRO .ENDMACRO .LISTMAC .LISTMAC

2525

MACX r2,r1 MACX r2,r1 ; Define an example macro ; Define an example macro ; Do something ; Do something ; End macro definition ; End macro definition ; Enable macro expansion ; Enable macro expansion ; Call macro, show expansion ; Call macro, show expansion

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

(tt)(tt)

6.2.2 Cú pháp các ch th c a assembler ỉ 6.2.2 Cú pháp các ch th c a assembler ỉ

ị ủ ị ủ

B t đ u macro B t đ u macro ắ ầ ắ ầ

• Ch th MACRO: Ch th MACRO: ị ỉ ỉ ị • Cú pháp: Cú pháp:

.MACRO macroname .MACRO macroname

• Ví d :ụVí d :ụ

.MACRO SUBI16 .MACRO SUBI16

subi @1,low(@0) subi @1,low(@0) sbci @2,high(@0) sbci @2,high(@0)

; Start macro definition ; Start macro definition ; Subtract low byte ; Subtract low byte ; Subtract high byte ; Subtract high byte ; End macro definition ; End macro definition

T t vi c phát file th ng kê T t vi c phát file th ng kê ố ố ệ ệ ắ ắ

2626

.ENDMACRO .ENDMACRO • Ch th NOLIST: Ch th NOLIST: ị ỉ ỉ ị • Cú pháp: Cú pháp: .NOLIST .NOLIST

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

(tt)(tt)

6.2.2 Cú pháp các ch th c a assembler ỉ 6.2.2 Cú pháp các ch th c a assembler ỉ

ị ủ ị ủ

Đ t giá tr đ m Đ t giá tr đ m ị ế ị ế ặ ặ

• Ch th ORG: Ch th ORG: ị ỉ ỉ ị • Cú pháp: Cú pháp:

.ORG expression .ORG expression

• Ví d :ụVí d :ụ

.DSEG .DSEG .ORG 0x67 .ORG 0x67 ; Start data segment ; Start data segment ; Set SRAM address to hex 67 ; Set SRAM address to hex 67

adr.67H variable: .BYTE 1 ; Reserve a byte at SRAM adr.67H variable: .BYTE 1 ; Reserve a byte at SRAM ; Start EEPROM Segment ; Start EEPROM Segment ; Set EEPROM location counter ; Set EEPROM location counter .ESEG .ESEG .ORG 0x20 .ORG 0x20

eevar: .DW 0xfeff ; Initialize one word eevar: .DW 0xfeff ; Initialize one word

.CSEG .CSEG .ORG 0x10 .ORG 0x10 ; Set Program Counter to hex 10 ; Set Program Counter to hex 10

2727

mov r0,r1 ; Do something mov r0,r1 ; Do something

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

(tt)(tt)

6.2.2 Cú pháp các ch th c a assembler ỉ 6.2.2 Cú pháp các ch th c a assembler ỉ

ị ủ ị ủ

B t đ u macro B t đ u macro ắ ầ ắ ầ

• Ch th SET: Ch th SET: ị ỉ ỉ ị • Cú pháp: Cú pháp:

.SET label = expression .SET label = expression

• Ví d :ụVí d :ụ

2828

.SET io_offset = 0x23 .SET io_offset = 0x23 .SET porta = io_offset + 2 .SET porta = io_offset + 2

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

6.2.3 Các bi u th c trong assembler ứ 6.2.3 Các bi u th c trong assembler ứ

ể ể

(operator) và (operator) và ử ử ạ ạ ể ể

c giá tr c a giá ị ủ c giá tr c a giá ị ủ ượ ượ ườ ườ ậ ậ ở ở

i dùng mà nó nh n đ i dùng mà nó nh n đ ệ ệ

ị ị ỉ ỉ

ạ ạ

ư ư

2929

Bi u th c có th bao hàm các toán h ng (operand), các toán t ể ứ Bi u th c có th bao hàm các toán h ng (operand), các toán t ể ứ các hàm (function) các hàm (function)  Toán h ng: Toán h ng: ạ ạ Các d ng toán h ng: ạ ạ Các d ng toán h ng: ạ ạ • Các nhãn đ c đ nh nghĩa b i ng Các nhãn đ ị ượ c đ nh nghĩa b i ng ị ượ n i mà chúng xu t hi n. tr đ m v trí ấ ở ơ ị ị ế n i mà chúng xu t hi n. tr đ m v trí ở ơ ấ ị ị ế • Các bi n ng Các bi n ng c đ nh nghĩa b ng ch th SET. i dùng đ ằ ượ ị ườ ế c đ nh nghĩa b ng ch th SET. i dùng đ ế ượ ị ườ ằ • Các h ng s nguyên, các h ng có d ng: Các h ng s nguyên, các h ng có d ng: ằ ố ằ ằ ố ằ - Th p phân: nh 10, 255. ậ - Th p phân: nh 10, 255. ậ - Th p l c: nh 0x0a, 0xff ho c $0a, $ff. ặ ư ậ ụ - Th p l c: nh 0x0a, 0xff ho c $0a, $ff. ặ ư ậ ụ 0b00001010, 0b11111111. - Nh phân: nh ư 0b00001010, 0b11111111. ị - Nh phân: nh ư ị • PC: giá tr hi n hành c a b đ m v trí b nh ch PC: giá tr hi n hành c a b đ m v trí b nh ch ng trình. ng trình. ủ ộ ế ủ ộ ế ớ ươ ớ ươ ị ệ ị ệ ộ ộ ị ị

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

6.2.3 Các bi u th c trong assembler ứ 6.2.3 Các bi u th c trong assembler ứ

ể ể

ươ ươ

ể ể ể ể ể ể ộ ộ ộ ộ ộ ộ

ể ể ộ ộ

ứ ứ ể ể ộ ộ

ứ ứ

 Hàm: Hàm: Các d ng c a hàm: ủ ạ Các d ng c a hàm: ủ ạ • LOW(bi u th c) tr l LOW(bi u th c) ả ạ ứ tr l ể ả ạ ứ ể • HIGH(bi u th c) tr l HIGH(bi u th c) ả ạ ứ tr l ể ả ạ ứ ể • BYTE2(bi u th c) là hàm t BYTE2(bi u th c) ứ là hàm t ể ứ ể • BYTE3(bi u th c) tr l BYTE3(bi u th c) ả ạ ứ tr l ể ả ạ ứ ể • BYTE4(bi u th c) tr l BYTE4(bi u th c) ả ạ ứ tr l ể ả ạ ứ ể • LWRD(bi u th c) tr l LWRD(bi u th c) ả ạ ứ tr l ể ả ạ ứ ể • HWRD(bi u th c) tr l HWRD(bi u th c) ả ạ ứ tr l ể ả ạ ứ ể • AGE(bi u th c) tr l AGE(bi u th c) ả ạ ứ tr l ể ả ạ ứ ể • EXP2(bi u th c) tr l EXP2(bi u th c) ả ạ ứ tr l ể ả ạ ứ ể • LOG2(bi u th c) tr l LOG2(bi u th c) ả ạ ứ tr l ể ả ạ ứ ể

3030

i byte th p c a bi u th c. ể ứ ấ ủ i byte th p c a bi u th c. ể ứ ấ ủ i byte cao c a bi u th c. ứ ể ủ i byte cao c a bi u th c. ứ ể ủ nh HIGH. ng t ự ư ng t nh HIGH. ự ư i byte th 3 c a m t bi u th c. ứ ủ ứ i byte th 3 c a m t bi u th c. ứ ủ ứ i byte th 4 c a m t bi u th c. ứ ủ ứ i byte th 4 c a m t bi u th c. ứ ủ ứ i các bit 0-15 c a m t bi u th c. ứ ủ i các bit 0-15 c a m t bi u th c. ứ ủ i các bit 16-31 c a m t bi u th c. ứ ủ i các bit 16-31 c a m t bi u th c. ứ ủ i các bit 16-21 c a m t bi u th c. ủ i các bit 16-21 c a m t bi u th c. ủ i 2^(bi u th c). ể i 2^(bi u th c). ể i ph n s nguyên c a log2(bi u th c). ủ ầ ố i ph n s nguyên c a log2(bi u th c). ầ ố ủ ứ ứ ể ể

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

6.2.3 Các bi u th c trong assembler ứ 6.2.3 Các bi u th c trong assembler ứ

ể ể

Đ u tiên

Toán tử

Ký hi uệ

ộ ư

Mô tả

ế

NOT

!

14

ế

ử ằ

ế ứ

nh t nguyên. K t qu = 1 n u bi u Toán t th c b ng 0, k t qu =0 n u bi u th c khác ế ứ 0. ldi r16, !0xf0 ; Load r16 with 0x00

t c các bit

Bitwise NOT

~

14

nh t nguyên. Đ o t Toán t ấ ử trong bi u th c. ứ ể ldi r16, ~0xf0 ; Load r16 with 0x0f

nh t nguyên. Đ o d u s h c. ả

ố ọ

-

14

D u trấ

Toán t ldi r16,-2 ; Load -2(0xfe) in r16

nh phân. Tích s c a hai bi u th c. ố ủ

Phép nhân

*

13

Toán t ử ldi r30,label*2 ; Load r30 with label*2

3131

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

6.2.3 Các bi u th c trong assembler ứ 6.2.3 Các bi u th c trong assembler ứ

ể ể

Đ u tiên

Toán tử

Ký hi uệ

ộ ư

Mô tả

ng s nguyên c a 2

ươ

Phép chia

/

13

Toán t nh phân. Th ử bi u th c. ứ ể ldi r30,label/2 ; Load r30 with label/2

nh phân. T ng c a 2 bi u th c ứ

+

12

Phép c ngộ

Toán t ử ldi r30,c1+c2 ; Load r30 with c1+c2

nh phân. Hi u c a 2 bi u th c.

-

12

Phép trừ

Toán t ử ldi r17,c1-c2 ;Load r17 with c1-c2

nh phân. D ch trái bi u th c m t

D ch trái

<<

11

Toán t ử s v trí. ố ị ldi r17,1<

3232

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

6.2.3 Các bi u th c trong assembler ứ 6.2.3 Các bi u th c trong assembler ứ

ể ể

Đ u tiên

Toán tử

Ký hi uệ

ộ ư

Mô tả

nh phân. D ch ph i bi u th c m t

>>

11

D ch ph i ả

Toán t ử s v trí. ố ị ldi r17, c1>>c2

Toán t

nh phân.

<

10

Nh h n ỏ ơ

Toán t

nh phân.

Nh h n b ng

<=

10

ỏ ơ

Toán t

nh phân.

L n h n

>

10

ơ

Toán t

nh phân.

>=

10

L n h n b ng ơ

Toán t

nh phân.

==

9

B ngằ

Toán t

nh phân.

Khác

!=

9

3333

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣

6.2.3 Các bi u th c trong assembler ứ 6.2.3 Các bi u th c trong assembler ứ

ể ể

Đ u tiên

Toán tử

Ký hi uệ

ộ ư

Mô tả

nh phân. And t ng bit gi a 2 bi u ừ

Bitwise And

&

8

Toán t th c.ứ ldi r18,High(c1&c2) ;Load r18 with an expression

nh phân. Exclusive Or gi a 2 bi u

Bitwise Xor

^

7

Toán t th c.ứ ldi r18,Low(c1^c2)

nh phân. Or t ng bit gi a 2 bi u

Bitwise Or

|

6

Toán t th c.ứ ldi r18,Low(c1|c2)

And

&&

5

nh phân. K t qu = 1 n u c 2 Toán t ế ế ả ử ị bi u th c khác 0, ng i k t qu = 0 c l ượ ạ ế ứ ể ldi r18,Low(c1&&c2)

ế

Or

||

4

ế c l

ộ i k t

ị ể

nh phân. K t qu = 1 n u m t ượ ạ ế

Toán t trong hai bi u th c khác 0, ng qu = 0. ả ldi r18,Low(c1||c2)

3434

̉ ̣ ́

GIANG VIÊN: THS. PHAM THÊ DUY BÔ MÔN: ĐIÊU KHIÊN VA X LY TIN HIÊU

www.ptit.edu.vn KY THUÂT VI X LY Ử

̀ Ử

̃ ̣ ́ ̣ ̀ ̉ ́ ́ ̣