Chương 3 : Lập trình hợp ngữ Giáo trình Vi xử lý
Số trang: 18
Loại file: pdf
Dung lượng: 354.26 KB
Lượt xem: 11
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Ngôn ngữ assembly giữa ngôn ngữ máy và ngôn ngữ cấp cao. Ngôn ngữ cấp cao được đặc trưng như: Pascal, C ... Còn chương trình ngôn ngữ máy là một chuỗi các byte nhị phân được đặc trưng bởi các lệnh mà máy tính có thể thực thi. Ngôn ngữ assembly thay thế các mã nhị phân của ngôn ngữ máy để sử dụng các “thuật nhớ“ dễ dàng trong quá trình lập trình. Ví dụ lệnh cộng trong ngôn ngữ máy được đặc trưng bởi mã nhị phân “10110011” trong khi ngôn ngữ assembly là “ADD“. Một chương...
Nội dung trích xuất từ tài liệu:
Chương 3 : Lập trình hợp ngữ Giáo trình Vi xử lýChương 3 : Lập trình hợp ngữ 1 Giá trình Vi xử lý Chương 3 LẬP TRÌNH HỢP NGỮ3.1. TỔNG QUAN VỀ TRÌNH DỊCH HỢP NGỮ3.1.1. Giới thiệu : Ngôn ngữ assembly giữa ngôn ngữ máy và ngôn ngữ cấp cao. Ngôn ngữ cấp cao đượcđặc trưng như: Pascal, C ... Còn chương trình ngôn ngữ máy là một chuỗi các byte nhị phânđược đặc trưng bởi các lệnh mà máy tính có thể thực thi. Ngôn ngữ assembly thay thế các mã nhị phân của ngôn ngữ máy để sử dụng các “thuậtnhớ“ dễ dàng trong quá trình lập trình. Ví dụ lệnh cộng trong ngôn ngữ máy được đặc trưngbởi mã nhị phân “10110011” trong khi ngôn ngữ assembly là “ADD“. Một chương trình ngôn ngữ assembly không thể thực thi bởi máy tính mà nó phải đượcdịch sang mã nhị phân ngôn ngữ máy. Một linker là một chương trình mà nó kết hợp các chương trình đặc trưng Relocatable(modul) và thiết kế một chương trình đặc trưng tuyệt đối thực thi bằng máy tính. Segment là một phần của bộ nhớ mã hoặc dữ liệu, nó có thể tái định vị được(Relocatable) hoặc tuyệt đối (Absolute ). Segment Relocatable có tên, kiểu và có thể đượckết nối với Segment cục bộ khác. Segment Absolute không có tên và không thể đựơc kết nốiSegment khác. Modul chứa 1 hoặc nhiều segment hay các segment cục bộ . Một modul có thể là một“file” ở nhiều trường hợp cá biệt . Một chương trình Modul Absolute đơn được hòa vào toàn bộ các Segment Absolute vàSegment Relocatable từ tất cả các mode nhập. Chương trình chỉ chứa các mã nhị phân thay cho các lệnh (với các địa chỉ và các hằngdữ liệu ) được hiểu bởi máy tính.3.1.2. Hoạt động của trình biên dịch (Assembler Opera tion) Có nhiều trình biên dịch với mục đích khác nhau có tác dụng là dễ hiểu các ứng dụng viđiều khiển. ASM51 là tiêu biểu chuẩn biên dịch của họ MSC-51. ASM51 là trình biên dịchmạnh có tác dụng hữu hiệu trên hệ thống phát triển INTEL và họ IBM PC của máy vi tính. ASM51 được gọi hiện lên từ sự chỉ dẫn của hệ thống bởi: ASM51 Source file (Assembly Control). Trình biên dịch nhận một file nguồn với tư cách là ngõ nhập (PROGRAM.SCR) và họphát ra một file đối tượng (PROGRAM.OBJ) và file listing (PROGRAM.LST).Canquynhon.blogtiengviet.net Đại học Quy NhơnChương 3 : Lập trình hợp ngữ 2 Giá trình Vi xử lý Hình 3.1: Hợp dịch một chương trình nguồn Vì hầu hết các biên dịch xem xét chương trình nguồn 2 lần trong lúc thi hành sự dịchngôn ngữ máy, nên chúng được mô tả qua 2 Pass biên dịch là Pass1 và Pass2. Trong pass1, file nguồn được xem xét từng dòng và bảng ký hiệu xây dựng. Bộ đếm Location mặc nhiên chọn 0 hoặc được đặt bởi chỉ thị ORG (đặt Origin). Cũng như file được xem xét, bộ đếm Location được tăng lên bằng độ dài mỗi lệnh. Chỉ thị data định nghĩa (đặc biệt hoặc DW) tăng bộ đếm Location bằng với số byte địnhrõ, các chỉ thị nhớ lưu trữ (DSO tăng bộ đếm Location bởi số byte dự trữ). Mỗi lần mộtnhãn được tìm thấy ở sự bắt đầu của một đường, thì nó được đặc trong bảng ký hiệu theogiá trị hiện hành của bộ đếm Location. Các ký hiệu được định nghĩa bởi dùng các chỉ thịtương đương (EQU) được đặc trong bảng ký hiệu, được cất giữ và sau đó dùng trong pass2. Trong Pass2, file Object và file Listing được tạo ra, các thuật nhớ được biến đổi thànhOpcode và đặt trong các file output. Các toán hạng được xác định giá trị và đặt phía sauOpcode lệnh. Ở nơi các ký hiệu xuất hiện trong toán hạng, các ký hiệu của chúng sẽ đượclấy lại từ bảng ký hiệu (được tạo ra trong suốt Pass1 và dùng trong sự sắp xếp dữ liệu đúnghoặc đúng địa chỉ bởi các lệnh). Bởi vì Pass2 được thực thi nên chương trình nguồn có thể dùng “sự tham khảo trước “là dùng ký hiệu trước khi định nghĩa. File Object nếu tuyệt đối thì chỉ chứa các byte nhị phân (00H - FFH) của chương trìnhngôn ngữ máy. File Object Relocatable chứa một bảng ký hiệu và thông tin khác được yêucầu bởi sự kết hợp và xác định đúng vị trí. File Listing chứa mã nguyên bảng ASCII (20H –7FH) cho cả hai chương trình nguồn và các byte Hexadecimal trong chương trình ngôn ngữmáy.3.1.3. Sự sắp đặt trong trình dịch ngữ Chương trình ngôn ngữ Asembly bao gồm: Các lệnh máy, lời chỉ chị của trình biêndịch, sự điều khiển biên dịch và các chú thích.Canquynhon.blogtiengviet.net Đại học Quy NhơnChương 3 : Lập trình hợp ngữ 3 Giá trình Vi xử lý Các lệnh máy là các kỹ xảo của lệnh có thể thực thi (ví dụ như ANL). Các chỉ thị củatrình biên dịch là các lệnh để trình biên dịch định cấu trúc chương trình, các dữ liệu, kýhiệu, hằng, … (ví dụ Org ). Các sự điều khiển trình biên dịch set các mode của trình biêndịch và điều khiển sự chạy chương trình ...
Nội dung trích xuất từ tài liệu:
Chương 3 : Lập trình hợp ngữ Giáo trình Vi xử lýChương 3 : Lập trình hợp ngữ 1 Giá trình Vi xử lý Chương 3 LẬP TRÌNH HỢP NGỮ3.1. TỔNG QUAN VỀ TRÌNH DỊCH HỢP NGỮ3.1.1. Giới thiệu : Ngôn ngữ assembly giữa ngôn ngữ máy và ngôn ngữ cấp cao. Ngôn ngữ cấp cao đượcđặc trưng như: Pascal, C ... Còn chương trình ngôn ngữ máy là một chuỗi các byte nhị phânđược đặc trưng bởi các lệnh mà máy tính có thể thực thi. Ngôn ngữ assembly thay thế các mã nhị phân của ngôn ngữ máy để sử dụng các “thuậtnhớ“ dễ dàng trong quá trình lập trình. Ví dụ lệnh cộng trong ngôn ngữ máy được đặc trưngbởi mã nhị phân “10110011” trong khi ngôn ngữ assembly là “ADD“. Một chương trình ngôn ngữ assembly không thể thực thi bởi máy tính mà nó phải đượcdịch sang mã nhị phân ngôn ngữ máy. Một linker là một chương trình mà nó kết hợp các chương trình đặc trưng Relocatable(modul) và thiết kế một chương trình đặc trưng tuyệt đối thực thi bằng máy tính. Segment là một phần của bộ nhớ mã hoặc dữ liệu, nó có thể tái định vị được(Relocatable) hoặc tuyệt đối (Absolute ). Segment Relocatable có tên, kiểu và có thể đượckết nối với Segment cục bộ khác. Segment Absolute không có tên và không thể đựơc kết nốiSegment khác. Modul chứa 1 hoặc nhiều segment hay các segment cục bộ . Một modul có thể là một“file” ở nhiều trường hợp cá biệt . Một chương trình Modul Absolute đơn được hòa vào toàn bộ các Segment Absolute vàSegment Relocatable từ tất cả các mode nhập. Chương trình chỉ chứa các mã nhị phân thay cho các lệnh (với các địa chỉ và các hằngdữ liệu ) được hiểu bởi máy tính.3.1.2. Hoạt động của trình biên dịch (Assembler Opera tion) Có nhiều trình biên dịch với mục đích khác nhau có tác dụng là dễ hiểu các ứng dụng viđiều khiển. ASM51 là tiêu biểu chuẩn biên dịch của họ MSC-51. ASM51 là trình biên dịchmạnh có tác dụng hữu hiệu trên hệ thống phát triển INTEL và họ IBM PC của máy vi tính. ASM51 được gọi hiện lên từ sự chỉ dẫn của hệ thống bởi: ASM51 Source file (Assembly Control). Trình biên dịch nhận một file nguồn với tư cách là ngõ nhập (PROGRAM.SCR) và họphát ra một file đối tượng (PROGRAM.OBJ) và file listing (PROGRAM.LST).Canquynhon.blogtiengviet.net Đại học Quy NhơnChương 3 : Lập trình hợp ngữ 2 Giá trình Vi xử lý Hình 3.1: Hợp dịch một chương trình nguồn Vì hầu hết các biên dịch xem xét chương trình nguồn 2 lần trong lúc thi hành sự dịchngôn ngữ máy, nên chúng được mô tả qua 2 Pass biên dịch là Pass1 và Pass2. Trong pass1, file nguồn được xem xét từng dòng và bảng ký hiệu xây dựng. Bộ đếm Location mặc nhiên chọn 0 hoặc được đặt bởi chỉ thị ORG (đặt Origin). Cũng như file được xem xét, bộ đếm Location được tăng lên bằng độ dài mỗi lệnh. Chỉ thị data định nghĩa (đặc biệt hoặc DW) tăng bộ đếm Location bằng với số byte địnhrõ, các chỉ thị nhớ lưu trữ (DSO tăng bộ đếm Location bởi số byte dự trữ). Mỗi lần mộtnhãn được tìm thấy ở sự bắt đầu của một đường, thì nó được đặc trong bảng ký hiệu theogiá trị hiện hành của bộ đếm Location. Các ký hiệu được định nghĩa bởi dùng các chỉ thịtương đương (EQU) được đặc trong bảng ký hiệu, được cất giữ và sau đó dùng trong pass2. Trong Pass2, file Object và file Listing được tạo ra, các thuật nhớ được biến đổi thànhOpcode và đặt trong các file output. Các toán hạng được xác định giá trị và đặt phía sauOpcode lệnh. Ở nơi các ký hiệu xuất hiện trong toán hạng, các ký hiệu của chúng sẽ đượclấy lại từ bảng ký hiệu (được tạo ra trong suốt Pass1 và dùng trong sự sắp xếp dữ liệu đúnghoặc đúng địa chỉ bởi các lệnh). Bởi vì Pass2 được thực thi nên chương trình nguồn có thể dùng “sự tham khảo trước “là dùng ký hiệu trước khi định nghĩa. File Object nếu tuyệt đối thì chỉ chứa các byte nhị phân (00H - FFH) của chương trìnhngôn ngữ máy. File Object Relocatable chứa một bảng ký hiệu và thông tin khác được yêucầu bởi sự kết hợp và xác định đúng vị trí. File Listing chứa mã nguyên bảng ASCII (20H –7FH) cho cả hai chương trình nguồn và các byte Hexadecimal trong chương trình ngôn ngữmáy.3.1.3. Sự sắp đặt trong trình dịch ngữ Chương trình ngôn ngữ Asembly bao gồm: Các lệnh máy, lời chỉ chị của trình biêndịch, sự điều khiển biên dịch và các chú thích.Canquynhon.blogtiengviet.net Đại học Quy NhơnChương 3 : Lập trình hợp ngữ 3 Giá trình Vi xử lý Các lệnh máy là các kỹ xảo của lệnh có thể thực thi (ví dụ như ANL). Các chỉ thị củatrình biên dịch là các lệnh để trình biên dịch định cấu trúc chương trình, các dữ liệu, kýhiệu, hằng, … (ví dụ Org ). Các sự điều khiển trình biên dịch set các mode của trình biêndịch và điều khiển sự chạy chương trình ...
Tìm kiếm theo từ khóa liên quan:
Vi điều khiển điện- điện tử kỹ thuật viễn thông kỹ thuật viễn thôngGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Trí tuệ nhân tạo
12 trang 423 0 0 -
Đề cương chi tiết học phần Vi xử lý
12 trang 288 0 0 -
Giáo trình Vi điều khiển (Nghề: Cơ điện tử - Trình độ: Cao đẳng) - Trường Cao đẳng nghề Ninh Thuận
127 trang 263 0 0 -
79 trang 216 0 0
-
Đồ án: Kỹ thuật xử lý ảnh sử dụng biến đổi Wavelet
41 trang 215 0 0 -
Luận văn Thạc sĩ Kỹ thuật: Ứng dụng Blockchain trong bảo mật IoT
90 trang 186 1 0 -
Báo cáo môn học vi xử lý: Khai thác phần mềm Proteus trong mô phỏng điều khiển
33 trang 177 0 0 -
Giáo trình Vi điều khiển (Nghề: Điện công nghiệp - Cao đẳng) - Trường Cao đẳng Cơ giới (2022)
144 trang 155 0 0 -
Đề cương chi tiết học phần Thực tập Kỹ thuật truyền hình
16 trang 152 0 0 -
Đồ án: Cấu tạo và nguyên lý hoạt động của màn hình LCD monitor
80 trang 138 0 0