... rằng một chương trình cụ thể chỉ yêu cầu CPU lấy thông tin từ một địa chỉ cụ thể và chương trình xác định cách xử lý nó.
Chính xác. Nhưng RAM không được đọc "tuần tự" và nó là viết tắt của Bộ nhớ truy cập ngẫu nhiên hoàn toàn ngược lại.
Bên cạnh việc biết byte là gì , bạn thậm chí không biết đó là byte hay một mảnh của một mục lớn hơn như số dấu phẩy động.
Tôi muốn thêm vào các câu trả lời khác bằng cách đưa ra một số ví dụ cụ thể.
Hãy xem xét 01000001
. Chương trình có thể sao chép nó từ nơi này sang nơi khác như một phần của một lô dữ liệu lớn mà không liên quan đến ý nghĩa của nó. Nhưng sao chép nó vào địa chỉ được sử dụng bởi bộ đệm video ở chế độ văn bản sẽ khiến chữ cái A
hiển thị ở một số vị trí trên màn hình. Hành động chính xác tương tự khi thẻ ở chế độ đồ họa CGA sẽ hiển thị pixel màu đỏ và pixel màu xanh.
Trong một thanh ghi, nó có thể là số 65 dưới dạng một số nguyên. Làm số học để thiết lập bit của 32 có thể có nghĩa bất cứ điều gì mà không bối cảnh, nhưng đặc biệt có thể thay đổi một bức thư cho chữ thường.
CPU 8086 (vẫn) có các hướng dẫn đặc biệt được gọi là DAA ※ được sử dụng khi thanh ghi giữ 2 chữ số thập phân, vì vậy nếu bạn chỉ sử dụng lệnh đó, bạn sẽ hiểu nó là hai chữ số 41
.
Các chương trình bị sập vì một từ bộ nhớ được đọc nghĩ rằng đó là một con trỏ khi một thứ khác được lưu trữ ở đó.
Sử dụng trình gỡ lỗi, kiểm tra bộ nhớ, bản đồ được sử dụng để hướng dẫn diễn giải để hiển thị. Không có thông tin ký hiệu này, trình gỡ lỗi cấp thấp cho phép bạn chỉ định: hiển thị địa chỉ này dưới dạng các từ 16 bit, hiển thị địa chỉ này dưới dạng dấu phẩy động dài, dưới dạng chuỗi ... bất cứ điều gì. Nhìn vào một kết xuất gói mạng hoặc định dạng tệp không xác định, đánh đố nó là một thách thức.
Đó là một nguồn sức mạnh và tính linh hoạt chính trong kiến trúc máy tính hiện đại: một ô nhớ có thể có nghĩa là bất cứ thứ gì , dữ liệu hoặc chỉ dẫn, chỉ ẩn trong ý nghĩa của nó đối với chương trình bởi những gì nó làm với giá trị và ảnh hưởng của nó đến các hoạt động tiếp theo. nghĩa là sâu hơn chiều rộng nguyên: những ký tự này ... ký tự trong ascii hay ebcdic? Hình thành từ bằng mã sản phẩm tiếng Anh hoặc SQU? Địa chỉ để gửi đến hoặc địa chỉ trả lại nó đến từ đâu? Việc giải thích thấp nhất cấp (bit logic; số nguyên-như, ký kết hoặc unsigned; float; BCD; con trỏ) là ngữ cảnh ở cấp hướng dẫn-set, nhưng nhận thấy rằng đó là tất cả các bối cảnh ở một mức độ nào: sự đểđịa chỉ là những gì nó là do vị trí nó được in trên phong bì. Nó theo ngữ cảnh của các quy tắc của người đưa thư, không phải CPU. Bối cảnh là một liên tục lớn, với các bit ở một đầu của nó.
※ Chú thích: Lệnh DAA được mã hóa dưới dạng byte 00100111
. Vì vậy, byte đó là lệnh đã nói ở trên nếu được đọc trong luồng lệnh và các chữ số 27
nếu được hiểu là các chữ số bcd và 0x27 = 39 là một số nguyên, là số 9 trong ASCII và là một phần của bảng ngắt (một nửa của INT 13 Địa chỉ 2 byte, được sử dụng cho các thói quen dịch vụ BIOS).