Статус нашего сайта: |
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Самое существенное различие между 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 позиций зарезервированы для символов, за которыми могут следовать четыре слова в десятичном представлении. Байты, символы и слова представляют одну и ту же область памяти, но для символьного выражения |