Sử khác biệt lớn nhất giữa ngôn ngữ máy và hợp ngữ

Sự khác biệt chính - Máy Ngôn ngữ so với ngôn ngữ hội

Ngôn ngữ lập trình cho phép con người tạo hướng dẫn cho máy tính thực hiện các tác vụ. Có ba loại ngôn ngữ lập trình như ngôn ngữ lập trình cấp cao, ngôn ngữ hội và ngôn ngữ máy. Ngôn ngữ lập trình cấp cao dễ hiểu hơn cho con người. Ngôn ngữ được máy tính nhận biết được gọi là ngôn ngữ máy. Ngôn ngữ hội là ngôn ngữ giữa ngôn ngữ cấp cao và ngôn ngữ máy. Các sự khác biệt chính giữa ngôn ngữ máy và ngôn ngữ lắp ráp là, Ngôn ngữ máy thực thi trực tiếp bởi máy tính và ngôn ngữ lắp ráp yêu cầu trình biên dịch chuyển đổi thành mã máy hoặc mã đối tượng để thực thi bởi CPU.

NỘI DUNG

1. Tổng quan và sự khác biệt chính
2. Ngôn ngữ máy là gì
3. Ngôn ngữ hội là gì
4. Điểm tương đồng giữa ngôn ngữ máy và ngôn ngữ hội
5. So sánh cạnh nhau - Ngôn ngữ máy so với ngôn ngữ hội ở dạng bảng
6. Tóm tắt

SÁCH GIÁO KHOA

  • Toán lớp 12
  • Toán lớp 12 Nâng cao
  • Toán lớp 11
  • Toán lớp 11 Nâng cao
  • Toán lớp 10
  • Toán lớp 10 Nâng cao
  • Toán lớp 9
  • Tài liệu Dạy - học Toán 9
  • Toán lớp 8
  • Tài liệu Dạy - học Toán 8
  • Toán lớp 7
  • Tài liệu Dạy - học Toán 7
  • Toán lớp 6
  • Tài liệu Dạy - học Toán 6
  • Toán lớp 5
  • Toán lớp 4
  • Toán lớp 3
  • Toán lớp 2
  • Toán lớp 1
  • Sự khác biệt giữa ngôn ngữ cấp cao và ngôn ngữ cấp thấp

    Sự khác biệt giữa ngôn ngữ cấp cao và ngôn ngữ cấp thấp - Công Nghệ

    Tìm hiểu về ngôn ngữ máy

    Trước tiên, chúng ta sẽ đi tìm hiểu về ngôn ngữ lập trình nói chung để có thể hiểu hơn về “ngôn ngữ khó hiểu” – ngôn ngữ máy nhé!

    Bài viết sẽ tập trung đề cập đến ngôn ngữ cấp thấp. Nếu bạn muốn tìm hiểu về ngôn ngữ bậc cao, tìm hiểu thêm tại Top 5 ngôn ngữ lập trình phổ biến nhất.

    Ngôn ngữ lập trình là gì?

    Ngôn ngữ lập trình [programming language] là một dạng ngôn ngữ được phát triển và chuẩn hóa theo một hệ thống quy tắc riêng, giúp cho lập trình viên có thể mô tả được các chương trình làm việc gì đó mà cả con người và máy tính đều hiểu được.

    Ngôn ngữ lập trình được sử dụng để viết nên các chương trình phần mềm, ứng dụng và cả website. Mỗi ngôn ngữ sẽ có những đặc điểm riêng từ: cú pháp, từ vựng, ý nghĩa và cả mục đích cụ thể.

    Vậy, có mấy loại ngôn ngữ lập trình?

    Chúng ta sẽ có bao gồm 3 loại ngôn ngữ lập trình chính:

    Chúng ta cũng có thể chia thành 2 loại:

    Ngoài ra, bạn còn có thể chia theo những cách khác như: chia theo bảng chữ cái, chia theo thứ tự thời gian. Nếu bạn vẫn muốn tham khảo thêm về việc phân chia ngôn ngữ lập trình, bài viết của Wikipedia này sẽ đáp ứng được nhu cầu tìm hiểu thêm của bạn.

    Machine Language – ngôn ngữ máy là gì?

    Machine Language tạm dịch ngôn ngữ máy, là ngôn ngữ duy nhất để viết chương trình và máy tính có thể hiểu ngay lập tức sau đó thực hiện yêu cầu trong chương trình. Ngôn ngữ máy là một dạng ngôn ngữ số được viết bằng mã nhị phân 0 – 1 hoặc mã hex. Ưu điểm vượt trội của ngôn ngữ máy chính là khả năng làm việc tuyệt vời và khai thác phần cứng của máy tính.

    Khi sử dụng ngôn ngữ máy, máy tính sẽ hiểu trực tiếp lệnh của bạn mà không cần thông qua các trình biên dịch.

    Nhưng khoan! Dừng lại chừng 12 giây! Tin Tino Group đi, bạn nên tiếp tục đọc bài viết đừng vội vàng đi học ngôn ngữ máy để lập trình ra phần mềm của bạn nhé!

    Assembly Language – Hợp ngữ là gì?

    Hợp ngữ [Assembly Language] là một ngôn ngữ lập trình cao cấp hơn ngôn ngữ máy một chút, sử dụng một số từ [tiếng Anh], chữ cái, chữ số cũng như những ký tự đặc biệt để viết các chương trình và máy tính có thể hiểu một cách nhanh chóng.

    Tuy nhiên, ngôn ngữ này vẫn chưa thực sự có thiện cảm với con người chúng ta và chỉ phù hợp với một bộ phận nhỏ lập trình viên.

    Ngoài ra, hợp ngữ được xếp riêng thành middle level language – ngôn ngữ bậc trung nhưng cũng có nhiều trường hợp, hợp ngữ bị gộp chung với ngôn ngữ máy trở thành ngôn ngữ bậc thấp [low level language].

    Nếu từng xem phim Thủy thủ mặt trăng, bạn sẽ thấy nhân vật Tuxedo Mặt nạ viết chương trình hoặc làm việc với máy tính với những dòng xanh lá cây thế này.

    Answers [ ]

    1. 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, …

      Thu gọn [-]

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

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

    Mục lục

    • 1 Các chỉ thị mã máy
    • 2 Chương trình
    • 3 Hợp ngữ
    • 4 Ví dụ
    • 5 Mối quan hệ giữa ngôn ngữ máy và vi mã
    • 6 Mối quan hệ giữa ngôn ngữ máy và mã đối tượng
    • 7 Phương thức lưu trữ trong bộ nhớ
    • 8 Xem thêm
    • 9 Tham khảo
    • 10 Đọc thêm

    Các chỉ thị mã máySửa đổi

    Mọi vi xử lý hay họ vi xử lý đều có những tập chỉ thị mã máy riêng biệt. Các chỉ thị này là các mẫu bit được thiết kế tương ứng với những lệnh khác nhau của máy tính. Do đó, những tập chỉ thị này là riêng biệt của một lớp vi xử lý thuộc cùng một kiến trúc máy tính. Những thiết kế vi xử lý kế thừa thường bao gồm các chỉ thị của vi xử lý tiền nhiệm cùng với các chỉ thị mới. Đôi khi, các thiết kế kế thừa lại loại bỏ hay thay đổi chức năng một số mã chỉ thị [vì chúng cần dùng cho mục đích mới], gây ảnh hưởng đến sự đồng bộ mã nguồn ở một mức độ nhất định. Thậm chí, các vi xử lý đồng bộ cận hoàn toàn cũng có những sự biến đổi hành vi đối với một số chỉ thị, nhưng điều này rất hiếm xảy ra. Các hệ thống còn có thể khác nhau ở một số thành phần khác như phương thức sắp xếp bộ nhớ, hệ điều hành hay thiết bị ngoại vi. Vì các chương trình hay phụ thuộc vào các yếu tố này, các hệ thống khác nhau khó có thể chạy cùng một mã máy, ngay cả khi chúng sử dụng cùng một loại vi xử lý.

    Một tập chỉ thị có thể có độ dài chỉ thị thống nhất hay biến động. Cách các bit được sắp xếp thay đổi rất lớn giữa các kiến trúc khác nhau hay các loại chỉ thị khác nhau. Hầu hết các chỉ thị có một hay nhiều vùng mã vận hành để phân biệt các chỉ thị cơ sở [như tính toán hay nhảy] và các chỉ thị thực [như cộng hay so sánh], và các vùng khác biểu diễn loại toán hạng, phương thức biểu diễn địa chỉ, các chỉ số địa chỉ hay các giá trị thực [các toán hạng hằng được chứa trong chỉ thị như vậy được gọi là giá trị tức thời].

    Không phải tất cả các máy tính hay chỉ thị đơn lẻ đều có toán hạng hiện [rõ ràng]. Một máy tính thanh chứa có sự kết hợp giữa toán hạng trái và kết quả tính toán lưu trong một thanh chứa ẩn đối với hầu hết các chỉ thị đại số. Một số kiến trúc khác [như 8086 hay x86] có phiên bản sử dụng thanh chứa của các chỉ thị thông dụng, và thanh chứa được xem như là một trong những thanh ghi tổng quát nhất của chỉ thị dài. Trong khi đó, một máy tính ngăn xếp lại lưu hầu hết các toán hạng trong một ngăn xếp ẩn. Những chỉ thị chuyên biệt cũng thường thiếu toán tử hiện [ví dụ, vi xử lý ID trong kiến trúc x86 ghi giá trị vào bốn thanh ghi địa điểm ẩn]. Sự khác biệt giữa toán tử hiện và ẩn cho phép sử dụng nhiều hơn hằng số có phạm vi rộng, 'uốn nắn' các thanh ghi liên tục [lưu giá trị hằng số khác đè lên giá trị đã có của thanh ghi] và rất nhiều ưu điểm vượt trội khác.

    Video liên quan

  • Chủ Đề