Hợp ngữ là gì? Cách phân biệt giữa hợp ngữ và các ngôn ngữ bậc cao | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Ngôn ngữ lập trình có thể được chia thành ba loại: ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc cao. Nội dung dưới đây sẽ giúp bạn trả lời câu hỏi hợp ngữ là gì và cách để phân biệt giữa hợp ngữ và các ngôn ngữ bậc cao một cách đơn giản và dễ hiểu nhất. Đặc biệt, các bạn sinh viên mới bắt đầu học lý thuyết về ngôn ngữ lập trình cần phải nắm chắc kiến thức nền tảng quan trọng này. Cùng FUNiX tìm hiểu thông tin chi tiết trong bài viết dưới đây!

  • Ngôn ngữ lập trình bậc cao và bậc thấp là gì?
  • Cách phân biệt giữa ngôn ngữ máy và ngôn ngữ lập trình bậc cao

>> Học ngôn ngữ lập trình phổ biến nào để bắt kịp xu hướng

Hợp ngữ là gì?

Hợp ngữ là ngôn ngữ trung gian giữa ngôn ngữ lập trình bậc cao và ngôn ngữ máy. Nó là một cấp độ trên ngôn ngữ máy. Hợp ngữ dễ hiểu hơn ngôn ngữ máy, nhưng khó hơn các ngôn ngữ lập trình bậc cao. Ngôn ngữ này còn được gọi là ngôn ngữ cấp thấp vì nó gần với cấp độ phần cứng.

Hợp ngữ là gì? Cách phân biệt giữa hợp ngữ và các ngôn ngữ bậc cao
Hợp ngữ là gì? Cách phân biệt giữa hợp ngữ và các ngôn ngữ bậc cao.

Nếu muốn sử dụng hợp ngữ để viết chương trình hiệu quả, người lập trình cần có hiểu biết tốt về kiến ​​trúc máy tính và cấu trúc thanh ghi. Một trình biên dịch đặc biệt được gọi là trình hợp dịch được sử dụng để chuyển đổi các lệnh của hợp ngữ thành mã máy hoặc mã đối tượng.

Câu lệnh hợp ngữ có bốn phần – nhãn, ghi nhớ, toán hạng, nhận xét. Nhãn và nhận xét là tùy chọn, còn phép ghi nhớ là lệnh được thực thi và toán hạng là tham số của lệnh. Hợp ngữ cũng hỗ trợ macro – một tập hợp các hướng dẫn được đặt tên. Nó có thể được sử dụng ở những nơi khác trong chương trình.

Một số ví dụ về câu lệnh hợp ngữ như sau:

  • MOV SUM, 50: Lệnh này sao chép giá trị 50 vào biến SUM.
  • THÊM VALUE1,20: Lệnh này thêm 20 vào biến VALUE1
  • ADD AH, BH: Lệnh này sao chép nội dung của thanh ghi AH để đăng ký BH.
  • INC COUNT: Lệnh này thêm một vào biến COUNT.
  • AND VALUE1,100: Lệnh này thực hiện thao tác AND trên các biến VALUE1 và 100.
  • MOV AL, 20: Lệnh này sao chép giá trị 20 vào thanh ghi AL

Trong hệ thống thời gian thực, có thể có các sự kiện yêu cầu CPU phải hành động ngay lập tức. Các sự kiện này là các chương trình con đặc biệt và còn được gọi là các chương trình dịch vụ ngắt (ISR). Hợp ngữ rất hữu ích cho lập trình ISR.

Hợp ngữ là ngôn ngữ trung gian giữa ngôn ngữ lập trình bậc cao và ngôn ngữ máy
Hợp ngữ là ngôn ngữ trung gian giữa ngôn ngữ lập trình bậc cao và ngôn ngữ máy.

Ngôn ngữ bậc cao và ngôn ngữ máy là gì?

Con người có thể hiểu các ngôn ngữ lập trình cấp cao như Java, C, C ++, Python. Các lập trình viên không cần phải hiểu sâu về cấu trúc bên trong CPU mà vẫn có thể sử dụng ngôn ngữ lập trình cấp cao trên. Bởi lẽ, họ chỉ tuân theo một số quy tắc nhất định, tương tự như việc học ngữ pháp tiếng Anh vậy đó.

Tuy nhiên, máy tính chỉ có thể nhận dạng ngôn ngữ máy, chứ không thể hiểu được ngôn ngữ lập trình bậc cao. Do đó, các chương trình này phải được chuyển đổi thành một ngôn ngữ mà máy tính có thể hiểu được qua trình biên dịch hoặc trình thông dịch.

Ngôn ngữ máy bao gồm các chữ số nhị phân là 0 và 1. Máy tính là một thiết bị điện tử kỹ thuật số, vì vậy nó phải sử dụng một hệ thống nhị phân cho các hoạt động. Chữ số 1 đại diện cho trạng thái đúng/trạng thái bật, và số 0 đại diện cho trạng thái sai/trạng thái tắt. Cách chuyển đổi chương trình từ ngôn ngữ bậc cao sang ngôn ngữ máy phụ thuộc vào CPU.

Phân biệt giữa hợp ngữ và các ngôn ngữ bậc cao

Tiêu chí

Ngôn ngữ bậc cao

Hợp ngữ

Khái niệm

Là ngôn ngữ gần với ngôn ngữ tự nhiên, có tính độc lập cao, ít phụ thuộc vào loại máy.

Hợp ngữ cho phép người lập trình sử dụng một số từ (thường là các từ tiếng Anh viết tắt) để thể hiện các lệnh cần thực hiện.

Ưu điểm

Dễ hiểu, dễ chỉnh sửa, tính độc lập cao.

Khai thác triệt để tính năng phần cứng

Nhược điểm

Để máy tính hiểu được, cần phải có chương trình dịch để chuyển từ ngôn ngữ bậc cao sang ngôn ngữ máy.

Thuận lợi cho các nhà lập trình chuyên nghiệp nhưng chưa thích hợp với số đông người lập trình.

Dịch

Ngôn ngữ bậc cao yêu cầu trình biên dịch hoặc trình thông dịch để chuyển đổi chương trình thành mã máy.

Hợp ngữ yêu cầu trình hợp dịch chuyển đổi chương trình sang mã máy trong khi ngôn ngữ máy được thực thi trực tiếp bởi máy tính.

Tốc độ thực thi

Ngôn ngữ bậc cao chậm hơn hợp ngữ.

Hợp ngữ nhanh hơn ngôn ngữ bậc cao.

Hiệu quả bộ nhớ

Ngôn ngữ bậc cao không hiệu quả về bộ nhớ.

Hợp ngữ có hiệu quả hơn về bộ nhớ.

Tính dễ hiểu

Lập trình viên có thể dễ dàng hiểu được ngôn ngữ bậc cao.

Máy tính có thể dễ dàng hiểu được hợp ngữ

Trên đây là cách phân biệt hợp ngữ ngôn ngữ bậc cao mà FUNiX đã tổng hợp và khái quát lại. Hy vọng kiến thức trên hữu ích cho quá trình học lập trình của các bạn và chúc bạn học tốt!

Phạm Thị Thanh Ngọc