Mã máy chỉ đơn giản là dữ liệu nhị phân tương ứng với hướng dẫn CPU cho kiến trúc bộ vi xử lý cụ thể.
Tôi sẽ không đi vào cách nó được lưu trữ quá nhiều, bởi vì điều đó phụ thuộc vào nơi nó được lưu trữ. Trên đĩa, ví dụ, nó thường được lưu trữ như là một chuỗi các khu vực từ hóa. Mã máy không khác với dữ liệu nhị phân khác trong khía cạnh lưu trữ. Nếu câu hỏi của bạn là nhiều hơn về cách dữ liệu được lưu trữ trên máy tính, bạn nên nghiên cứu các thiết bị lưu trữ dữ liệu khác nhau trong một máy tính, như HDD, RAM và đăng ký, để đặt tên một vài.
Cách dễ nhất để trực quan hóa cách mã máy được lưu trữ là xem một số trong trình chỉnh sửa hex. Điều này cho bạn thấy dữ liệu nhị phân được biểu thị bằng số thập lục phân. Ví dụ, đi hướng dẫn:
0xEB 0xFE
Điều này có thể dễ dàng được viết 1110101111111110, hoặc 60414. Nó phụ thuộc vào cách bạn muốn chuyển đổi nhị phân thành hình dạng con người có thể đọc được.
Hướng dẫn này thể hiện vòng lặp vô hạn. (Đây là giả định nó đang được chạy trên một CPU x86 khác CPU có thể giải thích nó tuy nhiên họ muốn..) Nó có thể được mã hóa trong lắp ráp như thế này:
j:
jmp j
Khi bạn chạy lắp ráp, phải mất mã ở trên và biến nó thành mã máy nhị phân ở trên.
Hướng dẫn thực sự là hai phần. Đầu tiên là cái được gọi là opcode, và là 0xEB
. Khi mã này đi vào CPU, điều đó có nghĩa là: Đọc một byte từ chương trình và bỏ qua nhiều byte dữ liệu đó. Sau đó, CPU đọc byte 0xFE
. Vì nó mong đợi một số nguyên có dấu, nó giải thích dữ liệu nhị phân là số -2. Hướng dẫn sau đó được thực hiện đang được đọc, và con trỏ chỉ dẫn di chuyển về phía trước 2 byte. Sau đó lệnh được thực hiện, làm cho con trỏ chỉ thị di chuyển về phía trước -2 (0xFE) byte, nó sẽ đặt con trỏ lệnh thành giá trị giống như khi nó được bắt đầu.
Tôi hy vọng điều này sẽ trả lời câu hỏi của bạn. Nếu bạn đang băn khoăn về các hoạt động bên trong của CPU, hãy đọc trên các cổng logic và mã hóa điện tử. Về cơ bản, đó là một loạt các sự khác biệt điện áp, chẳng hạn như 1 bit là một phí 5 volt và 0 bit là một khoản phí 0 bit.
Đó là giá trị nhị phân với ý nghĩa duy nhất để xử lý cụ thể. Bạn có thể biểu diễn nó dưới dạng hex nếu bạn muốn, hoặc bất kỳ cơ sở nào khác bạn thích. Nó "trông giống như" tuy nhiên bạn chọn để đại diện cho nó. –
Nó không phải là lắp ráp, nhị phân, hoặc hex, đó là tất cả chúng :-) Họ là tất cả chỉ là đại diện của cùng một điều. Cuối cùng lắp ráp và hex cả hai bản đồ xuống đến nhị phân. Bản đồ nhị phân đó chuyển xuống trạng thái của một loạt các bóng bán dẫn trong CPU. Trạng thái đó có thể đại diện cho một lệnh để được xử lý, hoặc nó có thể đại diện cho dữ liệu được làm việc. – Benj
Đó là số không và số, không có gì khác. Hex và hướng dẫn lắp ráp dành cho mọi người, không phải máy tính. –