Hợp ngữ phải có chương trình hợp dịch để chuyển sang ngôn ngữ máy

BÀI 1: KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH

1. Ngôn ngữ lập trình

- Ngôn ngữ lập trình là ngôn ngữ dùng để diễn tả thuật toán sao cho máy tính hiểu và thực hiện được.

- Có 3 loại ngôn ngữ lập trình:

  • Ngôn ngữ máy: bao gồm các lệnh được mã hóa bằng các kí hiệu 0 – 1. Chương trình được viết trên ngôn ngữ máy có thể được nạp vào bộ nhớ và thực hiện ngay. Đây cũng là ngôn ngữ duy nhất mà máy tính có thể trực tiếp hiểu và xử lý đ­ựơc.
  • Hợp ngữ: Là loại ngôn ngữ sử dụng một số từ để thực hiện lệnh trên thanh ghi. Hợp ngữ sử dụng các từ viết tắt tiếng Anh để diễn tả câu lệnh.
  • Ngôn ngữ bậc cao: Là loại ngôn ngữ gần với ngôn ngữ tự nhiên, ít phụ thuộc vào loại máy. Các lệnh được mã hóa bằng một ngôn ngữ gần với ngôn ngữ Tiếng Anh.
    • Chương trình viết trên ngôn ngữ bậc cao phải được chuyển đổi thành chương trình trên ngôn ngữ máy mới có thể thực hiện được => Phải sử dụng một chương trình dịch để chuyển đổi.
    • Lập trình bằng ngôn ngữ bậc cao dễ viết hơn vì các lệnh được mã hóa gần với ngôn ngữ tự nhiên. Lập trình trên ngôn ngữ máy rất khó, thường các chuyên gia lập trình mới lập trình được.

2. Lập trình

- Lập trình là việc sử dụng cấu trúc dữ liệu và các lệnh của ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt các thao tác của thuật toán.

3. Chương trình dịch

- Ch­ương trình dịch là ch­ương trình đặc biệt, có chức năng chuyển đổi ch­ương trình đư­ợc viết bằng ngôn ngữ lập trình bậc cao sang ngôn ngữ máy.

a. Biên dịch (Compiler)

- Biên dịch đượ­c thực hiện qua hai bước

  • Bước 1: Duyệt, phát hiện lỗi, kiểm tra tính đúng đắn của lệnh trong chương trình nguồn.
  • Bước 2: Dịch toàn bộ chương trình nguồn thành một chương trình trên ngôn ngữ máy.

=> Biên dịch thuận tiện cho các chương trình ổn định và cần thực hiện nhiều lần.

b. Thông dịch (Interpreter)

- Thông dịch được thực hiện bằng cách lặp lại dãy các bư­ớc sau:

  • Bước 1: Kiểm tra tính đúng đắn của lệnh tiếp theo trong chương trình nguồn.
  • Bước 2: Chuyển lệnh đó thành ngôn ngữ máy.
  • Bước 3: Thực hiện các câu lệnh vừa được chuyển đổi.

=> Thông dịch phù hợp với môt trường đối thoại giữa người và máy.

Danh sách các phiên bản khác của bài học này. Xem hướng dẫn

1. Khái niệm ngôn ngữ lập trì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.

2. Phân loại ngôn ngữ lập trình :

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

* Ư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ữ :

- 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: 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, …


Hợp ngữ là 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ữ 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. 

Trắc nghiệm: 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

Trả lời:

Đá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.

Kiến thức tham khảo về ngôn ngữ lập trình.

1. Khái niệm ngôn ngữ lập trì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.

2. 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. Không nhất thiết phải hiểu sâu về CPU bên trong, lập trình bằng ngôn ngữ bậc cao. Chúng tuân theo một cú pháp tương tự như ngôn ngữ tiếng Anh. Java, C, C ++, Python là một số ngôn ngữ lập trình cấp cao. Máy tính nhận dạng ngôn ngữ máy nhưng không hiểu các ngôn ngữ cấp cao. Do đó, những chương trình đó nên được chuyển đổi sang ngôn ngữ máy tính dễ hiểu. Bản dịch này được thực hiện bằng trình biên dịch hoặc trình thông dịch.

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

Xem thêm:

>>> Ưu điểm và nhược điểm của ngôn ngữ máy

3. 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. Để HTTL viết chương trình hiệu quả bằng Assembly, người lập trình cần hiểu rõ 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 dùng để chuyển đổi các lệnh của hợp ngữ sang mã máy hoặc mã đối tượng.

Câu lệnh hợp ngữ có bốn phần. Chúng là một nhãn, ghi nhớ, toán hạng, bình luận. Nhãn và nhận xét là tùy chọn. Mnemonic là lệnh thực thi và toán hạng là các tham số cho lệnh. Hợp ngữ cũng hỗ trợ macro. Một macro khả năng được định nghĩa là một tập hợp các hướng dẫn có tên. Nó khả năng được dùng ở những nơi khác trong chương trình.

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

MOV SUM, 50 – Lệnh này sao chép tổng giá trị 50 vào biến SUM.

ADD VALUE1,20 – Điều này là để thêm 20 vào biến VALUE1

ADD AH, BH – Hướng dẫn này là sao chép nội dung trong thanh ghi AH vào thanh ghi BH.

INC COUNT – Điều này là để tăng biến COUNT lên một.

AND VALUE1,100 – Đây là để thực hiện thao tác AND trên biến VALUE1 và 100.

MOV AL, 20 – Đây là để sao chép tổng 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.

4. 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ữ

Xem thêm các bài cùng chuyên mục

Xem thêm các chủ đề liên quan

Loạt bài Lớp 10 hay nhất