Quản lý bộ nhớ Real mode

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Quản lý bộ nhớ Real mode

Bài gửi  luutuankietI12a on 25/4/2012, 15:15

real mode : đã có trong CPU 8088, CPU được dùng để xây dựng máy IBM PC đầu tiên. Đây là cơ chế quản lý bộ nhớ thật dùng kỹ thuật phân đoạn (segmentation).

Nguyên lý hoạt động :
- Không gian bộ nhớ của chương trình là 1 tập các segment, mỗi địa chỉ truy xuất được xác định bởi chương trình gồm 2 tham số : chỉ số segment + offset, mỗi tham số dài 16 bit. Ở góc nhìn lập trình, mỗi phần mềm có 216 segment, mỗi segment có 216 byte → mỗi chương trình dài maximum 4GB!

- Thường thì chương trình sẽ truy xuất tuần tự các ô nhớ nên tham số segment sẽ được chứa vào 1 trong các thanh ghi segment (CS, DS, ES, SS), mỗi lệnh máy chỉ cần miêu tả offset của ô nhớ cần truy xuất.

- Máy sẽ đổi địa chỉ ảo sang địa chỉ thật theo công thức sau : physical address = segment * 16 + offset,

-Bit A20 của kết quả hoặc bị bỏ đi (trong chế độ A20 disable), hoặc được giữ lại và dùng (trong chế độ A20 enable). Chế độ A20 được thiết lập trong ROM BIOS.

- Theo cách đổi địa chỉ ảo như trên, ta thấy các segment phần mềm khác nhau có thể giao nhau, độ lệch tối thiểu của 2 segment là 16 ô nhớ (1 paragraph).

- Thí dụ các ô nhớ 0:80H ≡1:70H ≡ 2:60H ≡ 3:50H ≡ 4:40H ≡ 5:30H 6:20H ≡ 7:10H ≡ 8:0H đều chiếm cùng 1 ô nhớ RAM.

- Không gian RAM mà chương trình truy xuất được thực tế là 1MB (A20 disable) hay 1MB + 65520 B (A20 enable). Ta gọi phần trên 1MB là HIGH MEMORY.

luutuankietI12a

Tổng số bài gửi : 7
Join date : 16/02/2012

Xem lý lịch thành viên

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết