Trong quá trình lập trình, có thể một số thao tác sau ta cần thực hiện: - Đưa một khối lệnh vào các nơi khác nhau hoặc các module nguồn
- Phân chia các nhãn gán (EQU) và MACRO giữa các phần khác nhau của một chương trình hoặc sử dụng lại chúng trong nhiều chương trình.
- Viết một chương trình dài, xong không muốn chia nhỏ ra nhiều module vì phải dịch từng module rồi liên kết chúng với nhau song chương trình quá to không thể
chứa trong một file.
Để giải quyết các vấn đề trên, chương trình dịch của hợp ngữ có lệnh INCLUDE.
Giả sử ta muốn tạo một file INCLUDE chứa khối lệnh mà ta muốn các module khác thêm vào khi dịch.
Cú pháp:
INCLUDE tên file
(file chứa khối lệnh cần được đưa vào vị trí mà lệnh INCLUDE đang đứng)
Cơ chế: Khi chương trình hợp ngữ gặp lệnh INCLUDE thì sẽ tìm đến đường dẫn chứa file đã được xác định sau INCLUDE và đưa toàn bộ khối lệnh mà tệp này chứa xen vào vị trí mà lệnh INCLUDE đang đứng của module chương trình. Hay nói cách khác nội dung của tệp INCLUDE được đặt vào đúng vùng nhớ của chương trình mà lệnh INCLUDE đang được xác
định. Ví dụ:
Giả sử có một chương trình trong file A.ASM có nội dung như sau: … .CODE Mov BX,10 Add AX,BX INCLUDE B.ASM Sub AX,CX
File B.ASM có nội dung như sau:
Mov CX,3 Mov DX,4
Kết quả dịch chương trình A.ASM sẽ như sau:
.CODE Mov BX,10 Add AX,BX Mov CX,3 Mov DX,4 Sub AX,CX
Qua ví dụ trên ta thấy trong quá trình dịch chương trình A.ASM, khi đến dòng lệnh INCLUDE B.ASM
Thì chương trình dịch lấy tất cả các lệnh của B.ASM đặt vào vị trí mà lệnh INCLUDE đang
đứng. ngoài ra các lệnh INCLUDE còn có tính chất lồng nhau với những mức khác nhau, có nghĩa là trong file INCLUDE có thể gọi 1 file INCLUDE khác.
Dưới đây là cơ chế mà chương trình dịch tìm các file INCLUDE:
• Nếu trong lệnh INCLUDE chỉ rõ tên ổđĩa, đường dẫn, tên file thì chương trình dịch sẽ tìm theo sự xác định ở trên
• Nếu trong lệnh INCLUDE chỉ xác định tên file thì chương trình dịch tiến hành tìm file này
ở thư mục hiện thời. Trường hợp không tìm thấy thì sẽ tìm file đó ở thư mục được chỉ ra trong câu lệnh:
TASM –i <đường dẫn đến file >
• Nếu không tìm thấy file INCLUDE trong tất cả các trường hợp trên thì chương trình dịch sẽ báo không tìm thấy file INCLUDE.