<<
>>

Минимальная программа консольного приложения

Минимальная программа консольного приложения на ассемблере выглядит так, как показано в листинге 16.14. Листинг 16.14. Фрагменты приложения рrg16_5.аsm ;рrgl6_5.asm ; Пример минимальной программы консольного Windows-приложения .486 .model flat,SТDСАLL include WindowConA.iпс ;Объявление внешними используемых а данной программе функций Win32 (ASCII): ехtrп АllосСопsоlе:РRОС ехtrп 5еtСопsоlеТitlеА:РRОС ехtrп ЕхitРгосеss:РRОС .data ТitlеТехt db 'Win32-console application' ,0 .
code start proc near ;точка входа в программу: ;запрос консоли call AllocConsole ;проверить успех запроса консоли test еах,еах ■ jz exit ; неудача ;выведем заголовок окна консоли SetConsoleTitie: push offset TitleText call SetConsoleTitlеА ;проверить успех вывода заголовка test еах,еах jz exit ;неудача ;работаем exit: :выход из приложения ;rотовим вызов VOID ExitРrосеss(UINТ uЕхitСоdе) push 0 call ExitProcess start endp end start Если убрать комментарии, то кода будет совсем немного.
В нем представлены вызовы трех функций: AllocConsole, SеtСопsоlеТitlе, ExitProcess. Первой функцией консольного приложения должна быть функция запроса кон- соли AllocConsole: BOOL AllocConsole(VOID): Для вызова функции AllocConsole не требуется никаких параметров. В случае успеха функция AllocConsole возвращает ненулевое значение, при неудаче — нуль. Выделенная консоль представляет собой типичное для Windows окно. Процесс в конкретный момент времени может использовать одну консоль. Если ему нужно запустить еще одну консоль, то прежняя должна быть закрыта или освобождена с помощью функции FreeConsole: BOOL FrееСопsоlе(VОID); В случае успеха функция FreeConsole возвращает ненулевое значение, при не- удаче — нуль. При завершении процесса выделенная процессу консоль освобождается авто- матически. В нашем случае использован именно этот вариант закрытия консоли — функцией ExitProcess: VOID ExitРrосеss(UINТ uЕхitСоdе); Функции ExitProcess передается код завершения процесса и всех завершаемых цепочек в этом процессе. Проанализировать этот код можно с помощью функций GetExitCodeProcess и GеtЕхitСоdеТhrеаd. В общем случае в различных ветвях кода может быть несколько точек выхода с вызовом функции ExitProcess. Задавая раз- личные значения кода завершения, можно идентифицировать причину заверше- ния процесса. Окно консоли может иметь заголовок, для отображения которого предназначе- на функция SetConsoleTitle: BOOL SеtСопsоlеТitlе(LРСТSТR IpConsoleTitie); У функции SetConsoleTitle один параметр — указатель на строку с заголовком консоли, заканчивающуюся нулем.
<< | >>
Источник: В. И. Юров. Assembler. Учебник для вузов. 2-е изд. 2003

Еще по теме Минимальная программа консольного приложения:

  1. Приложение 1. Программа дисциплины «Социология журналистики»
  2. Приложение 2. Программы дисциплин магистратуры по направлению 520609 «Социология журналистики» (выборочно)
  3. ДИСФУНКЦИЯ МОЗГОВАЯ МИНИМАЛЬНАЯ
  4. МЕТОД ИЗМЕНЕНИЙ МИНИМАЛЬНЫХ
  5. 5. Таблица минимальных размеров оплаты труда и кратности (в рублях)
  6. 6. Таблица минимальных и максимальных размеров и сроков наказаний по Уголовному кодексу РФ 1996 г.
  7. Установите минимальный срок для начала работы
  8. Программа Да и программа Нет
  9. Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ
  10. Критерий для подбора индивидуальных приемов — критерий мастерства, критерий оптимальности, критерий минимального усилия, критерий автоматизма.
  11. Статья 1208. Увеличение размера возмещения вреда в связи с повышением стоимости жизни и увеличением размера минимальной заработной платы
  12. Музыкальные концертные программы
  13. ПРИЛОЖЕНИЯ
  14. Приложения