Khác biệt giữa bản sửa đổi của “Ngôn ngữ máy”
Nội dung được xóa Nội dung được thêm vào
n replaced: xử lí → xử lý (15) using AWB |
|||
Dòng 3:
Mã máy nhị phân (khác với mã hợp ngữ) có thể được xem như là phương thức biểu diễn thấp nhất của một chương trình đã biên dịch hay hợp dịch, hay là [[ngôn ngữ lập trình]] nguyên thủy phụ thuộc vào phần cứng (ngôn ngữ lập trình thế hệ đầu tiên). Mặc dù 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ì ta cần phải quản lí từng [[bit]] đơn lẻ và tính toán các địa chỉ và hằng số học một cách thủ công. Do đó, ngoại trừ những thao tác cần tối ưu và gỡ lỗi chuyên biệt, chúng ta rất hiếm khi làm điều này.
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 (đôi khi) 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, trình hợp dịch hay trình liên kết. Ngoài ra, các chương trình được viết bằng ngôn ngữ [[Thông dịch (máy tính)|thông dịch]] thì được dịch sang mã máy nhờ trình thông dịch tương ứng (có thể xem như là trình thực thi hay trình xử
== Các chỉ thị mã máy ==
Mọi [[vi xử lý]] hay họ vi xử
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ử
== Chương trình ==
[[Chương trình máy tính]] thực chất chỉ là một chuỗi những chỉ thị viết bằng mã máy được thực thi bởi [[CPU]]. Trong khi một số vi xử
Mạch chạy của chương trình chịu ảnh hưởng của những chỉ thị "nhảy" đặc biệt có khả năng thay đổi tiến trình đến một chỉ thị khác với chỉ thị có thứ tự sau đó. Những bước nhảy điều kiện được thực thi hay không là tùy thuộc vào các trạng thái nhất định.
== Hợp ngữ ==
[[Hợp ngữ]], một phiên bản gần hơn với ngôn ngữ tự nhiên của ngôn ngữ máy, sử dụng những kí hiệu dễ nhớ để thể hiện các chỉ thị mã máy, thay vì sử dụng trực tiếp các chuỗi nhị phân. Ví dụ, trên vi xử
== Ví dụ ==
Dòng 42:
== Mối quan hệ giữa ngôn ngữ máy và vi mã ==
Trong một số [[Kiến trúc máy tính]], ngôn ngữ máy được cài đặt bởi một lớp chương trình cơ sở hơn ở dưới nó, gọi là vi chương trình (microprogram). Vi chương trình tạo một giao diện ngôn ngữ máy thống nhất giữa các mô hình máy tính khác nhau, với những mạch xử
Ngoài ra, việc sử dụng vi mã (microcode) để cài đặt giả lập cho phép một máy tính sao chép kiến trúc của một máy tính hoàn toàn khác. Nhờ đó, dòng System/360 có thể chạy chương trình của những máy tính IBM đời cũ đến cả những họ máy tính đời mới, như giả lập IBM 1401/1440/1460 trên máy tính IBM S/360 mẫu 40.
|