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

Chia sẻ kiến thức 01/01/2022

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!

>> 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

Bình luận (
0
)

Bài liên quan

Bóng đèn thông minh có thể gây nguy hiểm cho mạng gia đình như thế nào? 

Bóng đèn thông minh có nhiều tính năng tuyệt vời nhưng bạn có biết nó có thể khiến mạng gia đình của bạn gặp nhiều rủi ro không?

Tổng quan về port scanning (quét cổng)

Khi máy tính của bạn kết nối với Internet, nó sẽ sử dụng các "port" (cổng) để giúp thực hiện công việc của mình. Cả quản trị viên mạng và tin tặc đều muốn quét các port này để tìm...

Tổng quan về network scanning

Tội phạm mạng luôn tìm kiếm network (mạng) tiếp theo để tấn công. Network scanning (quét mạng) là một phương pháp rất hữu ích để bảo vệ network của bạn.

5 môn học trong chương trình Blockchain Developer tại FUNiX có gì thú vị?

Ngày 15/1 vừa qua, tổ chức giáo dục trực tuyến FUNiX cùng Trung tâm phát triển phần mềm (SCC - Đại học Đà nẵng) phối hợp cùng XIXO Ecosystem đã phối hợp tổ chức hội thảo “Blockchain và hành trang...

Bí kíp giúp mẹ đồng hành cùng con gái học lập trình online

Có mặt trong buổi Ngày hội phụ huynh của FUNiX, chị Vũ Thị Vân - phụ huynh nữ sinh Nguyễn Vũ Khánh Linh của FUNiX đã tiết lộ những bí kíp giúp người mẹ đồng hành cùng con gái học...

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        

yêu cầu gọi lại