Bài giảng lý thuyết vi xử lý - Chương 3: Lập trình hợp ngữ cho 8051(tiếp theo) ppt

69 545 0
Bài giảng lý thuyết vi xử lý - Chương 3: Lập trình hợp ngữ cho 8051(tiếp theo) ppt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ÐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINHÐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINH KHOA CÔNG NGHỆ ðIỆN TỬKHOA CÔNG NGHỆ ðIỆN TỬ BỘ MÔN ðIỆN TỬ CÔNG NGHIỆPBỘ MÔN ðIỆN TỬ CÔNG NGHIỆP BÀI GIẢNG THUYẾTBÀI GIẢNG THUYẾT VI XỬ LÝVI XỬ TP. HỒ CHÍ MINHTP. HỒ CHÍ MINH THÁNG 09THÁNG 09 20092009 VI XỬ LÝVI XỬ GiáoGiáo viên: PHẠM QUANG TRÍviên: PHẠM QUANG TRÍ ÐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINHÐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINH KHOA CÔNG NGHỆ ðIỆN TỬKHOA CÔNG NGHỆ ðIỆN TỬ BỘ MÔN ðIỆN TỬ CÔNG NGHIỆPBỘ MÔN ðIỆN TỬ CÔNG NGHIỆP CHƯƠNG 3CHƯƠNG 3 LẬP TRÌNH HỢP NGỮLẬP TRÌNH HỢP NGỮ CHO 8051CHO 8051  NgônNgôn ngữngữ lậplập trìnhtrình cấpcấp thấpthấp  NgônNgôn ngữngữ lậplập trìnhtrình cấpcấp caocao Ngôn ngữ lập trình cấp thấpNgôn ngữ lập trình cấp thấp (Low(Low level programming language)level programming language) LẬP TRÌNH HỢP NGỮ CHO 8051 LẬP TRÌNH HỢP NGỮ CHO 8051 GIỚI THIỆU CHUNGGIỚI THIỆU CHUNG Ngôn ngữ lập trình cấp caoNgôn ngữ lập trình cấp cao (High(High level programming language)level programming language) (Low(Low level programming language)level programming language)  NgônNgôn ngữngữ lậplập trìnhtrình cấpcấp thấpthấp::  NgônNgôn ngữngữ máymáy::  NgônNgôn ngữngữ nhịnhị phânphân tựtự nhiênnhiên màmà CPUCPU cócó thểthể nhậnnhận biếtbiết vàvà thựcthực hiệnhiện  MỗiMỗi câucâu lệnhlệnh ñượcñược biểubiểu diễndiễn bằngbằng chuỗichuỗi cáccác concon sốsố 00 vàvà 11  KhóKhó ñọcñọc hiểuhiểu vàvà khókhó sửsử dụngdụng ñốiñối vớivới concon ngườingười  HợpHợp ngữngữ :: Ngôn ngữ lập trình cấp thấpNgôn ngữ lập trình cấp thấp (Low(Low level programming language)level programming language) LẬP TRÌNH HỢP NGỮ CHO 8051 LẬP TRÌNH HỢP NGỮ CHO 8051 GIỚI THIỆU CHUNGGIỚI THIỆU CHUNG Ngôn ngữ lập trình cấp caoNgôn ngữ lập trình cấp cao (High(High level programming language)level programming language) Hợp ngữHợp ngữ (Assembly language)(Assembly language) HợpHợp ngữngữ ::  ThayThay thếthế cáccác mãmã nhịnhị phânphân bằngbằng cáccác mãmã gợigợi nhớnhớ giúpgiúp dễdễ nhớnhớ vàvà dễdễ lậplập trìnhtrình hơnhơn soso vớivới ngônngôn ngữngữ máymáy  MỗiMỗi câucâu lệnhlệnh tươngtương ứngứng vớivới mộtmột chỉchỉ lệnhlệnh màmà CPUCPU cócó thểthể thựcthực hiệnhiện ñượcñược  ðượcðược thiếtthiết kếkế chocho cáccác khảkhả năngnăng vàvà tậptập lệnhlệnh cụcụ thểthể củacủa mộtmột loạiloại CPUCPU nhấtnhất ñịnhñịnh  SoSo vớivới ngônngôn ngữngữ cấpcấp caocao:: chươngchương trìnhtrình viếtviết khókhó vàvà nhiềunhiều lệnhlệnh hơnhơn  SoSo vớivới ngônngôn ngữngữ cấpcấp caocao:: câucâu lệnhlệnh ngắnngắn gọn,gọn, chươngchương trìnhtrình hoạthoạt ñộngñộng tốctốc ñộñộ nhanhnhanh hơn,hơn, hiệuhiệu suấtsuất tốttốt vàvà chiếmchiếm ítít bộbộ nhớnhớ (Low(Low level programming language)level programming language) Ngôn ngữ máyNgôn ngữ máy (Machine language)(Machine language)  NgônNgôn ngữngữ lậplập trìnhtrình cấpcấp caocao::  SửSử dụngdụng cáccác từtừ vàvà phátphát biểubiểu gầngần giốnggiống vớivới ngônngôn ngữngữ concon ngườingười  MỗiMỗi câucâu lệnhlệnh tươngtương ứngứng vớivới nhiềunhiều chỉchỉ lệnhlệnh trongtrong ngônngôn ngữngữ cấpcấp thấpthấp  SoSo vớivới ngônngôn ngữngữ cấpcấp thấpthấp:: chươngchương trìnhtrình viếtviết dễ,dễ, nhanhnhanh vàvà ítít lệnhlệnh hơnhơn  SoSo vớivới ngônngôn ngữngữ cấpcấp thấpthấp:: câucâu lệnhlệnh dài,dài, chươngchương trìnhtrình hoạthoạt ñộngñộng tốctốc ñộñộ chậmchậm hơn,hơn, hiệuhiệu suấtsuất khôngkhông caocao vàvà chiếmchiếm nhiềunhiều bộbộ nhớnhớ Ngôn ngữ lập trình cấp thấpNgôn ngữ lập trình cấp thấp (Low(Low level programming language)level programming language) LẬP TRÌNH HỢP NGỮ CHO 8051 LẬP TRÌNH HỢP NGỮ CHO 8051 GIỚI THIỆU CHUNGGIỚI THIỆU CHUNG Ngôn ngữ lập trình cấp caoNgôn ngữ lập trình cấp cao (High(High level programming language)level programming language) Hợp ngữHợp ngữ (Assembly language)(Assembly language) khôngkhông caocao vàvà chiếmchiếm nhiềunhiều bộbộ nhớnhớ (Low(Low level programming language)level programming language) Ngôn ngữ máyNgôn ngữ máy (Machine language)(Machine language) LẬP TRÌNH HỢP NGỮ CHO 8051 LẬP TRÌNH HỢP NGỮ CHO 8051 GIỚI THIỆU CHUNGGIỚI THIỆU CHUNG Ngôn ngữ lập trình cấp caoNgôn ngữ lập trình cấp cao (High(High level programming language)level programming language) CPU thực thi chương trìnhCPU thực thi chương trình Các công ñoạn ñể thực thi một chương trìnhCác công ñoạn ñể thực thi một chương trình Ngôn ngữ lập trình cấp thấpNgôn ngữ lập trình cấp thấp LẬP TRÌNH HỢP NGỮ CHO 8051 LẬP TRÌNH HỢP NGỮ CHO 8051 GIỚI THIỆU CHUNGGIỚI THIỆU CHUNG Hợp ngữHợp ngữ (Assembly language)(Assembly language) Ngôn ngữ lập trình cấp thấpNgôn ngữ lập trình cấp thấp (Low(Low level programming language)level programming language) CPU thực thi chương trìnhCPU thực thi chương trình Các công ñoạn ñể thực thi một chương trìnhCác công ñoạn ñể thực thi một chương trình Ngôn ngữ lập trình cấp thấpNgôn ngữ lập trình cấp thấp LẬP TRÌNH HỢP NGỮ CHO 8051 LẬP TRÌNH HỢP NGỮ CHO 8051 GIỚI THIỆU CHUNGGIỚI THIỆU CHUNG Ngôn ngữ lập trình cấp caoNgôn ngữ lập trình cấp cao (High(High level programming language)level programming language) Hợp ngữHợp ngữ (Assembly language)(Assembly language) Ngôn ngữ lập trình cấp thấpNgôn ngữ lập trình cấp thấp (Low(Low level programming language)level programming language) Ngôn ngữ máyNgôn ngữ máy (Machine language)(Machine language) CPU thực thi chương trìnhCPU thực thi chương trình Các công ñoạn ñể thực thi một chương trìnhCác công ñoạn ñể thực thi một chương trình  KhuôngKhuông dạngdạng củacủa mộtmột dòngdòng lệnhlệnh:: [[LabelLabel::]] MnemonicMnemonic [[OperandOperand][][,Operand,Operand][][,Operand,Operand]] [[CommentComment]]  NhãnNhãn (Label)(Label):: BiểuBiểu thịthị ñịañịa chỉchỉ củacủa dòngdòng lệnhlệnh ((hoặchoặc dữdữ liệuliệu)) theotheo sau,sau, ñượcñược dùngdùng trongtrong trườngtrường toántoán hạnghạng củacủa lệnhlệnh rẽrẽ nhánhnhánh  VíVí dụdụ:: MAINMAIN:: MOVMOV A,A, ##2020HH LOOPLOOP :: LẬP TRÌNH HỢP NGỮ CHO 8051 LẬP TRÌNH HỢP NGỮ CHO 8051 KHUÔNG DẠNG CỦA CHƯƠNG TRÌNHKHUÔNG DẠNG CỦA CHƯƠNG TRÌNH LOOPLOOP :: ADDADD A,A, ##0101HH CJNECJNE A,A, ##3535H,H, LOOPLOOP SJMPSJMP $$  LưuLưu ýý vềvề nhãnnhãn::  DoDo ngườingười lậplập trìnhtrình tựtự ñặtñặt (không(không ñượcñược trùngtrùng vớivới từtừ khoá,khoá, mãmã gợigợi nhớ,nhớ, chỉchỉ dẫn,dẫn, toántoán tửtử hoặchoặc kýký hiệuhiệu tiềntiền ñịnhñịnh nghĩa)nghĩa)  BắtBắt ñầuñầu bằngbằng kýký tựtự chữ,chữ, dấudấu chấmchấm hỏihỏi (?),(?), dấudấu gạchgạch dướidưới (_)(_)  DàiDài tốitối ñaña 3131 kýký tựtự  KếtKết thúcthúc bằngbằng dấudấu haihai chấmchấm ((::))  KýKý hiệuhiệu $$ dùngdùng ñểñể thamtham chiếuchiếu ñếnñến vịvị trítrí hiệnhiện tạitại củacủa dòngdòng lệnhlệnh  KhuôngKhuông dạngdạng củacủa mộtmột dòngdòng lệnhlệnh:: [[LabelLabel::]] MnemonicMnemonic [[OperandOperand][][,Operand,Operand][][,Operand,Operand]] [[CommentComment]] •• MãMã gợigợi nhớnhớ (Mnemonic)(Mnemonic):: BiểuBiểu diễndiễn cáccác lệnhlệnh hoặchoặc cáccác chỉchỉ dẫndẫn củacủa chươngchương trìnhtrình dịchdịch hợphợp ngữngữ  VíVí dụdụ:: ORGORG 00000000HH PARPAR EQUEQU 100100 LẬP TRÌNH HỢP NGỮ CHO 8051 LẬP TRÌNH HỢP NGỮ CHO 8051 KHUÔNG DẠNG CỦA CHƯƠNG TRÌNHKHUÔNG DẠNG CỦA CHƯƠNG TRÌNH ACALLACALL BBBBBB CJNECJNE A,A, ##3535H,H, LOOPLOOP JNBJNB PP33 11,, TEST_TEST_11 [...]... L P TRÌNH H P NG CHO 8051 C U TRÚC CHƯƠNG TRÌNH Các ký hi u thư ng dùng cho vi c l p lưu ñ : • Kh i quy t ñ nh (so sánh, ki m tra) tra) • ðư ng ñi c a chương trình trình • H p x • Kh i xu t / nh p p • B t ñ u / K t thúc chương trình trình • K t n i qua trang chương trình trình • X ti n ñ nh nghĩa (chương trình con) con) L P TRÌNH H P NG CHO 8051 C U TRÚC CHƯƠNG TRÌNH Ưu ñi m c a l p trình. .. ho t ñ ng, thu n ti n cho vi c g r i i Các c u trúc ñã ñư c chu n hóa hóa Giúp cho vi c xây d ng các chương trình con ñư c thu n ti n n M i chương trình ñ u có th ñư c vi t b ng cách s d ng ba c u trúc trúc Các c u trúc giúp ta d dàng mô t b ng lưu ñ , gi n ñ cú pháp, gi mã, … • Tăng năng su t c a ngư i vi t l p trình do chương trình ñư c vi t nhanh hơn hơn Khuy t ñi m c a l p trình có c u trúc: trúc:... - N i dung thì: 200H 02H 200H – 02H 201H – 00H 201H 00H 202H – 00H 202H 00H 204H 12H 204H – 12H 205H – 34H 205H 34H 206H – 00H 206H 00H 208H 42H 208H – 42H 209H – 43H 209H 43H 203H – 41H 203H 41H 207H – 02H 207H 02H L P TRÌNH H P NG CHO 8051 C U TRÚC CHƯƠNG TRÌNH Ý nghĩa c a vi c l p trình có c u trúc: trúc: • • • • Gi m ñ ph c t p c a vi c l p trình b ng h p ng C i thi n tính rõ ràng c a chương trình. .. trúc • Vi c th c thi chương trình ch m hơn và ñòi h i nhi u b nh hơn so v i chương trình tương ñương nhưng không có c u trúc trúc • Gi i quy t v n ñ g p khó khăn n u ch s d ng ba c u trúc ñ l p trình trình • Các c u trúc l ng nhau cũng có khó khăn kèm theo theo L P TRÌNH H P NG CHO 8051 CÁC PHÁT BI U (STATEMENT) Công d ng c a c u trúc: trúc: Cung c p cho ta cơ ch cơ b n ñ th c hi n m t công vi c nào... a vi c l p trình b ng h p ng C i thi n tính rõ ràng c a chương trình trình D dàng trong vi c g r i, s a ch a và thay ñ i chương trình trình Giúp cho vi c l p trình h p ng ñ t ñư c nh ng thu n l i r t l n n Các c u trúc thư ng dùng: dùng: • Các phát bi u (Statement) (Statement) • Các vòng l p (Loop) (Loop) • Các l a ch n (Choice) (Choice) Phương pháp th c hi n: n: • Lưu ñ (Flowchart) (Flowchart) • Gi... ISEG, BSEG, XSEG XSEG L P TRÌNH H P NG CHO 8051 CÁC CH D N TRONG L P TRÌNH Ch d n ORG: ORG: • Cú pháp: ORG expression pháp: (expression: (expression: bi u th c) • Thi t l p m t g c m i c a chương trình cho các phát bi u theo sau sau d : ORG 100H 100H ; Thi t l p (PC) = 100H cho l nh theo sau 100H sau Ch d n END: END: • Cú pháp: END pháp: • Là phát bi u k t thúc c a chương trình ngu n n • M i phát... ng th hai ñư c g i là toán h ng Destination) ngu n (Source) Source) L P TRÌNH H P NG CHO 8051 KHUÔNG D NG C A CHƯƠNG TRÌNH Khuông d ng c a m t dòng l nh: nh: [Label:] Mnemonic [Operand][,Operand][,Operand] [Comment] Label: Operand][,Operand][,Operand] Comment] • Chú thích (Comment): Làm cho rõ nghĩa cho chương trình (Comment): trình d : SJMP AAA ; Lenh nhay khong dieu kien den AAA AAA ACALL BBB... nào ñó ñó Thư ng dùng cho vi c gán m t giá tr cho m t bi n ho c g i m t chương trình con con Có th ch là m t phát bi u ho c m t nhóm các phát bi u u L P TRÌNH H P NG CHO 8051 CÁC PHÁT BI U (STATEMENT) Gi mã c a c u trúc: trúc: BEGIN [ Statement 1 ] [ Statement 2 ] [ Statement 3 ] ……………… ……………… [ Statement n ] END Trong ñó: ñó: Statement: Statement: Phát bi u L P TRÌNH H P NG CHO 8051 CÁC PHÁT BI U... P TRÌNH H P NG CHO 8051 CÁC QUI LU T CHO VI C ðÁNH GIÁ BI U TH C Các toán t • • • • • s h c: c: C ng Tr Nhân Chia Modulo + * / MOD (Phép chia l y thương s ) (Phép chia l y s dư) d : MOV MOV MOV MOV MOV A, #10 + 10H 10H A, #10H - 10 10H A, #20 * 2 A, #25 / 7 A, #25 MOD 7 ⇔ ⇔ ⇔ ⇔ ⇔ MOV MOV MOV MOV MOV A, #1AH A, #06H 06H A, #28H 28H A, #03H 03H A, #04H 04H L P TRÌNH H P NG CHO 8051 CÁC QUI LU T CHO. .. (;) L P TRÌNH H P NG CHO 8051 CÁC QUI LU T CHO VI C ðÁNH GIÁ BI U TH C Cách bi u di n các giá tr và h ng s : • Dùng m t cách tư ng minh: minh: d : MOV 20H, E0H 20H, • Dùng ký hi u ti n ñ nh nghĩa: nghĩa: d : MOV SETB 20H, A 20H, ACC ACC.7 • Dùng m t bi u th c: c: d : MOV MOV MOV A, #25 MOD 7 A, #HIGH(1234H) #HIGH(1234H) A, #10 + 10H 10H L P TRÌNH H P NG CHO 8051 CÁC QUI LU T CHO VI C ðÁNH . NGHIỆP CHƯƠNG 3CHƯƠNG 3 LẬP TRÌNH HỢP NGỮLẬP TRÌNH HỢP NGỮ CHO 805 1CHO 8051  NgônNgôn ng ngữ lậplập trìnhtrình cấpcấp thấpthấp  NgônNgôn ng ngữ lậplập trìnhtrình cấpcấp caocao Ngôn ngữ lập trình. ðIỆN TỬ CÔNG NGHIỆP BÀI GIẢNG LÝ THUYẾTBÀI GIẢNG LÝ THUYẾT VI XỬ L VI XỬ LÝ TP. HỒ CHÍ MINHTP. HỒ CHÍ MINH THÁNG 09THÁNG 09 20092009 VI XỬ L VI XỬ LÝ GiáoGiáo vi n: PHẠM QUANG TR vi n: PHẠM QUANG.  HợpHợp ng ngữ :: Ngôn ngữ lập trình cấp thấpNgôn ngữ lập trình cấp thấp (Low(Low level programming language)level programming language) LẬP TRÌNH HỢP NGỮ CHO 8051 LẬP TRÌNH HỢP NGỮ CHO

Ngày đăng: 27/06/2014, 22:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan