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ì ?

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.

6 Likes

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ỉ ?

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.

6 Likes

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

Có tìm dc sagment và offset khi biết địa chỉ vật lý k ạ

Giờ ko còn real mode nữa bạn :smiley: vì địa chỉ vật lí 20 bit mà off 16 bit nên lấy seg nhân 10h.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?