Thứ Tư, 3 tháng 4, 2024

Ngôn ngữ máy là gì?

Con người chúng ta có bộ não, mọi suy nghĩ, hành động đều do bộ não của chúng ta xử lý. Từ bé chúng ta sẽ bắt đầu tập nói, tập nghe những từ, những câu đơn giản kiểu như "đứng lên", "ăn nào", "hát đi", "bò lại đây"...

tai, mắt chúng ta nghe, nhìn những chỉ thị đó, não chúng ta sẽ xử lý chúng và đáp ứng lại những chỉ thị đó. Máy tính để bàn, Laptop, iPad, iPhone (ta thống nhất sẽ gọi tất cả là máy tính)...cũng có cơ chế hoạt động tương tự. Bàn phím, micro, camera... cũng như tai, mắt, mũi, miệng của chúng ta, nó thu thập các chỉ thị từ người dùng sau đó truyền tới CPU và CPU sẽ xử lý các chỉ thị đó.

CPU là chữ viết tắt của Central Processing Unit là bộ xử lý trung tâm máy tính. CPU còn được gọi với những tên như processor, central processo. CPU một bộ phận quan trọng nhất của máy tính và đóng vai trò như não bộ của máy tính.


 

Vấn đề là máy tính, cụ thể là CPU của máy tính không hiểu được những chỉ thị bằng ngôn ngữ của con người, nó chỉ hiểu ngôn ngữ riêng gọi là ngôn ngữ máy (machine language) . Máy tính hay mọi mạch điện nói chung chỉ có thể "hiểu" hai trạng thái mà thôi: 

Có điện - Không có điện

Có tín hiệu - Không có tín hiệu

Điện thế cao - Điện thế thấp

Và ta có thể biểu diễn cho hai trạng thái đó bằng hai con số 10.

Mọi chỉ thị cho máy tính sẽ là một chuỗi những số 1 và 0, ví dụ 0001110010 hay 10101001110...Tất cả các chương trình được thực thi trực tiếp bởi CPU đều là các chuỗi các chỉ thị này, chuỗi 1 và 0 như vậy gọi là ngôn ngữ máy. Để dễ hình dung, bạn có thể vào đây: https://www.ascii-code.com  tham khảo.

Trong phần ASCII printable characters (character code 32-127), bạn sẽ nhận ra chúng ta có thể chuyển từ Hello thành 01001000 01100101 01101100 01101100 01101111, và máy tính sẽ "dễ dàng" hiểu dãy số dài thòng đó!

Hệ nhị phân (hay hệ đếm cơ số 2) là một hệ đếm chỉ dùng hai ký tự là 0 và 1 để biểu đạt một giá trị số. Do có ưu điểm tính toán đơn giản, dễ dàng thực hiện về mặt vật lý, phù hợp với các mạch điện tử nên hệ nhị phân trở thành một phần kiến tạo căn bản trong mọi máy tính.

Về mặt lý thuyết, chúng ta hoàn toàn có thể viết chương trình trực tiếp bằng mã nhị phân, việc này rất khó khăn và dễ gây ra những lỗi nghiêm trọng và cũng rất khó tìm ra lỗi. Do đó, chúng ta rất hiếm khi làm điều này. Tưởng tượng ngồi gõ hàng ngàn, thậm chí hàng triệu những con số 0-1, đó có lẽ là một trong những việc buồn tẻ, khó khăn, kinh khủng nhất!

Hiện nay, hầu như tất cả các chương trình máy tính trong thực tế đều được viết bằng các ngôn ngữ bậc cao hay hợp ngữ, và sau đó được dịch thành mã máy thực thi bằng các công cụ phụ trợ như trình biên dịch.

Ngôn ngữ bậc cao (High Level Language) là những gì bạn hay nghe nói tới như Java, Python, C, PHP...Còn Hợp ngữ (Assembly Language) là một dạng ngôn ngữ ở giữa ngôn ngữ máy và ngôn ngữ bậc cao.  

Tóm lại, lập trình thông thường là việc dùng một ngôn ngữ bậc cao (High Level Language) nào đó viết một chương trình. Sau đó dùng công cụ biên dịch thành ngôn ngữ máy để "lệnh" cho máy tính làm việc. 

 

Phần tiếp theo

Không có nhận xét nào:

Đăng nhận xét