adfun.ru
| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
TDeb 3.0 #2-3 = 69 =
Глава 12. Сопроцессор 80х87 и эмулятор
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Если в вашей программе используются числа с плавающей точ-
кой, Турбо отладчик позволяет вам проверять и изменять состояние
арифметического сопроцессора или программного эмулятора. Данная
глава предназначена для программистов, которые знакомы с работой
арифметического сопроцессора 80х87. Для отладки программ, которые
работают с числами с плавающей точкой, вам не обязательно исполь-
зовать возможности, описанные в данной главе, однако некоторые
трудноуловимые ошибки найти будет легче.
В данной главе мы обсудим различия между платой сопроцессора
80х87 и программным эмулятором. Мы также опишем окно Numeric
Processor (Арифметический сопроцессор) и покажем вам, как можно
проверять и модифицировать содержимое регистров с плавающей точ-
кой, биты состояния и управления.
Примечание: Данная глава предназначена для программис-
тов, которые знакомы с операциями сопроцессоров серии 80х87.
Сопроцессор 80х87 или эмулятор?
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Турбо отладчик автоматически распознает, используется ли в
вашей программе плата арифметического сопроцессора, или эмулятор,
и работает соответствующим образом.
Заметим, что большинство программ используют либо эмулятор,
либо сопроцессор, но не оба этих средства в одной программе. Если
вы написали специальный код на Ассемблере, использующий оба
средства, Турбо отладчик не сможет показать вам состояние платы
сопроцессора и будет сообщать только об эмуляторе.
Окно Numeric Processor
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Окно Numeric Processor (Арифметический сопроцессор) можно
создать с помощью команды основного меню ViewіNumeric Processor
(ОбзоріАрифметический сопроцессор). В строке в верхней части окна
выводятся текущий указатель инструкций, указатель данных и код
операции для инструкции. Указатель данных и указатель инструкций
выводятся в виде 20-разрядных физических адресов. Эти адреса мож-
но преобразовать в форму "сегмент:смещение", если использовать
первые 4 цифры, как значение сегмента, а последние 4 цифры, как
значение смещения.
Например, если в верхней части окна выводится IPTR=5A669,
это можно рассматривать, как адрес 5a66:9 (если вы хотите прове-
рить текущие данные и инструкцию в окне CPU (ЦП)). Это окно со-
держит три области: в левой области (области регистров) выводится
TDeb 3.0 #2-3 = 70 =
содержимое регистров с плавающей точкой, в средней области (об-
ласти управления) показываются значения управляющих флагов, а в
правой области (области состояния) показаны флаги состояния.
Й[*]НEmulator IPTR=000000 OPCODE=000 OPTR=00003Н[ ][ ]»
єEmpty ST(0) і im=0 і ie=0 є
єEmpty ST(1) і dm=0 і de=0 є
єEmpty ST(2) і zm=0 і ze=0 є
єEmpty ST(3) і om=0 і oe=0 є
єEmpty ST(4) і um=1 і ue=0 є
єEmpty ST(5) і pm=1 і pe=0 є
єEmpty ST(6) іiem=0 і ir=0 є
єEmpty ST(7) і pc=3 і cc=9 є
є і rc=0 і st=2 є
є і ic=1 і є
И<І±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±>ЩНННННННННННННЅ
Рис. 12.1 Окно Numeric Processor
В верхней части окна (первая строка) выводится информация о
последней выполненной операции с плавающей точкой:
- Emulator показывает, что арифметический сопроцессор эмули-
руется. При наличии арифметического сопроцессора вместо
этого индикатора появляется индикатор 8087, 80287 или
80387.
- IPTR показывает 20-разрядный физический адрес, из которого
была извлечена последняя инструкция с плавающей точкой.
- OPCODE показывает тип извлеченной инструкции. OPTR показы-
вает 20-разрядный адрес в памяти, на который инструкция
ссылается (если он имеется).
TDeb 3.0 #2-3 = 71 =
Область регистров
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
80-разрядные регистры с плавающей точкой
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
В области регистров показан каждый (от ST(0) до ST(7)) из
регистров с плавающей точкой и его состояние (valid/zero/special/
empty - допустимое/нулевое/специальное/пустое). Содержимо выво-
дится в виде 80-разрядных чисел с плавающей точкой.
Если вы переключили окно Numeric Processor (нажав клавишу
F5) или расширили его с помощью команды WindowіSize/Move (Ок-
ноіРазмер/Перемещение), вы также увидите непосредственное содер-
жимое регистров с плавающей точкой, выведенное в виде шестнадца-
тиричных байтовых значений.
Локальное меню области регистров
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Чтобы вывести локальное меню области регистров, нажмите кла-
виши Alt-F10, или для непосредственного доступа к команде меню
используйте клавишу Ctrl вместе с первой буквой имени команды.
ЪДДДДДДДДДДДДї
і Zero і Обнуление
і Empty і Пусто
і Change... і Изменение
АДДДДДДДДДДДДЩ
Команда Zero
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Команда Zero (Обнуление) устанавливает текущий (подсвечен-
ный) регистр в значение 0.
Команда Empty
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Команда Empty (Пусто) присваивает подсвеченному в данный мо-
мент регистру пустое значение. Это специальное состояние, показы-
вающее, что регистр не содержит более допустимых данных.
Команда Change
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Команда Change (Изменение) загружает в текущий (подсвечен-
ный) регистр новое значение. Допускается вводить целое значение
или значение с плавающей точкой. Введенное вами значение будет
преобразовано во временный 80-битовый вещественный формат, ис-
пользуемый арифметическим сопроцессором.
Эту команду можно вызвать, если просто начать печатать для
TDeb 3.0 #2-3 = 72 =
регистра с плавающей точкой новое значение. При этом будет выво-
диться окно подсказки (как при использовании команды Change).
TDeb 3.0 #2-3 = 73 =
Область управления
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Биты управления
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
В следующей таблице приведен список различных флагов управ-
ления, выводимых в области управления.
ЪДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Название в области і Описание флага і
ГДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і im і Маска недопустимой операции і
і dm і Маска ненормализованной операции і
і zm і Маска деления на нуль і
і om і Маска переполнения і
і um і Маска потери значимости і
і pm і Маска точности і
і iem і Маска разрешения прерывания (только і
і і для сопроцессора 8087) і
і pc і Управление точностью і
і rc і Управление округлением і
і ic і Контроль бесконечности і
АДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
Локальное меню области управления
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Для перемещения в область управления нажмите клавишу Tab,
затем для получения локального меню нажмите клавиши Alt-F10. (Вы
можете также использовать клавишу Ctrl вместе с первой буквой ко-
манды, что позволяет получить непосредственный доступ к команде.)
ЪДДДДДДДДї
Переключение і Toggle і
АДДДДДДДДЩ
Команда Toggle
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
|
adfun.ru
|
|
|
|