- Thanh ghi điều khiển timer (TCON)
3.4.2. Hoạt động của trình biên dịch (Assembler Operation)
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).
ASM51PROGRAM.SCR PROGRAM.SCR
PROGRAM.OBJ
PROGRAM.LST
Hình 3.6. Sơ đồ khối dịch trình Assembly
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 tố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 tố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 tố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.