![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 05.04.2008
Сообщений: 3
|
![]()
продскажите плиз как работают дирекимвы INVOKE , PROTO и LOCAL
заранее спасибо Последний раз редактировалось rpy3uH; 05.04.2008 в 14:22. |
![]() |
![]() |
![]() |
#2 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]()
директива INVOKE - упрощенный вызов процедуры на MASM, компилятор
генерит необходимое количество PUSH_ей и CALL, к примеру: строка invoke Sleep, 100 в exe-шнике будет такой - 00401000 6A64 push 64h 00401002 E847000000 call fn_0040104E ............. ............. 0040104E FF2508204000 jmp dword ptr [Sleep] все адреса естественно условные, в вашей программе они будут скорее всего другими. proto - определение процедуры, объясняет компилятору сколько и каких параметров имеет процедура синтиксис: function1 proto :DWORD, :DWORD означает, что процедура function1 имеет два параметра по четыре байта каждый.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
![]() |
![]() |
![]() |
#3 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
директива LOCAL нужна дял объявления локальный переменных с процедурах. Локальные переменные содержатся в стеке и существуют только во время выполнения процедуры.
Код:
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 18.11.2007
Сообщений: 13
|
![]()
PROTO - объявление прототипа функции (вроде так)
пример: GetMessageA PROTO :DWORD,:DWORD,:DWORD,:DWORD для функции GetMessageA объявлюются 4 переменные размером двойное слово, которые использует функция далее при вызове этой функции в программе следуют 4 параметра пример: invoke GetMessageA,offset message,NULL,NULL,NULL |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Чем отличается Tasm от Masm | veter_s_morya | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 17 | 21.07.2008 16:55 |
А где взять MASM | RomanIgorevi4 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 06.07.2008 13:04 |
Директивы компиляции | joker | Общие вопросы Delphi | 3 | 10.06.2008 09:41 |
struct vs MASM | format | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 09.05.2008 17:54 |
Директивы препроцессора в С++ | alef | Общие вопросы C/C++ | 1 | 25.04.2008 01:36 |