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

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

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. Нарушение авторских прав; Мы поможем в написании вашей работы!




Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


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


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

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

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

Законы Генри, Дальтона, Сеченова. Применение этих законов при лечении кессонной болезни, лечении в барокамере и исследовании электролитного состава крови Закон Генри: Количество газа, растворенного при данной температуре в определенном объеме жидкости, при равновесии прямо пропорциональны давлению газа...

Ганглиоблокаторы. Классификация. Механизм действия. Фармакодинамика. Применение.Побочные эфффекты Никотинчувствительные холинорецепторы (н-холинорецепторы) в основном локализованы на постсинаптических мембранах в синапсах скелетной мускулатуры...

Шов первичный, первично отсроченный, вторичный (показания) В зависимости от времени и условий наложения выделяют швы: 1) первичные...

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