Cỏc thanh ghi đoạn
• Dài 16 bit và khụng chia làm 2 phần như thanh ghi đa năng
• Được sử dụng là địa chỉ cơ sở của cỏc lệnh trong chương trỡnh, stack và dữ liệu
– CS : chứa địa chỉ bắt đầu của chương trỡnh – DS : chứa địa chỉ của cỏc biến khai bỏo trong
chương trỡnh
– SS : chứa địa chỉ của bụ̣ nhớ Stack dựng trong chương trỡnh
– ES : chứa địa chỉ cơ sở bụ̉ sung cho cỏc biến bụ̣ nhớ
Cỏc thanh ghi đoạn
• Bộ nhớ 8086/88 đỏnh địa chỉ theo byte ,có 20 đường địa chỉ ?quản lý bn địa chỉ khác nhau -> chia thành cỏc đoạn để quản lý.
• Tại 1 thời điểm 8086/88 quản lý được 4 đoạn:
– Đoạn mó: Thanh ghi đoạn CS (Code Segment)
– Đoạn dữ liệu: Thanh ghi đoạn DS (Data Segment)
– Đoạn ngăn xếp: Thanh ghi đoạn SS (Stack Segment)
• Cỏc thanh ghi đoạn chỉ ra địa chỉ đầu của mỗi đoạn trong bộ nhớ. Dung lượng của mỗi đoạn là
64KB
• Việc thay đổi giỏ trị cỏc thanh ghi đoạn làm cho cỏc đoạn cú thể dịch chuyển một cỏch linh hoạt trong khụng gian 1MB bộ nhớ.
• Cỏc đoạn cú thể tỏch rời nhau hoặc nằm trựm lờn nhau.
Cỏc thanh ghi đoạn
• Nội dung của thanh ghi đoạn sẽ xỏc định ụ nhớ đầu tiờn trong đoạn, địa chỉ này gọi là địa chỉ cơ sở (địa chỉ đoạn Segment). Cỏc ụ nhớ tiếp theo được xỏc định bằng cỏch lấy địa chỉ cơ sở cộng thờm 1 giỏ trị gọi là địa chỉ lệch ( Offset). Địa chỉ lệch cũng được xỏc định bởi một thanh ghi khỏc gọi là thanh ghi offset.
Cỏc thanh ghi đoạn
• CS : xỏc định đoạn lệnh-nơi chứa chương trỡnh được thi hành
• DS : xỏc định đoạn dữ liệu-nơi chứa chương trỡnh được thi hành
• SS : xỏc định đoạn Stack-vựng làm việc tạm thời dựng đờ̉ theo dừi cỏc tham sụ́ và các địa chỉ đang được chương trỡnh hiện hành và sử dụng
• ES : trỏ đến đoạn thờm thường được sử dụng đờ̉ bụ̉ xung cho đoạn dữ liệu
Cỏc thanh ghi đoạn
1MB
Segment Register Offset Register