Обговорення:Регістри
Матеріал з CybWiki
- Буник, не зловживай словом "вказівник". Сішні та інші вказівники — ті, до яких ми звикли, — мають інформацію про тип адресованих даних. Тут ми маємо справу просто з числами, які можуть бути інтерпретовані як зміщення всередині якогось сегменту. Повна "адреса" (тобто, сегментна адреса) обов’язково є пара сегмент:зміщення. Тому вміст якогось регістру не можна просто так називати адресою.
- "Кожен з сегментів пов'язаний з конкретним типом вмісту: кодом, стеком, чи даними. Наприклад регістр CS вказує на сегмент коду, DS, ES, FS, GS - на чотири сегменти даних. Регістр SS містить селектор для сегменту стеку. Всі стекові операції використовують SS, щоб знайти сегмент стеку. На відміну від регістра CS, SS можна змінювати явно, що дозволяє програмі мати кілька стеків, та переключатись між ними."
- Видаляю весь абзац. До твого відома, в сішній моделі пам’яті .tiny всі три основних сегментні регістри: CS, DS та SS вказують на один і той же сегмент. Просто код розміщений на початку сегмента, після нього йдуть дані, решта - стек, дно якого знаходиться в кінці сегменту. Така модель пам’яті була популярна для 16-бітних .COM-файлів, розмір яких мав головне значення. Пізніше завдяки віртуальній пам’яті у сегментів з’явились права на читання/запис/виконання, що призвело до чіткого розділення на код і дані. Тим не менше, і далі можливо мати в сегменті "даних" конкретно самі дані та стек одночасно. Хоча, в наш час це вже нікому не потрібно.
- Регістр CS дуже легко змінюється явно. Це називається far jump.
- Необхідно хоча б натякнути, що окрім селекторів є інші моделі адресації. --ulidtko 01:32, 18 травня 2009 (UTC)
- Згоден.--Bunyk 07:58, 18 травня 2009 (UTC)
[ред.] Проблеми перекладу
Якщо bug - вада, то debugging - зневадження, а не зневаження, хіба ні?--Bunyk 17:35, 18 травня 2009 (UTC)
- Абсолютно так. A typo... --ulidtko 03:26, 19 травня 2009 (UTC)