Как говорилось в разд. 2.2 последний этап разработки программы это ее отладка. Хотя этап отладки является необязательным, однако нам необходимо научиться пользоваться отладчиком, т. к. отладчик лучше нам позволит понять некоторые важные тонкости ассемблера.
К тому же сложно представить программиста на ассемблере (и вообще любого программиста), который не умел бы пользоваться отладчиком. Существует большое количество отладчиков под MS-DOS, наиболее известными из них являются: Turbo Debugger от фирмы Borland, CodeView от Microsoft, AFDPRO.
Существует даже стандартный консольный отладчик, встроенный во всех версиях DOS/Windows, который вызывается командой debug.exe, но он очень убогий. Чтобы вам нигде не искать и не скачивать отладчик, мы будем использовать только отладчик CodeView, т. к. он стандартно входит в пакет MASM и обычно расположен в поддиректории BINR (файл cv.exe).
У большинства отладчиков пользовательский интерфейс подобен CodeView, поэтому если вы научитесь пользоваться CodeView, то без проблем при желании сможете воспользоваться любым другим отладчиком. Замечу, что отладчики под DOS не подходят для отладки Windows-приложений. Под Windows можно посоветовать такие популярные отладчики как SoftIce и OllyDbg.
50 ФАКТОВ О PSP — ИГРЫ,СЕКРЕТЫ,ФИШКИ
В качестве примера загрузим файл hello1.com (листинг 2.1) в отладчик CodeView. Для этого скопируйте файл в каталог отладчика (BINR) и запустите из командной строки следующим образом: cv hello1.com Отладчик CodeView у вас должен выглядеть примерно так, как на рис. 2.3. Сразу хочу предупредить, что пока загружен DOS-отладчик Windows будет скорее всего заметно подтормаживать, увы, с этим нельзя ничего поделать.
http://www.sklyaroff.ru | 48 |
Рис. 2.3. Программа, запущенная в отладчике CodeView Как видно экран отладчика состоит из нескольких окон. У каждого окна в левом верхнем углу стоит свой уникальный номер. Обычно по умолчанию открыты следующие окна: Окно 3 — дизассемблированный код. Окно 5 — содержимое памяти (в шестнадцатеричных кодах и в соответствующих им ASCII-символах).
Окно 7 — регистры процессора. Окно 9 — командная строка. С помощью меню отладчика «Windows» (меню расположено в самом верху отладчика) можно открыть другие окна отладчика, просто выбирая пункты меню с соответствующими названиями. Пункты меню можно выбирать мышью или нажатием клавиши и выделяя стрелками нужный пункт с последующим нажатием для выбора.
Закрыть любое окно можно, щелкнув мышью в его левом верхнем углу. Посмотрим содержимое окна регистров (окно 7). Как видите сразу после загрузки регистр IP=100h, а сегментные регистры CS, DS, ES, SS имею одно и то же значение равное адресу PSP (см. табл. 2.1). В нижней части окна регистров показаны значения флагов процессора.
Отладчик CodeView использует особые условные обозначения, показывающие состояния флагов (табл. 4.1). Обычно по умолчанию в окне регистров показываются только 16-битные регистры (AX, BX, CX, . ), но вы можете включить в меню «Options» пункт «32-bit registers» для отображения 32-битных регистров (EAX, EBX, ECX, . ). Таблица 4.1. Перечень и значения флагов, выводимых в отладчике CodeView
Программы и утилиты для PSP
Название флага | Выводимые значения CodeView | |
Флаг установлен | Флаг не установлен | |
Левый столбец | ||
Флаг переполнения OF | OV | NV |
Флаг прерывания IF | EI | DI |
Флаг нуля ZF | ZR | NZ |
Флаг паритета PF | PE | PO |
Правый столбец | DN | UP |
Флаг направления DF | ||
NG | PL | |
Флаг знака SF | ||
Флаг вспомогательного | ||
переноса AF | AC | NA |
Флаг переноса CF | CY | NC |
Источник: studfile.net
Что такое psp программы
Тип файла 1PaintShop Pro Файл изображения
разработчик | Corel |
популярность | 3,8 (26 голосов) |
категория | Растровые изображения |
Формат | Бинарный Х |
двоичный
Этот файл сохраняется в двоичном формате, который требует определенной программы для чтения его содержимого.
Что такое файл PSP?
Цветное растровое изображение, сохраненное в собственном формате PaintShop Pro; может содержать слои, направляющие, векторные пути, метаданные и другие объекты в файле изображения. Дополнительная информация
sceKernelSleepThread();
// поток засыпает
// если уснули все потоки, то единственное,
// что может случиться — это каллбек
// в этой программе эта строчка никогда не выполнится 😉
Все остальные функции лучше оставить такими, какие есть. Полную версию этой программы с комментарием к каждой строчке можно найти в архиве.
Итак, мы можем теперь выводить что угодно и узнавать, как на это реагирует пользователь. Самое время портировать Moria или какую-нибудь змейку Для полного текстового счастья не хватает, конечно же, цвета и возможности писать где угодно. Ради цвета я бы посоветовал использовать макрос, который я благополучно стырил откуда-то из хедеров к IDE:
typedef unsigned char byte;
// определяем, потому что DevKitPSP понятия не имеет,
// что есть такой тип
#define RGB(r,g,b) ((u32)((byte)(r)|((byte)(g)
Этот макрос выдает цвет, подходящий к любым функциям, связанным с цветом среди API PSP. Например, к функции установки фона для текста:
pspDebugScreenSetBackColor(RGB(0, 0, 255));
// ставим синий
или цвета самого текста:
pspDebugScreenSetTextColor(RGB(0, 255, 0));
// зеленый!
или даже установки символа в любую позицию:
pspDebugScreenPutChar(100, 100, RGB(255, 0, 0), ‘A’);
// ставим красный символ ‘A’ в точку с координатами (100, 100)
Кстати, координаты задаются в пикселях, а не в строках и столбцах символов.
Ну что ж, теперь ты можешь написать на экране PSP что угодно. Например, проклятие черными буквами на черном фоне своему врагу, или другу-готу. Или розовым по черному нарисовать ASCII-спанч боба. Или красным по розовому признаться в любви своей девушке (парню?). Или. а, о чем я. Решать тебе. Наслаждайся!
А в следующей статье я постараюсь рассказать про картинки. Хотя бы немножко
Источник: xakep.ru