Bài giảng Hợp ngữ (Assembly Language)
Việc lập trình bằng ngôn ngữ máy đòi hỏi người lập trình cần phải nhớ các mã lệnh bằng số, phải sắp đặt vị trí của mã lệnh và tất cả các số liệu trong bộ nhớ của máy tính, ngay cả các số liệu cũng phải viết dưới dạng số. Công việc này hết sức nặng nhọc và rất dễ gây nhầm lẫn. Chính vì vậy người ta cần đến Assembly Language, nó cho NSD các khả năng sau: · Cho phép dùng các ký hiệu gợi nhớ thay cho các mã lệnh bằng số của bộ VXL, ví dụ ADD thay cho 00000000; INT 13h thay cho 11001101 00010011 .v.v. các ký hiệu loại này được gọi là mã lệnh (Op-Code). · Cho phép dùng các tên gọi (nhãn: Label) để chỉ các địa chỉ nhớ, NSD gọi đến các tên này như việc gọi các thủ tục hoặc như là việc truy nhập đến các biến hay hằng số trong các ngôn ngữ lập trình bậc cao. · Cho phép dùng các chỉ thị cho chính Assembler (Assembler Directive), để nó biết cần phải chuyển các mã của NSD như thế nào, chương trình bắt đầu ở đâu; dự trữ khoảng trống bao nhiêu cho dữ liệu; báo rằng không còn lệnh để chuyển mã ngữ tiếp nữa .v.v. Ví dụ ORG 100h: đoạn mã lệnh bắt đầu ở địa chỉ 100h,Code_seg: segment: tên Code_seg là đại diện cho 1 segment trong bộ nhớ end: hết mã ngữ. · Cho phép viết các chú thích trong chương trình, làm cho chương trình dễ đọc, dễ bảo trì. · Khi hợp dịch, các mã lệnh được chuyển trực tiếp thành các lệnh của bộ vxl để nó có thể thực hiện trực tiếp được. Các nhãn, các chỉ thị cho Assembler chỉ được chính Assembler sử dụng, không chuyển thành mã máy; còn các chú thích (comment) thì bị bỏ qua. Chính vì vậy mà các chương trình viết bằng Assembly rất ngắn gọn, chạy rất nhanh. · Chương trình được viết bằng các ký hiệu của ngôn ngữ Assembly được gọi là chương trình nguồn (Source Program). Chương trình ở dạng số tương tương với chương trình nguồn mà bộ VXL có thể hiểu được (microprocessor-compatible form) gọi là chương trình đích(Object Program). Assembler là chương trình thực hiện chuyển (convert) chương trình nguồn(Source Program) thành chương trình đích (Object Program).