Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 481
от 29.01.2003, 19:30

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 2523
Отправлено ответов: 7645
Активность: 303.0 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Portnov
Статус: Профессиональный
Общий рейтинг: 113.95
URL: Мой сайтик...
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.17
URL: Страничка обо мне и моих друзьях
Телефон: +7 902 168 02 65
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 146.16
[Подробней >>]
 
Maverick
Статус: Профессиональный
Общий рейтинг: 139.89
URL: Задачи по ассемблеру
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
Eugene
Статус: Опытный
Общий рейтинг: 109.15
URL: мощный файловый архив
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.21
URL: Программирование
[Подробней >>]
 
Ayl
Статус: Профессиональный
Общий рейтинг: 118.19
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.03
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 117.89
[Подробней >>]
 
Sensey
Статус: Профессиональный
Общий рейтинг: 121.44
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 д.
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 126.47
URL: моя рассылка по Protected Mode
[Подробней >>]
DiGiT[old]
Статус: Опытный
Общий рейтинг: 108.63
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 2489. Здравствуйте эксперты! Взошла на меня идея поставить SoftIce под вынь98. Но... сразу по... (ответов: 4)
Вопрос № 2490. Здравствуйте!!! Eugene... я тут задвал вопрос про tasm 5, вы ответили но чета не получается помогите... (ответов: 1)
Вопрос № 2491. Доброго всем времени суток. Подскажите, как можно сравнить содержимое двух регистров побитно, наприм... (ответов: 5)
Вопрос № 2492. Здравствуйте уважаемые Эксперты! Опять обращаюсь к Вам за советом. Меня уже некоторое время мучает п... (ответов: 2)
Вопрос № 2493. Господа эксперты! не могли бы вы подсказать мне , где найти работаюший исходник, или *хорошую* докум... (ответов: 1)
Вопрос № 2494. Уважаемый Mrs Konst. К сожалению, я не знаю, как еще к Вам можно обратится, как только через эту ра... (ответов: 5)
Вопрос № 2495. Здравствуйте эксперты. Как определить принадлежность точки многоугольнику по углам этого многоугольн... (ответов: 1)
Вопрос № 2496. Здравствуйте! Задача: Есть упакованное двоично-десятичное число (например 23h - обозначает просто 23... (ответов: 3)
Вопрос № 2497. Здравствуйте, уважаемые эксперты! У меня несколько вопросов: 1. Как выгрузить из памяти резидентную ... (ответов: 5)

Вопросов: 9, ответов: 27


 Вопрос № 2489

Здравствуйте эксперты!
Взошла на меня идея поставить SoftIce под вынь98. Но... сразу
появилась куча вопросов:
1) если поставлю SoftIce, то не отразится это на других программах?
Будет ли он давать работать с графикой, программинго и т.д.? Или
поставить лучше еще одну ось (например, вынь 2000) и работать под ней.
Подскажите как лучше организовать это дело?
2) слышал я что для него надо чуть-чуть переделывать файлы настроек
для корректной работы.
3) если есть какая-либо инфа по работе с ним, то буду очень признателен.
Скачал себе IDA (помоему 4.51), а это бэта версия. Если у кого есть,
то скиньте на мыло что-то нормальное. Другие не предлагайте.
У меня их и так целая куча. Мне нужна именно IDA. Или нормальную
ссылку. А то поисковиком дал, он мне всякой гадости насувал, а
нормального ничего нет.
Такой еще вопрос. В каждом екзешнике есть такая программа-заглушка.
Вопрос:"можно ли в заглушке прописать код загрузки другого экзешника
за ранее известного в этом же каталоге"? Только не надо мне объяснять
что делает заглушка. Мне нужен конкретный ответ. Да (то как) или Нет
(то почему).
За ранее благодарен. С уважением, Анатолий



Вопрос отправлен: 24.01.2003, 19:26
Отправитель: Анатолий (selfpolice@e-mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Portnov

Приветствую Вас, Анатолий!
1)Отразится, конечно, в какой-то мере... Знаете, иногда бывает после установки OfficeXP появляются глюки с системным индикатором языка? Вроде совершенно неожиданный эффект, и все же... Так же и с сайсом - может чего-нибудь выдать, особенно если винда не идеально настроена... Другую операционку ставить смысла определенно не имеет - просто надо настроить существующую (и то не всегда надо - часто и так все работает).
2) Файлы настроек кого? Аутоэкзек установщик сайса изменяет (если вы под 98), и всякие там system.ini в других операционках - тоже. Вот главный настроечный файл самого сайса - winice.dat - вероятно, придется изменить, чтобы нормально работать... Но это, по-моему, даже в мануале описано.
3) кое-что есть, если никто ничего не даст, пишите portnov@mdv.ru - что-нить вышлю.
Про ИДУ - у меня самого 3.75 :(
Про заглушку (Stub): можно, и черта лысого можно... Stub - это полноценная DOS-программа. Яркий пример - инсталлятор Win98 - запускаете setup.exe, если под досом, то срабатывает stub и дальше работает уже какой-то другой экзешник (не помню какой), специально для установки винды из-под доса.
С уважением, Portnov.

Ответ отправлен: 25.01.2003, 20:35
Отправитель: Portnov


Отвечает Gibbel

Здравствуйте, Анатолий!
1) Предпочтительнее ставить несколько осей, так как все по-своемому организуют защиту, и, не исключено, что какие-либо из твоих программ будут ругаться на наличие SoftIce в памяти...
2) Точно ответить не смогу, так как давно не работал с SIce под 98-ми... Думаю, что с этим тебе помогут другие эксперты...
3) В инете полно инфы...
Далее... Программа-заглушка есть в экзешниках формата PE,NE,LE и им подбных... Заглушка - это обычный ДОСовский MZ-экзешник, который будет выполняться при запуске из под ОС не принимающей данный формат экзешника.
Хотя, процесс замены стандартной заглушки на свою различен для разных компиляторов/линковщиков, процесс этот не составляет труда.
В большинстве случаев необходимо добавить в .DEF файл проекта строчку типа
STUB MyStub.exe
Где MyStub.exe - имя исполняемого файла программы-заглушки.


Ответ отправлен: 24.01.2003, 19:49
Отправитель: Gibbel


Отвечает masquer

Доброе время суток, Анатолий!
1. Не должно. Ставь и работай.
2. Да, нужно. Документацию смотри.
3. Последняя IDA 4.30, релиз Zenith. В инете ищи, весит чуть больше 30 Мег.
А в последнем вопросе ты противоречишь сам себе - то объяснять не надо, то если - да, то как. Отвечу - Да, а объяснять не буду, во-первых, я уже рашьше это делал, а во-вторых, ты же сказал - не надо...

Ответ отправлен: 25.01.2003, 12:41
Отправитель: masquer


Отвечает Maverick

Здравствуйте, Анатолий!
1.Я делал так: когда нужен сайс, то гружусь обычно, а нет, то комментирую в autoexec его загрузку.
2.Ну да, там надо раскомментировать библиотеки и их пути, для корректной работы, где то была дока по установке.


Ответ отправлен: 27.01.2003, 05:03
Отправитель: Maverick


 Вопрос № 2490

Здравствуйте!!! Eugene...
я тут задвал вопрос про tasm 5, вы ответили но чета
не получается помогите
.386
.model flat, stdcall
include windows.inc
includelib import32.lib
extrn MESSAGEBOX:PROC
extrn ExitProcess:PROC
.data
MsgBoxCaption db "Помогите.", 0
MsgBoxText db "Пожалуйста", 0
.code
start:
call MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_OK
call ExitProcess, NULL
end start
компилю так
tasm32 -zn -ml -m3 -os /i%TASMPATH%Include %FI%.asm
tlink32 -Tpe -aa -c -L -V4.0 -L%TASMPATH%Lib %FI%.obj, %FO%.exe , , import32.lib



Вопрос отправлен: 25.01.2003, 00:31
Отправитель: lamachok (lamachok@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Eugene

Доброе время суток, lamachok!
.386
.model flat, stdcall

include windows.inc
extrn GetModuleHandleA:PROC
extrn MessageBoxA :PROC
extrn ExitProcess :PROC

.data
hInstance dd 0
MsgBoxCaption db "Помогите.", 0
MsgBoxText db "Пожалуйста", 0

.code
start:
call GetModuleHandleA, NULL
mov hInstance, eax
call MessageBoxA, NULL, offset MsgBoxText, offset MsgBoxCaption, MB_OK
call ExitProcess, NULL
end start
Компилим так:
tasm32 a.asm
tlink32 -ml -L include.lib mbox.obj, mbox.exe
Это для случая, если windows.inc и imort32.lib лежат рядом с mbox.asm.

Ответ отправлен: 25.01.2003, 13:16
Отправитель: Eugene


 Вопрос № 2491

Доброго всем времени суток.
Подскажите, как можно сравнить содержимое двух регистров побитно, например, числа в eax и ebx. Начинаем со старших битов и как только бит в eax больше, чем в ebx, то результат - 1, и наоборот. Для меня самое главное - побитное сравнение регистров.
Большое спасибо всем ответившим мне на предыдущий вопрос.



Вопрос отправлен: 25.01.2003, 00:46
Отправитель: Andrew

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Добрый день, Andrew!
Обычный cmp так и делает. Только результат он заносит во флаги. После него уместно поставить команду условного перехода и дальше - все, что хочешь.
cmp eax, ebx
jnc {eax больше или равен (без знака)}
ja {eax больше без знака}
...


Ответ отправлен: 25.01.2003, 16:50
Отправитель: Bob Johnson


Отвечает Ayl

Здравствуйте, Andrew!
Ну, вообще-то то, что ты написал, выполняется, например, командой cmp:
mov [result], 0
cmp eax, ebx
jbe less ; переход в случае ebx >= eax
mov [result], 1
less:
eax > ebx как раз в описанном тобой случае.
Если же ты хочешь осуществлять выделение битов, то нужно использовать команды test, and, or и xor.

Ответ отправлен: 26.01.2003, 21:24
Отправитель: Ayl


Отвечает masquer

Доброе время суток, Andrew!
Есть такая инструкция - OR. Кажеться, это то, что тебе нужно.

Ответ отправлен: 25.01.2003, 12:35
Отправитель: masquer


Отвечает Maverick

Здравствуйте, Andrew!
Может есть путь и короче, но можно с помощью команд сдвига.
al - первое сравниваемое число
bl - второе.
mov cx,8
cycle:
xor ah,ah
xor bh,bh
shl ah,1
shl bh,1
...сравнение и т.д.
loop cycle


Ответ отправлен: 27.01.2003, 05:03
Отправитель: Maverick


Отвечает vitya

Приветствую Вас, Andrew!
на самом деле я не понимаю зачем тут побитное сравнение если можно вычесть одно число из другого (ebx - eax) и если число отрицательное вернуть -1.
Если так нужно побитовое сравнение то могу предложить следующий алгоритм
создаешь массив масок
10000000b
01000000b
00100000b
00010000b
00001000b
00000100b
00000010b
00000001b
назом массив mask;
блок схема алгоритма следующая
mov cx, 0
mov i, cx
mov cx, 8
cycle:
xor dx, dx
test ax, mask[i];
jz testb;
or dx, 1
testb:
test bx, mask[i]
jz test_all
or dx, 2
test_all:
cmp dx, 3 ;если оба единицы
je loop
test dx, dx ; если оба нули
jz loop
cmp dx, 1 ; если аx=1 bx = 0
jne last:
mov dx, -1
ret
last:
mov dx, 1
ret
loop:
inc i
loop cycle;
может есть опечатки, но суть я думаю ясна.

Ответ отправлен: 27.01.2003, 08:20
Отправитель: vitya


 Вопрос № 2492

Здравствуйте уважаемые Эксперты!
Опять обращаюсь к Вам за советом. Меня уже некоторое время мучает пара-тройка вопросов по оптимизации на скорость. Итак по-порядку.
ОС – мастдай.
1. Нужно провести несложную операцию с 2-мя большими массивами: прочитать число из одного, сделать кое-какие арифметико-логические операции, записать в другой массив (ессно речь идет о всех байтах массивов). Причем алгоритм заточен так, что не имеет значения по сколько байт считывать/записывать. Можно и DWORD-ми, и QWORD-ми (если пойти дальше и заточить алгоритм под MMX). Но есть одно но – самый младший и самый старший байты из группы, которая в данный момент обрабатывается влияют на крайние байты из соседних групп.
Так вот можно эту операцию провести за два прохода: за первый обрабатываем все байты массивов группами по 32 или 64 бит, а за второй только те, которые оказались на границах. Отсюда вопрос – имеет ли смысл обрабатывать массив по 64 бит (ессно MMX) или остаться при 32 битах. Но в таком случае за втрой проход придется прочитать/записать объем данных еквивалентный половине объема массива. А если по 64 бит – то только 25%.
2. Пункт 1 готовит изображение предназначеное ессно для того, чтобы его узрел юзверь. Внимание вопрос. Так, как массив из п.1 не что иное как информация о цвете каждого пикселя изображения, то как его наиболее быстро выводить на экран (фулскрин желательно). Так чтоб FPS-ов побольше. А то чуствуется мне что без прямого доступа (хе-хе) к видеопамяти предыдущий пункт не имеет особого смысла вообще. Выводить то придется попиксельно. Что вы мне посоветуете: Gdi, DirectX, OpenGL? (С OpenGL не знаком вообще).
3. Помнится Broken Sword обещал разобраться с куском кода, в котором было замного jmp-ов. Так вот конкретизирую вопрос: есть сишный switch или паскалевский case, например -
(Даный пример ессно для ДОС, так сказать для простоты, чтобы уловить суть:)
KeyChar = getch(); // get rest of keycode
switch (KeyChar)
{
case 72: DeltaY = -1; break; // down arrow
case 80: DeltaY = 1; break; // up arrow
case 75: DeltaX = -1; break; // left arrow
case 77: DeltaX = 1; break; // right arrow
default: Quit = false; // bad key
};
Как такой код наиболее компактно реализовать на Великом и Могучем? Если писать в лоб, тогда точно много jmp-ов получается. А что поделать ума не приложу.
Заранее благодарю, за помощь. И сори, если вопрос несколько туманный и длинный.



Вопрос отправлен: 25.01.2003, 02:50
Отправитель: Бадян (sba@litech.net)

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Здравствуйте, Бадян!
1. Ты уж весь алгорим приведи, т.к. иначе пока ничего не понятно (по крайней мере мне). И тогда уже лучше SSE вариант рассмотри.
2. Вариант первый: DIB (Device-Independent Bitmap) и bitblt. Медленно, но верно.
Вариант второй: Direct Draw. Создаешь буфер (Lockable), делаешь у него lock, пишешь в него все, что хочешь и делаешь unlock. Тут есть некоторые замечания: если у тебя последующая картинка зависит от предыдущей, то лучше хранить ее в оперативной памяти, а в процессе создания нового кадра заносить его и в ОЗУ и видеобуфер. Т.к. теоретически, видеобуффер, предназначенный только для записи (это ты укажешь как параметр lock) может находиться в видеокарте, и тогда запись в нее и в ОЗУ могут идти практически параллельно. Если же ты будешь изменять прямо видеобуффер, то тогда ты должен будешь еще из него и читать, что может замедлить все дело.
3. Если switch ты делаешь по переменной, диапазон значений которой ограничен, то быстрее всего будет сделать таблицу переходов, например, пусть eax принимает значения от 10 до 20:
jmp dword ptr [offset JumpTable + eax*4 - 10*4]
...
JumpTable dd offset proc1, offset proc2 ... offset proc11
Если же диапазон не ограничен, то тут сложнее - можно попытаться двоичное дерево построить или просто много cmp подряд.


Ответ отправлен: 25.01.2003, 16:50
Отправитель: Bob Johnson


Отвечает masquer

Доброе время суток, Бадян!
1. По-моему, и одного прохода достаточно.
2. DirectX и так напрямую работает.
3. Иногда lookup table помогает. Все зависит от алгоритма, а универсального решения нет.

Ответ отправлен: 25.01.2003, 12:54
Отправитель: masquer


 Вопрос № 2493

Господа эксперты! не могли бы вы подсказать мне , где найти работаюший исходник, или *хорошую* документацию по
1) NetBIOSу
2) программированию дисковода через порты
3) программированию com-портов
очень нужно.



Вопрос отправлен: 25.01.2003, 11:30
Отправитель: visor (visor@uic.asu.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Maverick

Добрый день, visor!
Есть книга:"А Р Х И Т Е К Т У Р А В В О Д А - В Ы В О Д А П Е Р С О Н А Л Ь Н Ы Х Э В М I B M P C"
Если надо, то Maverick@nightmail.ru


Ответ отправлен: 25.01.2003, 17:18
Отправитель: Maverick


 Вопрос № 2494

Уважаемый Mrs Konst.
К сожалению, я не знаю, как еще к Вам можно обратится,
как только через эту рассылку.
Ваши предложения очень понравились нашей фирме, и мы
хотим применить их в будущей новой полностью 64-х
разрядной операционной системе. Свяжитесь с нами по адресу billy@microsoft.com .
Мы понимаем, что в России не осталось хороших программистов, которые смогли бы разобраться в ядре наших операционных систем, поэтому мы передаем вашей правительственной организации НТЦ «АТЛАС» исходные коды. Мы не могли раньше предоставить их, потому что защищали пользователей от неумелого и враждебного изменения кода наших систем. Наши системы ориентированы даже на неподготовленного пользователя, и мы будем следовать этим принципам и далее.
С уважением Билл Гейтс.



Вопрос отправлен: 25.01.2003, 15:27
Отправитель: Билл Гейтс

[Следующий вопрос >>] [Список вопросов]

Отвечает ASMодей

Добрый день, Билл Гейтс!
Особенно интересно начало письма: УважаемЫЙ миссис konst!

Ответ отправлен: 25.01.2003, 22:32
Отправитель: ASMодей


Отвечает Maverick

Уважаемый Билл Гейтс, данная рассылка существует не для рекламных целей и не для общения с пользователями мастдая.


Ответ отправлен: 25.01.2003, 17:18
Отправитель: Maverick


Отвечает Eugene

Здравствуйте, Билл Гейтс!
Что за ерунда? Если у тебя есть исходники просто положи их себе в.., ой, на сайт.

Ответ отправлен: 25.01.2003, 15:42
Отправитель: Eugene


Отвечает Bob Johnson

Приветствую Вас, Билл Гейтс!
А в принципе Билл прав. Если начать писать драйвера на Visual Basic, т.е. они будут выполняться транслятором, который, естественно, будет встроен в процессор, то зависания операционной системы из-за таких проблем, как конфликт драйверов, сбой оборудования (что обычно приводит к сбою соответствующего драйвера), ошибка в драйвере и т.д. будут полностью исключены. Потому что в этой ситуации транслятор обнаружит ошибку и позволит пользователю исправить ее или просто выполнить on error resume next (или другое действие, например, обратиться на сайт производителя, чтобы тот в реальном времени мог выслать patch, new version или обработать ошибку удаленно).
Развивая свою мысль, прихожу к выводу, что Visual Basic и Assembler - это языки одного уровня, различия между которыми составляют всего несколько лет. Не пугайтесь бессмысленности этой фразы, я сейчас все поясню:
Ведь Asm, в принципе, тоже выполняется транслятором. Но это - аппаратный транслятор, входящий в состав процессора. А, как я уже отметил выше, транслятор Visual Basic будет встроен в процессор в будущем, т.е. через некоторое время (через несколько лет) - вот отсюда и возникает эта разница.
Так что встречаем - Visual Basic! (громкие и продолжительные апплодисменты - все встают и хлопают в ладоши).
P.S. Mrs. = Mistress, т.е. женский род. А если же "увожаемы", то Mr. Ну я понимаю, ты же так и не закончил институт...


Ответ отправлен: 25.01.2003, 16:50
Отправитель: Bob Johnson


Отвечает masquer

Доброе время суток, Билл - Гей, тс!
Продолжу с исправления ошибок - после "с уважением" запятая ставится, обычно.
Что ж это ты, билли, за персоналом не следишь? А они-то, шельмецы, уже имеют полностью 64-разрядную систему, а ты-то, главный, и не в курсе был! Ай-яй-яй, Билли, пора менеджеров разгонять, за то что не докладывают как следует, а ты тут позоришься, нехорошо...

Ответ отправлен: 26.01.2003, 13:11
Отправитель: masquer


 Вопрос № 2495

Здравствуйте эксперты.
Как определить принадлежность точки многоугольнику по углам
этого многоугольника относительно рассматриваемой точки?
зы
Удачи!



Вопрос отправлен: 25.01.2003, 15:54
Отправитель: kuper

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Приветствую Вас, kuper!
Сумма углов для точки, принадлежащей многоугольнику должна быть равна 360 градусам

Ответ отправлен: 26.01.2003, 21:39
Отправитель: Ayl


 Вопрос № 2496

Здравствуйте!
Задача:
Есть упакованное двоично-десятичное число (например 23h - обозначает просто 23)
Как мне быстро преобразовать его в шестнадцатеричный вид?
Примеры для 8086 и 80386 проца
В приложении код, который я придумал...
Можно ли быстрее?
И на 386 просто умножение на 10 (mul) не будел ли быстрее серии сдвигов и сложений?


Приложение:


Вопрос отправлен: 25.01.2003, 16:07
Отправитель: Maks

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Добрый день, Maks!
Самое простое - использовать команду aad

Ответ отправлен: 26.01.2003, 21:45
Отправитель: Ayl


Отвечает Maverick

Добрый день, Maks!
Хех, на много быстрее, пользуйся сдвигом, помоему раз в 10, если не больше. Погляди ск-ко тактов занимает mul и shr.


Ответ отправлен: 25.01.2003, 17:18
Отправитель: Maverick


Отвечает Sensey

Доброе время суток, Maks!
Ну например так(Приложение)
Decode для байта, вся прога - слово....


Приложение:

Ответ отправлен: 25.01.2003, 16:48
Отправитель: Sensey


 Вопрос № 2497

Здравствуйте, уважаемые эксперты!
У меня несколько вопросов:
1. Как выгрузить из памяти резидентную программу (в ДОСе)? Т.е. я по int 27h выхожу, перед этим сажаю обработчик скажем на 20ое прерывание. Потом, если надо, я могу вернуть прерывание назад, но программа то при этом останется в памяти. Как ее убрать?
2. У меня WINXP, если я из FARа запускаю программу, к-рая выходит по int 27h, то панели FARа не появляются, а я остаюсь в коммандной строке, причем у окна по-прежнему заголовок FARа, а если я ввожу exit, то окно закрывается. Как-то можно сделать, чтобы возвращаться в FAR?
3. Немного не в тему. Можно ли как-то убрать тормоза в XP при работе досовских программ в окне?



Вопрос отправлен: 25.01.2003, 19:22
Отправитель: Макс

[Следующий вопрос >>] [Список вопросов]

Отвечает Broken Sword

Здравствуйте, Макс!
1. Главное, чтобы в MCB блоке сегмент был помечен как свободный, а то что там единички а не нолики - это один хрен
3. Нет нельзя (чуть чуть можно повысив до максимума приоритет процесса NTVDM по ctrl+alt+del)

Ответ отправлен: 25.01.2003, 22:38
Отправитель: Broken Sword


Отвечает Ayl

Доброе время суток, Макс!
1. Использовать функцию освобождения памяти (49h) прерывания 21h. При этом ES должен указывать на PSP выгружаемой программы.

Ответ отправлен: 26.01.2003, 21:49
Отправитель: Ayl


Отвечает Maverick

Добрый день, Макс!
1.Проще всего запускай из VC(VolkoffCommander), там есть опция выгрузки резидента.


Ответ отправлен: 27.01.2003, 05:32
Отправитель: Maverick


Отвечает Bob Johnson

Здравствуйте, Макс!
1. Тебе нужно освободить область памяти, которую занимают переменные окружения твоей прогаммы и, затем, область памяти, которую занимает твоя программа itself. Сегментный адрес переменных окружения (т.е. то, что тебе и нужно!) находится по адресу 2Ch в PSP. Передаешь это параметром функции 49h и затем также программу удаляешь. После чего 4c00h и int 21h
2. Найди у себя файл config.nt (обычно: windows\system32\) и в нем добавь строку: NTCMDPROMPT и все...
3. Я думаю, что нет. Если хочешь - переходи в полный экран.


Ответ отправлен: 26.01.2003, 21:17
Отправитель: Bob Johnson


Отвечает DiGiT[old]

Здравствуйте, Макс!
Смотри пишешь прогу деактиватор. Ей передаешь через какую нить область памяти адрес и размер твоего резидента, потом этой прогой киляешь эту область памяти., прога завершается и все нормально

Ответ отправлен: 27.01.2003, 06:59
Отправитель: DiGiT[old]



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (38)
C / C++ (29)
Perl (7)
Delphi (17)
Pascal (23)
Basic / VBA (14)
Java / JavaScript (12)
PHP (9)
MySQL / MSSQL (8)
Пользователю
Windows 95/98/Me (36)
Windows NT/2000/XP (30)
"Железо" (34)
Поиск информации (18)
Администратору
Windows NT/2000/XP (12)
Linux / Unix (13)
Юристу
Гражданское право (9)
Семейное право (6)
Трудовое право (5)
КоАП (4)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное