Меню сайта

Урок 27. Предназначение сегментов

Каждый из -сегментных регистров имеет свое, -отмеченное выше назна-
— — — чение. В -некоторых случаях, однако, — болееудобна связь — с данными
— — — вне -сегмента — данных, — например, -с — небольшой — областью -данных в
— — — программе. В большинстве случаев программаработает с данными в той
— — — области, -на — которую — указывает -регистр — DS, — но иногда программе
— — — требуется -ссылка на — локальнуюпеременную, — находящуюся в — — — кодовом
— — — сегменте -программы. — Чтобы — — осуществить — эту — ссылку, — приходится
— — — изменять обычное использование — сегментов. Фиг.3.8 показывает такую
— — — органзацию программы.

— — — — — — — — — — — — — -ГДДДДДДДДДДДДДДДДДДДЕДДДДДД CS
— — — — — — — — — — — — — -і Программа и і
— — — — — — — — — — — — — -і — — — — — — — — — — — — і
— — — — — — — — — — — — — -і — локальные данные і
— — — — — — — — — — — — — -і — — — — — — — — — — — — ГДДДДДДCS:LOCAL_VALUE
— — — — — — — — — — — — — -ГДДДДДДДДДДДДДДДДДДДґ
— — — — — — — — — — — — — -і — — — — — — — — — — — — і
— — — — — — — — — — — — — -і — — — — — — — — — — — — і
— — — — — — — — — — — — — -і — — — — — — — — — — — — і
— — — — — — — — — — — — — -ЕДДДДДДДДДДДДДДДДДДДЕДДДДДД DS
— — — — — — — — — — — — — -і Основная — — і
— — — — — — — — — — — — — -і — — — — — — — — — — — — і
— — — — — — — — — — — — — -і область даных — — — — і
— — — — — — — — — — — — — -і — — — — — — — — — — — — і
— — — — — — — — — — — — — -ГДДДДДДДДДДДДДДДДДДДґ
— — — — — — — — — — — — — -і — — — — — — — — — — — — і

— — — — — -Фиг. 3.8 Переназначение CS на локальные данные.

— — — — — Вместо — — — — — изменениязначения — регистра DS, — чтобы он -указывал на
— — — программный сегмент, команда изменяет — ссылку на данные, показывая,
— — — что переменная расположена в сегментекодов (Code Segment).

— — — — — INC — — CS:LOCAL_VARIABLE

— — — Это -делается с — помощью префикса — «CS:». В — машинном языке команда
— — — переопределения — сегмента выглядит — — — какоднобайтовый — префикс перед
— — — обычной командой машинного языыка. 8088понимает этот префикс пере-
— — — назначения — — — сегментаи — изменяет обычный — способ вычисления адреса.
— — — Вместо регистра DS процессор — использует для вычисления физического
— — — адреса -данных — регистр — CS. — -Одного — префикса — в — — — — — команде — всегда
— — — достаточно, так — как 8088 может адресоваться -в ней не более — чем к
— — — одной ячейке памяти.
— — — — — Для нормального — обращения к данным -команда может использовать
— — — любой из -четырех сегментных регистров. Регистр -DS используется по
— — — умолчанию, — — — тоесть — когда в — команде не — указандругой — сегментный
— — — регистр, -то — используется — — — — — DS. -Помните, — что — при использовании в
— — — адресных вычислениях регистра BP — сегментом по умолчанию становится
— — — стековый сегмент. — Команда может определить и — любой из трех других
— — — сегментных — — — регистров,указав — его в — адресном выражении. Некоторые
— — — команды, правда, — не могут пользоваться -переназначением сегментов.
— — — Это — команды — — обработки строк. — — — — — Строковая — команда — определяет
— — — использование — регистров — неявным — образом, -и — оно — не — может быть
— — — изменено. В главе 4 мы обсудим строковыекоманды и их специфическое
— — — пользование сегментами.

Категория: Программирование на Ассемблере | Дата: 18.02.13

Меню раздела
Блок