Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metodichka_PP_02_KS41.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
130 Кб
Скачать
☆

Анализ простой программы наАссемблере.

Для запуска программы нужно набрать её в средеFlatAssemblerинажать кнопку«F9» (рисунок1.Запускпрограммы)

Рисунок1.Запускпрограммы.

После запуска программы на выполнение откроется диалоговоеокно(рисунок2.Диалоговоеокно.)

Кодпрограммы:

include'win32ax.inc'

Рисунок2.Диалоговоеокно.

include user32.inc, include kernel32.inc, include WINDOWS.INC -Подключаемыемодулиописывающие процедуры находящиеся в библиотекахuser32.dll, kernel32.dll.Windows.incвсякие константы типаNULLзаменяется на0, MB_OKCANCELзаменяется на1

include 'WIN32AX.INC'.Аналогично,только одна библиотека заменяет всё,такжеделаетWindowsприложения.

.code

Секция.code:набор команд процессора выстроенные определенным образомчтобыполучилось,что-нибудь полезное или вредное–вамрешать.

start:

Start:это метка(смещение)обозначающее компилятору,где начинатьпрограмму.

invoke MessageBox,HWND_DESKTOP,"Привет!!!Меня зовут-АрхиповВладимир Валерьевич.", invokeGetCommandLine,MB_OK

Invokeкоманда придуманная Стивеном Хатчессон(Сидней,Австралия)Для тогочтобыупростить написание подwindows.

MessageBox, ExitProcess -Подпрограммы находящиеся в разныхDLLвWindowsзанимиидут аргументы(чтобы писать на ассемблере,нужно ОЧЕНЬ МНОГО ЗНАТЬ).УExitProcessодин аргументNULLили просто0,сMessageBoxсложнее аж4аргумента.

ВызываемMessageBox

параметры:

  1. хэндл родительского окна-у нас окна нет,поэтому передаёмHWND_DESKTOP

(ксати говоряHWND_DESKTOP=0 [можно просто передать0])

  1. адрес строки сообщения вFASM - message=адрес, [message]=значение(вквадратныхскобках)

  2. адрес строки заголовка

  3. типMessageBox–

MB_OK=000000h //мывыбрали этот-можно другой или несколько другихMB_OKCANCEL =000001h //типаMB_OK+MB_TOPMOST

MB_ABORTRETRYIGNORE =000002h //это всё прописано вuser32.incMB_YESNOCANCEL =000003h

MB_YESNO =000004hMB_RETRYCANCEL =000005hMB_ICONHAND = 000010hMB_ICONQUESTION =000020hMB_ICONEXCLAMATION =000030hMB_ICONASTERISK = 000040hMB_USERICON =000080h

MB_ICONWARNING =MB_ICONEXCLAMATIONMB_ICONERROR =MB_ICONHANDMB_ICONINFORMATION =MB_ICONASTERISKMB_ICONSTOP =MB_ICONHANDMB_DEFBUTTON1 = 000000hMB_DEFBUTTON2 = 000100hMB_DEFBUTTON3 = 000200hMB_DEFBUTTON4 =000300h

MB_APPLMODAL =000000hMB_SYSTEMMODAL =001000hMB_TASKMODAL = 002000hMB_HELP = 004000hMB_NOFOCUS =008000hMB_SETFOREGROUND = 010000h

MB_DEFAULT_DESKTOP_ONLY =020000hMB_TOPMOST =040000h

MB_RIGHT = 080000hMB_RTLREADING =100000h

MB_SERVICE_NOTIFICATION =200000h

invokeExitProcess,0

Число,0обозначает конецстроки.

Завершаем процесс-передаём0 (можно ничего не передавать- invokeобовсёмпозаботится)

.endstar

.end star:это метка(смещение)обозначающее компилятору,гдезаканчиватьпрограмму.

Задания на производственнуюпрактику.

    1. Ознакомление с целями и задачами практики.Ознакомлениесинструкцией по охране труда,технике безопасности ипожарнойбезопасности при работе с вычислительной техникой.В данномразделекратко перечисляются основные аспекты безопасной работысвычислительной техникой(ориентируемый объем части– 1-2листа)