Ngôn ngữ điều khiển

Một phần của tài liệu Thiết kế, chế tạo mô hình tay máy gắp sản phẩm (Trang 32 - 33)

Ngôn ngữ sử dụng cho việc lập trình điều khiển sự hoạt động của vi điều khiển họ 8051 là assembly. Ngôn ngữ assembly là ngôn ngữ cấp thấp 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í du,ï 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 trình ngôn ngữ assembly không thể thực thi bởi máy tính mà nó phải được dịch sang mã nhị phân ngôn ngữ máy. Một bước nữa có thể yêu cầu một trình liên kết (linker) để kết hợp các phần của chương trình ở các tập tin riêng rẽ và thiết lập địa chỉ trong bộ nhớ nơi mà chương trình được thực thi. 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ằng dữ liệu) được hiểu bởi máy tính. 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ịch mạ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 từ dấu nhắc hệ thống bằng lệnh :

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). Vì hầu hết các trình biên dịch tập tin nguồn 2 lần trong quá trình dịch tập tin nguồn sang ngôn ngữ máy, chúng còn được gọi là trình dịch hợp ngữ hai bước. Trong bước 1, tập tin nguồn được quét từng dòng một và một bảng ký hiệu (symbol table) được tạo ra. Bộ đếm vị trí LC (location counter) được mặc định bằng 0 hoặc được set ban đầu bởi chỉ dẫn ORG. Khi tập tin được quét, bộ đếm vị trí được tăng bởi kích thước của mỗi một lệnh. Các chỉ dẫn định nghĩa dữ liệu DB hoặc DW tăng bộ đếm vị trí bởi số byte được định nghĩa. Các chỉ dẫn dự trữ (hay dành trước) bộ nhớ DS (reserve memory directive) tăng bộ đếm vị trí bởi số byte được dự trữ. Mỗi một lần tìm thấy một nhãn ở trước một dòng lệnh, nhãn được đặt vào trong bảng ký hiệu cùng với giá trị hiện hành của bộ đếm vị trí. Các ký hiệu được định nghĩa bởi các chỉ dẫn gán (equate directive) như EQU được đặt vào trong bảng ký hiệu được lưu lại và sau đó được sử dụng cho bước 2. Trong bước 2, tập tin đối tượng và tập tin liệt kê được tạo ra, các mã gợi nhớ được chuyển đổi thành Opcode và được đưa vào các tập tin trên. Các toán hạng được xác định giá trị và đặt phía sau Opcode lệnh. Ở nơi các ký hiệu xuất hiện trong toán hạng, các giá trị của chúng được lấy ra từ bảng ký hiệu (được tạo ra trong bước 1) và được dùng để tính toán dữ liệu hoặc địa chỉ cho các lệnh. Tập tin đối tượng, nếu thuộc dạng địa chỉ tuyệt đối chỉ chứa các byte nhị phân (00H - FFH) của chương trình ngôn ngữ máy. Tập tin đối tượng thuộc loại tái định vị cũng sẽ chứa một bảng ký hiệu và các thông tin khác cần cho sự liên kết và định vị sau này. Tập tin liệt kê chứa các mã văn bản ASCII (20H – 7EH) cho chương trình nguồn và các byte số hex trong chương trình mã máy.

Một phần của tài liệu Thiết kế, chế tạo mô hình tay máy gắp sản phẩm (Trang 32 - 33)