Вопрос № 45817: Здравствуте эксперты.
Скажите, зачем нужен нулевой дескриптор в дескрипторных таблицах (GDT и LDT) в защищенном режиме микропроцессоров... и нужен ли он вообще.
Спасибо....Вопрос № 45822: Добрый день Уважаемые эксперты!
Подскажите, как объявлять локальные переменные на языке ассемблер?
Те как например будет выглядеть на masm32 аналог такого объявления локальных переменных.
…
HDC hDC;
PAINTSTRUCT PaintStruct;
R...Вопрос № 45824: Пример №3 из рассылки Калашникова не работает.
Сассаблиравался, слинковался, но нефига не выводит.
только ждёт нажатиия клавиши.
Ассамблирую TASM'ом.(из ВС++ v.3.1)...Вопрос № 45834: Здраствуйте уважаемые эксперты! Даже не знаю куда отнести этот вопрос. Сюда или в WinAPI..
Сам вопрос в следующем:
Как перехватить нажатия "горячей" клавиши на клавиатуре и проинициировать даное "гарячее" нажатие как ...
Вопрос № 45.817
Здравствуте эксперты.
Скажите, зачем нужен нулевой дескриптор в дескрипторных таблицах (GDT и LDT) в защищенном режиме микропроцессоров... и нужен ли он вообще.
Спасибо.
Отправлен: 10.06.2006, 10:35
Вопрос задал: Mihasic (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: newinfo2005
Здравствуйте, Mihasic!
К примеру.
Если вы хотите использовать многозадачность в своей ОСи, но все задачи будут без LDT, то в регистр LDTR загружаем нулевой дескриптор в GDT, т.е. нулевой дескриптор выступает в роли отсутствуещего дескриптора.(точно не помню)
Насчёт этих дел посети сайт http://sasm.narod.ru
Удачи
--------- "Спасибо" - нет такой валюты.
Ответ отправил: newinfo2005 (статус: 7-ой класс)
Ответ отправлен: 10.06.2006, 12:41 Оценка за ответ: 4
Вопрос № 45.822
Добрый день Уважаемые эксперты!
Подскажите, как объявлять локальные переменные на языке ассемблер?
Те как например будет выглядеть на masm32 аналог такого объявления локальных переменных.
…
HDC hDC;
PAINTSTRUCT PaintStruct;
RECT Rect;
…
И если можно немного теории того, как их надо объявлять.
Отвечает: mix_mix
Здравствуйте, Шурыгин В.В.!
Хм, локальные - это всмысле в стеке?
Тогда:
LOCAL hDC: HDC
LOCAL Rect: RECT
LOCAL buf[255]: BYTE ; <- объявление массива байтов
Они обычно вставляются в начале процедуры, то есть
MyProc proc a:DWORD
LOCAL b: DWORD
xor eax, eax
... Пошел код
Ответ отправил: mix_mix (статус: 4-ый класс)
Ответ отправлен: 10.06.2006, 13:17
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Шурыгин В.В.!
Чтобы определить локальные переменные, необходимо вначале процедуры задать следующий код:
push ebp
mov ebp, esp
sub esp, <общая длина всех переменных>
Или тоже самое:
enter <общая длина всех переменных>,0
Тогда к переменным можно обращаться по [ebp-смещение]
А заканчивать надо по:
mov esp,ebp
pop bp
Или тоже самое:
leave
PS по [ebp+смещение] нужно обращаться к параметрам, которые передаются через стек
PSS чтобы не заморачиваться, гораздо проще задать LOCAL, и компилятор сам все вычислит и вставит
PSSS А вообще есть отладчик, там все видно...
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Студент)
Ответ отправлен: 13.06.2006, 12:46
Вопрос № 45.824
Пример №3 из рассылки Калашникова не работает.
Сассаблиравался, слинковался, но нефига не выводит.
только ждёт нажатиия клавиши.
Ассамблирую TASM'ом.(из ВС++ v.3.1)
Приложение:
Отправлен: 10.06.2006, 12:06
Вопрос задал: Arct (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Marid
Здравствуйте, Arct! В приложении Мне ничего не понятно. Объясни пожалуйста, что это всё значит?
Ответ отправила: Marid (статус: 1-ый класс)
Ответ отправлен: 10.06.2006, 12:18 Оценка за ответ: 1
Отвечает: newinfo2005
Здравствуйте, Arct!
Одно и тоже было в рассылках.
Но не поленюсь сказать еще раз.
...
_beg:
mov ax,0003h
int 10h
....
Приложение:
--------- "Спасибо" - нет такой валюты.
Ответ отправил: newinfo2005 (статус: 7-ой класс)
Ответ отправлен: 10.06.2006, 12:45
Вопрос № 45.834
Здраствуйте уважаемые эксперты! Даже не знаю куда отнести этот вопрос. Сюда или в WinAPI..
Сам вопрос в следующем:
Как перехватить нажатия "горячей" клавиши на клавиатуре и проинициировать даное "гарячее" нажатие как клик правой кнопкой мышки?Я нашол как отловить мышку или нажатие на клавиатуре... А вот как проэмулировать нажатие правой кнопки? И не просто выдать сообщение "Правая кнопка мыши была нажата", а чтобы выпадало то меню которое выпадает при нажатии правой кнопки в проводнике или в MS Word"е...
Отвечает: mix_mix
Здравствуйте, Пизний Владимир Владимирович!
В принципе, это конечно больше по WinAPI, нежели по ассемблеру. Ну да ладно, я и по WinAPI эксперт :)
Отлавливать нажатие кнопок клавиатуры лучше конечно через хуки, а не через RegisterHotkey, так как-то эстетичнее.
Эмулировать нажатие кнопки (правой) мыши можно через SendInput и mouse_event (советуют использовать первую, т.к. вторая якобы устарела):
mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
mouse_event(MOUSEEVENTF_RIGHTUP,0, 0, 0, 0)
Ответ отправил: mix_mix (статус: 4-ый класс)
Ответ отправлен: 10.06.2006, 21:07