- Các vectơ ngắt.
BÀI 7: PHẦN MỀM HỢP NGỮ
Mục tiêu:
- Trình bày được sự cần thiết và cơ chế hoạt động của trình dịch hợp ngữ theo nội dung đã học.
- Trình bày được cấu trúc chung của chương trình hợp ngữ theo nội dung đã học.
- Thực hiện viết chương trình tổ chức lớn bằng cách phân chia thành các mơ đun chương trình đúng qui trình kỹ thuật.
- Viết được chương trình điều khiển theo yêu cầu
Nội dung: 1. Mở đầu
Hầu hết các hệ điều hành máy tính hiện nay, đặc biệt là các hệ điều hành của Microsoft, đều hỗ trợ hai dạng cấu trúc tập tin thực thi cĩ thể hoạt động trên nĩ, đĩ là tập tin cấu trúc dạng COM và tập tin cấu trúc dạng EXE. Cĩ nhiều điểm khác nhau giữa hai cấu trúc chương trình này, nhưng điểm khác biệt lớn nhất là: Các chương trình cấu trúc dạng EXE gồm 3 đoạn: Mã lệnh (Code), dữ liệu (Data) và Ngăn xếp (Stack). Khi hoạt động, 3 đoạn này sẽ được nạp vào 3 đoạn (Segment) bộ nhớ tách biệt trên bộ nhớ;
Các chương trình dạng COM thì ngược lại, nĩ chỉ cĩ 1 đoạn mã lệnh, trong đĩ chứa cả mã lệnh và ngăn xếp. Vì thế, khi được nạp vào bộ nhớ để hoạt động nĩ chỉ được cấp phát một đoạn bộ nhớ. Rõ ràng kích thước của một chương trình dạng COM khơng thể vượt quá giới hạn của một đoạn bộ nhớ (với Intel 8088/80286 và MSDOS, 1 Segment bộ nhớ = 64KB).
Trong khi đĩ một chương trình dạng EXE cĩ thể lớn hơn 3 Segment bộ nhớ. Do đĩ, khi thiết kế các chương trình lớn, với chức năng phức tạp, trong đĩ cĩ liên kết giữa các modun chương trình khác nhau thì ta phải thiết kế theo cấu trúc chương trình dạng EXE.
Hợp ngữ hỗ trợ thiết kế cả hai dạng cấu trúc chương trình EXE và COM, mỗi dạng phù hợp với một nhĩm trình biên dịch nào đĩ. Muốn biên dịch một chương trình hợp ngữ sang dạng EXE thì ngồi việc nĩ phải được viết theo cấu trúc dạng EXE ta cịn cần phải sử dụng một trình biên dịch phù hợp. Điều này cũng tương tự với việc muốn cĩ một chương trình thực thi dạng COM.
Văn bản của một chương trình hợp ngữ dạng EXE cũng cho thấy rõ nĩ gồm 3 đoạn: Code, Data và Stack. Tương tự, văn bản của chương trình hợp ngữ dạng COM cho thấy nĩ chỉ cĩ 1 đoạn: Code, cả Data và Stack (khơng tường minh) đều nằm ở đây. Một chương trình hợp ngữ gồm hai thành phần chính: phần lệnh hợp ngữ và phần chỉ
225
dẫn biên dịch. Chỉ cĩ các lệnh là được biên dịch thành ngơn ngữ máy. Phần hướng dẫn biên dịch khơng được dịch sang ngơn ngữ máy, nĩ chỉ cĩ tác dụng với các trình biên dịch. Thơng thường mỗi chương trình biên dịch cĩ một nhĩm hướng dẫn biên dịch phù hợp với nĩ, những với các hướng dẫn biên dịch cơ bản và đơn giản thì nĩ phù hợp với hầu hết các trình biên dịch hợp ngữ hiện nay. Trong tài liệu này chúng tơi sử dụng các hướng dẫn biên dịch phù hợp với trình biên dịch Microsoft Macro Assembler (MASM).