V. HOẠT ĐỘNG INTERRUPT CỦA 8051:
1. NGÔN NGỮ MÁY VÀ HỢP NGỮ
Chương trình là một tệp lệnh được đưa vào bộ nhớ cho máy thực hiện. Các lệnh có thể được thể hiện theo nhiều dạng (ngôn ngữ) khác nhau, dạng cơ bản nhất mà máy (CPU) có thể hiểu ngay gọi là ngôn ngữ máy (Machine Language). Tùy theo CPU mà ngơn ngữ máy có một dạng nhất định, điều đó có nghĩa với một loại CPU có một ngơn ngữ máy riêng. Sau đây là một đoạn chương trình ngơn ngữ máy thuộc họ Intel 8086/80x86 :
Lệnh Dạng thập lục phân Dạng nhị phân
1 B4 02 1011 0100 0000 0010
2 80 C2 30 1000 0000 1100 0010 0011 0000
3 50 0101 0000
Đọan chương trình trên gồm 3 câu lệnh có chiều dài lần lược là 2, 3 và1 byte. Byte đầu tiên gọi là mã lệnh hay tác tử (Operation Code) xác định tác vụ mà CPU phải thực hiện, phần còn lại là tác tố (Operand) xác định dữ liệu hoặc nơi chứa dữ liệu mà lệnh tác động vào. Chiều dài các câu lệnh theo qui định của CPU.
Để có thể lập trình với loại ngơn ngữ này, lập trình viên phải biết về tổ chức của máy đang sử dụng.
Vì là ngơn ngữ riêng của máy nên chương trình viết bằng ngơn ngữ này thực hiện rất nhanh và chiếm ít chỗ trong bộ nhớ tuy nhiên vì chương trình viết dưới dạng nhị phân nên rất khó viết và khó nhớ dễ nhầm lẫn.
Hợp ngữ (Assembly Language) là một loại ngơn ngữ giúp lập trình viên viết chương trình dễ dàng hơn thay cho ngơn ngữ máy. Hợp ngữ có dạng như ngơn ngữ máy tức là một lệnh hợp ngữ tương đương với một lệnh của ngơn ngữ máy và cũng có thể một lệnh hợp ngữ tương đương với nhiều lệnh ngôn ngữ máy nhưng khác với ngơn ngữ máy ở chỗ thay vì viết chương trình dưới dạng nhị phân người ta dùng một số ký hiệu tượng trưng dễ nhớ như MOV là lệnh chuyển, ADD là lệnh cộng, SUB là lệnh trừ. Ví dụ 3 lệnh ngơn ngữ máy ở trên có thể viết dưới dạng hợp ngữ như sau:
Lệnh Dạng ngôn ngữ máy Dạng hợp ngữ
1 B4 02 MOV AH, 02h
2 80 C2 30 ADD DL, 30h
3 50 PUSH AX
Dĩ nhiên là máy khơng thể hiểu được chương trình viết bằng hợp ngữ nên phải qua giai đoạn dịch, để dịch chương trình từ hợp ngữ sang ngơng ngữ máy. Chương trình làm nhiệm vụ dịch một chương trình sang ngơn ngữ máy gọi là trình hợp dịch (Assembler ). Chương trình viết bằng hợp ngữ gọi là chương trình nguồn( hay gốc –sourse program ) và chương trình dưới dạng ngơn ngữ máy dịch từ chương trình nguồn gọi là chương trình đích (hay đối tượng -object program) như sơ đồ sau: