Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Таненбаум Э.- Архитектура компьютера. стр.566


Таненбаум Э.- Архитектура компьютера. стр.566

Самое существенное различие между MASM, TASM и as88 сводится к механизму выполнения системных вызовов. В MASM и TASM они совершаются с помощью системного прерывания INT. Самый распространенный его вариант — INT 21Н; он применяется для выполнения системных вызовов MS-DOS. Номер вызова при этом помещается в регистр АХ (вновь аргументы передаются регистрам). Различным устройствам соответствуют разные векторы и номера прерываний, например, INT 16Н для клавиатурных функций BIOS и INT ЮН для дисплея. Чтобы программировать эти функции, программист должен знать огромное количество данных о тех или иных устройствах. Системные вызовы UNIX, реализованные в as88, значительно проще.

Трассер

Рассматриваемый трассер/отладчик адаптирован для обычного (VT100) терминала 24 X 80 со стандартным для терминалов набором ANSI-команд. В машинах UNIX и Linux этим требованиям обычно отвечает эмулятор терминала в системе X-window. В машинах Windows для этой цели с файлами инициализации системы загружается драйвер ansi.sys; процедура загрузки которого будет описана далее. Структуру окна трассера мы уже показывали. Как видно из рис. В.4, экран трассера разделен на семь секций.

Таненбаум Э.- Архитектура компьютера.

Рис. В.4. Секции окна трассера

В верхней левой части окна находится секция процессора; в ней содержимое регистров общего назначения указывается в десятичном представлении, всех остальных регистров — в шестнадцатеричной. Поскольку численное значение счетчика команд не слишком информативно, строкой ниже определяется положение в исходном коде программы по отношению к предыдущей глобальной метке. Над полем счетчика команд показаны пять кодов условий. Переполнение обозначается символом и, флаг направления — символом > (увеличение) или < (уменьшение). Флаг знака может быть выражен символами п (отрицательные значения) или р (нуль и положительные значения). Установленный нулевой флаг обозначается как 2, а установленный флаг переноса — как с. Знак - означает сброшенный флаг.

В верхней средней секции размещается стек в шестнадцатеричном представлении. Положение указателя стека обозначается стрелкой (=>). Адреса возврата подпрограмм указываются цифрой, устанавливаемой перед шестнадцатеричным значением. В верхней правой секции выводится часть исходного файла, в которой находится следующая в порядке выполнения команда. Положение счетчика команд, как и положение указателя стека, определяется стрелкой (=>).

Под секцией процессора указываются последние точки вызова подпрограмм в исходном коде. Еще ниже находится секция команд трассера, где предыдущая команда указывается сверху, а курсор команды — снизу. Имейте в виду, что каждая команда должна завершаться символом возврата каретки (на клавиатурах ПК он вводится нажатием клавиши Enter).

В нижней секции могут находиться шесть элементов глобальной памяти данных. Каждый такой элемент начинается с позиции, отсчитываемой относительно той или иной метки, за которой следует абсолютная позиция в сегменте данных. Далее ставится двоеточие и выводится 8 байт в шестнадцатеричном представлении. Следующие 11 позиций зарезервированы для символов, за которыми могут следовать четыре слова в десятичном представлении. Байты, символы и слова представляют одну и ту же область памяти, но для символьного выражения


⇐ Предыдущая страница| |Следующая страница ⇒

.