Chương trình dịch của hợp ngữ là gì

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

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

Chương trình dịch của hợp ngữ là gì
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.

Chương trình dịch của 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.

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

Trắc nghiệm: Hợp ngữ là gì?

A.Ngôn ngữ trong các lệnh sử dụng một số từ tiếng Anh

B. Ngôn ngữ máy tính có thể trực tiếp hiểu được

C. 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 các loại máy cụ thể

D. Ngôn ngữ trong các lệnh sử dụng một số từ tiếng Việt

Đáp án đúng: A. Ngôn ngữ trong các lệnh sử dụng một số từ tiếng Anh

Hợp ngữ là Ngôn ngữ trong các lệnh sử dụng một số từ tiếng Anh

Giải thích:

Hợp ngữ là ngôn ngữ kết hợp ngôn ngữ máy với ngôn ngữ tự nhiên của con người. Nó cho phép người lập trình sử dụng một số từ ( thường là từ viết tắt các từ tiếng Anh) để thể hiện lệnh cần thực hiện.

Tìm hiểu thêm về Ngôn ngữ lập trình cùng Top Tài Liệu nhé !

– Cần diễn tả thuật toán bằng một ngôn ngữ mà máy tính có thể hiểu và thực hiện được. Ngôn ngữ đó được gọi là ngôn ngữ lập trình.

Câu 1. Chương trình dịch là chương trình

A. Chuyển đổi ngôn ngữ máy sang ngôn ngữ lập trình bậc cao

B. Chuyển đổi chương trình viết bằng hợp ngữ hoặc ngôn ngữ lập trình bậc cao sang ngôn ngữ máy

C. Chuyển đổi hợp ngữ sang ngôn ngữ lập trình bậc cao

D. Chuyển đổi ngôn ngữ máy sang hợp ngữ

Câu 2. Ngôn ngữ máy là gì?

A. Là bất cứ ngôn ngữ lập trình nào mà có thể mô tả thuật toán để giao cho máy tính thực hiện

B. Là ngôn ngữ duy nhất mà máy tính có thể hiểu và thực hiện được

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

D. Các loại máy

Câu 3. Ngôn ngữ lập trình bao gồm

A. Hợp ngữ, ngôn ngữ bậc cao

B. Ngôn ngữ máy, hợp ngữ

C. Ngôn ngữ máy, hợp ngữ, ngôn ngữ bậc cao

D. Ngôn ngữ bậc cao, ngôn ngữ máy

Câu 4. Ngôn ngữ lập trình bậc cao là?

A. Là ngôn ngữ máy tính có thể trực tiếp hiểu và thực hiện được

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

C. Là ngôn ngữ có thể mô tả được tất cả các thuật toán

D. Là ngôn ngữ mô tả thuật toán dưới dạng văn bản

Câu 5. Ngôn ngữ lập trình là

A. Ngôn ngữ khoa học

B. Ngôn ngữ tự nhiên

C. Ngôn ngữ giao tiếp hằng ngày

D. Ngôn ngữ để viết chương trình

Câu 6. Ngôn ngữ lập trình không cần chương trình dịch là̀

A. Hợp ngữ

B. Ngôn ngữ lập trình bậc cao

C. Ngôn ngữ máy

D. Pascal

Câu 7. Câu nào là sai khi nói về đặc điểm của ngôn ngữ lập trình bậc cao?

A. Chương trình viết bằng ngôn ngữ bậc cao phải được dịch bằng chương trình dịch máy mới hiểu và thực hiện được

B. Ngôn ngữ bậc cao gần với ngôn ngữ tự nhiên

C. Có tính độc lập cao, ít phụ thuộc vào các loại máy cụ thể

D. Thực hiện được trên mọi loại máy

Câu 8. Ngôn ngữ Pascal thuộc loại

A. Ngôn ngữ bậc cao

B. Hợp ngữ C

C. Ngôn ngữ máy

D. Tất cả các ý trên

Câu 9. Hợp ngữ là

A. Ngôn ngữ trong các lệnh sử dụng một số từ tiếng Anh

B. Ngôn ngữ máy tính có thể trực tiếp hiểu được

C. 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 các loại máy cụ thể

D. Ngôn ngữ trong các lệnh sử dụng một số từ tiếng Việt

Câu 10. Ngôn ngữ nào sau đây máy có thể trực tiếp hiểu và thực hiện?

A. Ngôn ngữ bậc cao

B. Hợp ngữ

C. Pascal

D. Ngôn ngữ máy

a. Ngôn ngữ máy

– Mỗi loại máy tính đều có ngôn ngữ máy riêng của nó. Là ngôn ngữ duy nhất mà máy có thể trực tiếp hiểu và thực hiện.

– Các lệnh viết bằng ngôn ngữ máy ở dạng mã nhị phân hoặc mã hexa

Chương trình dịch của hợp ngữ là gì

* Ưu điểm: khai thác triệt để tính năng phần cứng của máy tính, có thể trực tiếp hiểu được, không cần chương trình dịch.

* Nhược điểm: khó hiểu, khó nhớ, sử dụng nhiều câu lệnh để biểu diễn các thao tác.

b. Hợp ngữ

– Ưu điểm:

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

+ Cho phép khai thác triệt để tính năng phần cứng.

– Nhược điểm:

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

+ Để máy tính hiểu cần có chương trình hợp dịch để chuyển hợp ngữ sang ngôn ngữ máy.

c. Ngôn ngữ bậc cao

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

* Ưu điểm: dễ hiểu, dễ chỉnh sửa, tính độc lập cao.

– Để 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.

– Một số ngôn ngữ lập trình bậc cao: Pascal, C, Java, …