Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Model flat,stdcall





option casemap: none; отличие строчных и прописных букв

PUBLIC Mas_sum

; константы

; сообщения, приходящие при открытии

; динамической библиотеки

DLL_PROCESS_DETACH equ 0

DLL_PROCESS_ATTACH equ 1

DLL_THREAD_ATTACH equ 2

DLL_THREAD_DETACH equ 3

Includelib kernel32.lib

Includelib user32.lib

ExitProcess proto: DWORD

Mas_sum proto: DWORD,: DWORD,: DWORD; прототип процедуры

Code

DLLENTRY:

Mas_sum proc EXPORT arg1: DWORD, arg2: DWORD, masiv: DWORD

Mov ebx, 0

Mov eax, masiv

Cmp eax, arg1

Jnc m1

Jmp _end

m1:

Cmp eax, arg2

Jc m2

Jmp _end

m2:

Inc ebx

_end:

Ret; возвращение управления ОС

Mas_sum endp; окончание процедуры с именем Mas_sum

; окончание программы с именем start

End DLLENTRY; директива окончания программы с именем DLLENTRY

Файл 1111dll.asm


.386

Model flat, stdcall

option casemap: none; отличие строчных и прописных букв

Include windows.inc

Include kernel32.inc

Include fpu.inc

Include user32.inc

Include msvcrt.inc

Includelib user32.lib

Includelib kernel32.lib

Includelib msvcrt.lib

Includelib fpu.lib

Includelib 1111.lib

ExitProcess proto: DWORD

Mas_sum proto: DWORD,: DWORD,: DWORD; прототип процедуры

Data; директива определения данные

_c dd 40

Sum dd 0

Op1 dd 6; запись в 32-разрядную память op1

Op2 dd 22; минимальных предел

frmt db " %d", 0

buf db 30 dup(?)

stdout DWORD?

stdin DWORD?

cRead dd?

temp dd?

Mas1 dd 40 dup(0)

st1 db " Vvesty masiv: "

st2 db " Вывод количества элементов в пределах (6, 22) массива! ", 0

St3 db 10 dup(0)

ifmt db " количество = %d", 0

Code; директива начала кода программы

_start:

Lea esi, mas1; загрузка адреса начала массива

Mov ecx, _c

m1:

Mov ebx, ecx

Invoke GetStdHandle, STD_OUTPUT_HANDLE

Mov stdout, eax

Invoke GetStdHandle, STD_INPUT_HANDLE

Mov stdin, eax

Invoke WriteConsoleA, stdout, ADDR st1, 14, NULL, NULL; VIVOD ST1

invoke ReadConsole, stdin, ADDR buf, 20, \

ADDR cRead, NULL; чтения числа как символ

Invoke crt_atoi, ADDR buf; преобразовать символ в число

mov [esi], eax

Add esi, 4

Mov ecx, ebx

Loop m1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Mov ecx, _c

Lea esi, mas1; загрузка адреса начала массива

mov eax, [esi]; загрузка числа

m3:

Invoke Mas_sum, op1, op2, eax

Add sum, ebx

Add esi, 4; расчет адреса нового числа

mov eax, [esi]

Loop m3

Mov ebx, sum

invoke wsprintf, \

ADDR st3, \

ADDR ifmt, \

Ebx

invoke MessageBox, \

NULL, \

addr st3, \

addr st2, \

MB_OK

Invoke ExitProcess, 0

Ret







Дата добавления: 2014-11-10; просмотров: 913. Нарушение авторских прав; Мы поможем в написании вашей работы!




Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...


Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Эндоскопическая диагностика язвенной болезни желудка, гастрита, опухоли Хронический гастрит - понятие клинико-анатомическое, характеризующееся определенными патоморфологическими изменениями слизистой оболочки желудка - неспецифическим воспалительным процессом...

Признаки классификации безопасности Можно выделить следующие признаки классификации безопасности. 1. По признаку масштабности принято различать следующие относительно самостоятельные геополитические уровни и виды безопасности. 1.1. Международная безопасность (глобальная и...

Прием и регистрация больных Пути госпитализации больных в стационар могут быть различны. В цен­тральное приемное отделение больные могут быть доставлены: 1) машиной скорой медицинской помощи в случае возникновения остро­го или обострения хронического заболевания...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Краткая психологическая характеристика возрастных периодов.Первый критический период развития ребенка — период новорожденности Психоаналитики говорят, что это первая травма, которую переживает ребенок, и она настолько сильна, что вся последую­щая жизнь проходит под знаком этой травмы...

РЕВМАТИЧЕСКИЕ БОЛЕЗНИ Ревматические болезни(или диффузные болезни соединительно ткани(ДБСТ))— это группа заболеваний, характеризующихся первичным системным поражением соединительной ткани в связи с нарушением иммунного гомеостаза...

Studopedia.info - Студопедия - 2014-2025 год . (0.008 сек.) русская версия | украинская версия