30/09/2018, 18:46

Assembly về OFFSET và SEGMENT

Trong vi xử lý của intel thì nó phân ra 2 mảng là offset và segment.
Vậy để hiểu rõ được 2 cái chúng ta đặt câu hỏi OFFSET là gì ? và SEGMENT là gì ?

*grab popcorn* viết 20:57 ngày 30/09/2018

OFFSET là độ dời
SEGMENT là đoạn

Bộ nhớ được chia thành các đoạn, mỗi đoạn gồm nhiều ô nhớ được đánh địa chỉ liên tục. Để truy cập một ô nhớ trong 1 đoạn, ta cần biết độ dời của nó so với địa chỉ ở đầu đoạn. Vì sao nói ra hơi dài dòng và mình cũng chả nhớ rõ, nhưng mục đích chính là để phân chia, quản lý, bảo vệ bộ nhớ cho các chương trình tốt hơn.

Để dễ hiểu thì: SEGMENT là một lớp học với tên lớp
OFFSET là mã số sv của lớp học
Vậy nên khi cần kêu sinh viên nào, chỉ cần đưa ra tên lớp + mssv là có thể truy vấn ra thằng đó ngay.

ntd viết 20:58 ngày 30/09/2018

Cảm ơn cậu ! vậy khi định địa chỉ luôn có 2 thằng này để xác định dữ liệu nhỉ ?

*grab popcorn* viết 20:58 ngày 30/09/2018

2 thằng này dùng để xác định địa chỉ vật lý của ô nhớ cần truy cập. Từ SEGMENT và OFFSET đổi sang địa chỉ vật lý thì lấy số segment * 64 + offset.

ntd viết 20:46 ngày 30/09/2018

Cảm ơn cậu mình hiểu hơn rồi !

Thế Anh Nguyễn viết 11:50 ngày 18/08/2021

mình tưởng Từ SEGMENT và OFFSET đổi sang địa chỉ vật lý thì lấy số segment * 16 + offset chứ nhỉ? 

 

Bài liên quan
0