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

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


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

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

Выпуск № 499
от 07.03.2003, 21:10

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


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

Joy
Статус: Доверительный
Общий рейтинг: 122.56
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 150
URL: Программирование
[Подробней >>]
Igoryk
Статус: Профессиональный
Общий рейтинг: 132.53
URL: IgorykSoft
[Подробней >>]
 
DiGiT[old]
Статус: Профессиональный
Общий рейтинг: 110.44
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.12
URL: Страничка обо мне и моих друзьях
Телефон: +7 902 168 02 65
[Подробней >>]
Eugene
Статус: Опытный
Общий рейтинг: 109.5
URL: мощный файловый архив
[Подробней >>]
 
Maverick
Статус: Профессиональный
Общий рейтинг: 138.44
URL: Задачи по ассемблеру
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 118.44
[Подробней >>]
St
Статус: Опытный
Общий рейтинг: 110.12
[Подробней >>]
 
akul
Статус: Доверительный
Общий рейтинг: 117.39
[Подробней >>]
Andrew Vext
Статус: Опытный
Общий рейтинг: 108.02
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 144.37
[Подробней >>]
 
Portnov
Статус: Профессиональный
Общий рейтинг: 113.19
URL: Мой сайтик...
[Подробней >>]


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

Вопрос № 2684. Привет Эксперты! Пришлите мне пожалуйста архив рассылки "Ассемблер ? Это просто!" по досу.... (ответов: 3)
Вопрос № 2685. Люди подскажите в чем разница между командами PUSHA и PUSHAD.Please.... (ответов: 1)
Вопрос № 2686. Доброго времени суток. Господа эксперты, у меня к вам вопрос по установке MASM 6.11. После установке... (ответов: 2)
Вопрос № 2687. Подскажите пожалуйста как в Асьме написать резидентную прогу под Wind-ы, которая бы принимала все со... (ответов: 5)
Вопрос № 2688. Доброе время суток эксперты! есть проблема..нижеприведенная программка должна выводить все ASCII сим... (ответов: 5)
Вопрос № 2689. Ув. Эксперты! у меня такой вопрос. Мне очень(ОЧЕНЬ) нужно вытащить из NFS6 переменную скорости. то е... (ответов: 2)
Вопрос № 2690. Здравствуйте, уважаемые Эксперты. У меня к вам несколько вопросов: 1. На каком уровне привилегий раб... (ответов: 4)
Вопрос № 2691. Доброе время суток, ув. Эксперты! Сорри за оффтопик, но даже не знаю куда задавать. Дело в том, что ... (ответов: 5)

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


 Вопрос № 2684

Привет Эксперты!
Пришлите мне пожалуйста архив рассылки "Ассемблер ? Это просто!" по досу.
P.S.Не ссылайтесь на Subscribe.Ru, номеров много - интернета мало :=]
ToshibA



Вопрос отправлен: 02.03.2003, 21:05
Отправитель: ToshibA (ToshibA@nm.ru)

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

Отвечает Joy

Приветствую Вас, ToshibA!
Я чета не понял, чем архив у нас отличается от того, что лежит на Сабскрайбе? Если нужны отдельные номера то с него и качай, а архив целиком ты можешь взять на сайте у Боба Джонсона.

Ответ отправлен: 03.03.2003, 08:14
Отправитель: Joy


Отвечает Bob Johnson

Здравствуйте, ToshibA!
Скачай с моей страницы.
bobjohnson.nm.ru


Ответ отправлен: 03.03.2003, 13:52
Отправитель: Bob Johnson


Отвечает Igoryk

Здравствуйте, ToshibA!
к Бобу Донсону на сайт сходи.

Ответ отправлен: 04.03.2003, 14:06
Отправитель: Igoryk


 Вопрос № 2685

Люди подскажите в чем разница между командами PUSHA и PUSHAD.Please.



Вопрос отправлен: 02.03.2003, 22:56
Отправитель: Alexander

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

Отвечает Igoryk

Доброе время суток, Alexander!
Разница в битности. Команда Pusha заносит с стек 16-битные регистры (ax, bx, cx и т.д.), а PushaD - 32-битные регистры (eax, ebx, ecx и т.д.)

Ответ отправлен: 04.03.2003, 14:06
Отправитель: Igoryk


 Вопрос № 2686

Доброго времени суток.
Господа эксперты, у меня к вам вопрос по установке MASM 6.11.
После установке с диска запускаю компилятор MASM.EXE, а он ругается - "Программа MASM вызвала ошибку <нет данных> Программа MASM будет закрыта."
и рекомендация перезагрузить компьютер. В чем причина. (ОС WinMe)
Спасибо



Вопрос отправлен: 03.03.2003, 02:53
Отправитель: Сергей (intro@nikol.ru)

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

Отвечает Joy

Приветствую Вас, Сергей!
Из этой ситуации у тебя три варианта (основных) выхода:
1. Найди другую версию MASM'а
2. Пользуйся другим компилятором (например TASM'ом)
3. Устанавливай другую систему (например Вынь95/98, там можно работать из ДОСа)
Скорей всего у тебя что-то с ОС. Но может быть и железо. И нельзя исключать вариант битой версии MASM'а (попробуй найти его в другом месте и/или другую версию)

Ответ отправлен: 03.03.2003, 08:14
Отправитель: Joy


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

Здравствуйте, Сергей!
Насколько я помню она должна запускаться из под реального режима. А в винде защищенный :(

Ответ отправлен: 03.03.2003, 04:40
Отправитель: DiGiT[old]


 Вопрос № 2687

Подскажите пожалуйста как в Асьме написать резидентную прогу под Wind-ы, которая бы принимала все сообщения от клавиатуры. Можа и исходнички какие-нибудь по резидентам в Wind-ах, тожа ко мне скидывать.



Вопрос отправлен: 03.03.2003, 08:23
Отправитель: merd (isupov@gkso.ru)

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

Отвечает Bob Johnson

Здравствуйте, merd!
В виндах нет резидентов вообще. Все запущенные в винде программы работают как бы параллельно до тех пор, пока сами не закончатся или их не закроет пользователь.
Чтобы перехватывать сообытия от клавиатуры тебе нужен драйвер.


Ответ отправлен: 03.03.2003, 13:52
Отправитель: Bob Johnson


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

Добрый день, merd!
Под виндой что не резидент, то шпион. Резидент это понятие доса, так как его там как бы не видно, но он есть. А под виндой написать резидента сложнее, там хорошим process viewеrоm мона его рассекретить :)) А хороший резидент под виндой уже называется вирь :).


Ответ отправлен: 04.03.2003, 08:17
Отправитель: DiGiT[old]


Отвечает Igoryk

Здравствуйте, merd!
Используй хуки. Резиденты под Windows - самые простые программы. Делаешь обыкновенную программу, но не рисуешь окна. Для того, чтобы пользоваться хуками нужна API SetWindowsHook.

Ответ отправлен: 04.03.2003, 20:53
Отправитель: Igoryk


Отвечает Gibbel

Добрый день, merd!
смотри SetWindowsHookEx()

Ответ отправлен: 03.03.2003, 10:06
Отправитель: Gibbel


Отвечает Eugene

Доброе время суток, merd!
В винде нет такого понятия, как резидент. Такой точке зрения соответствуют все программы под вин32. А чтобы поставить свой обработчик на клаву почитай хелп по hook'ам.

Ответ отправлен: 03.03.2003, 10:35
Отправитель: Eugene


 Вопрос № 2688

Доброе время суток эксперты!
есть проблема..нижеприведенная программка должна выводить все ASCII символы, вставляя пробел между каждым символом.
не могу понять, почему выводить только половину..
Спасибо!


Приложение:


Вопрос отправлен: 03.03.2003, 09:11
Отправитель: Ruslan

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

Отвечает Maverick

Добрый день, Ruslan!
А потому что dl может принимать 256 значений, ты и выводишь 256 символов, т.е. символ-пробел-символ-пробел....
Вот и получается, что ты выводишь половину таблицы.
На первый взгляд три решения...
1. Не выводи пробелы, тогда все влезет.
2. Можно сделать все проще и короче через прямой вывод в видеобуфер.
3. Нужно добавлять инкремент dh после проверки dl на переполнение(отстой)
Выбирай любой.
Лучше 2.


Ответ отправлен: 03.03.2003, 10:42
Отправитель: Maverick


Отвечает Eugene

Доброе время суток, Ruslan!
У меня вообще ничего не выводило, только синие символы. Я насильно запихнул в цикл mov ah, 9. Тогда только начались выводится символы. А вывод у тебя происходил 256 раз, как и требовалось. Проблема была в том, что ты всё время увеличиваешь DL на 2. Один раз для вывода символа, 2-й для пробела. DL занимает 1 байт, поэтому, когда ты выведешь 128 символов, у тебя DL становится 0, и все остальные символы выводятся на старое место с 0. Я всунул проверку на конец строки. Так как у нас экран 24х80, поэтому там идёт сравнение с 80. Я переделал твою прожку, она стала поменьше. Непонятно для чего ты использовал SI как счётчик, AL прекрасно справилось с этой задачей.

Приложение:

Ответ отправлен: 03.03.2003, 11:25
Отправитель: Eugene


Отвечает Ayl

Добрый день, Ruslan!
Потому что когда ты выводишь 127-й символ и пытаешься перейти к следующему, то значение в регистре DX обнуляется, вследствии чего вывод продолжается поверх уже выведенных символов. В результате ты и получаешь только 2-ю половину таблицы.
Причем ты как-то странно устанавливаешь позицию курсора. То есть, в описании функции 2 написано, что в регистре DH должна находится строка, а в регистре DL - колонка. Но у тебя получается, что везде используется строка 0, а колонка изменяется. Для первой половины таблицы это срабатывает, но для второй - нет. Так что тебе придется переработать программу в том месте, где ты перемещаешь курсор.
Кстати вопрос: а нафига ты используешь BIOS?

Ответ отправлен: 03.03.2003, 13:13
Отправитель: Ayl


Отвечает St

Привет, Ruslan!
Вызов функции 2:Установка позиции курсора.
Комментарии
Выдает координаты для позиционировании курсора на экране. Строка 0 является самой верхней строкой экрана, столбец 0 - самым левым столбцом экрана.
Исходные данные
Регистры (устанавливаются до вызова функции):
AH: устанавливается 2
DH: номер текстовой строки экрана
DL: номер текстового столбца экрана
BH: номер страницы
А вы просто увеличиваете номер столбца и когда он достигает значения FFH то снова сбрасывается на ноль и вы перепечатываете первую половину кодовой страницы второй.
Вам надо доходя до 80 столбца сбрасывать его в 0 и при этом увеличивать номер строки.
St

Ответ отправлен: 04.03.2003, 12:36
Отправитель: St


Отвечает Joy

Приветствую Вас, Ruslan!
Не стал разбираться с твоим кодом. смотри в приложении мой вариант. Кстати, твой код - 53 байта, мой - 22 байта.

Приложение:

Ответ отправлен: 05.03.2003, 08:57
Отправитель: Joy


 Вопрос № 2689

Ув. Эксперты!
у меня такой вопрос.
Мне очень(ОЧЕНЬ) нужно вытащить из NFS6 переменную скорости.
то есть нужно знать в какой момент времени какая скорость у машины.Чтобы эта величина была как переменная. Помогите! В долу не останусь!



Вопрос отправлен: 03.03.2003, 09:32
Отправитель: g-die

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

Отвечает Bob Johnson

Доброе время суток, g-die!
Воспользуйся Magic Trainer Creator или что-то похожее. Можешь нажимать на паузу и искать заданные значения.


Ответ отправлен: 03.03.2003, 13:52
Отправитель: Bob Johnson


Отвечает Joy

Добрый день, g-die!
Есть два варианта:
1. Пользуйся специальными программами (типа ArtMoney) для вычисления адреса переменной скорости. Так же, где-то слышал, что некоторые их этих программ могут сохранять по таймеру значения переменных, а еще могут сохраняться в тех играх, где сохранение не предусмотрено и т.д.
2. ПисАть свою программу, которая будет искать в памяти эту переменную, а потом ее сохранять. Но это очень трудоемкий процесс.

Ответ отправлен: 05.03.2003, 08:29
Отправитель: Joy


 Вопрос № 2690

Здравствуйте, уважаемые Эксперты.
У меня к вам несколько вопросов:
1. На каком уровне привилегий работают виндовские библиотеки типа kernel32.dll?
2. Как проги для очистки памяти чистят память(я так понимаю, что они сбрасывают страницы памяти в своп-файл, если да, то как они это делают?)?
3. Как получить доступ к Ring-0?



Вопрос отправлен: 03.03.2003, 10:23
Отправитель: Marouder

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

Отвечает Bob Johnson

Приветствую Вас, Marouder!
1. на 3-м.
2. FreeMem pro. Принцип очень прост - выделить себе большой кусок памяти, поработать с ним (пару раз прочитать), отдать назад ОС, повторить... Тогда ОС сама выбрасывает на диск ненужные (давно не использованные) страницы памяти.
3. В вин9х способов очень много - драйвер, патчить таблицы (GDT, IDT)... В NT сложнее.


Ответ отправлен: 03.03.2003, 13:53
Отправитель: Bob Johnson


Отвечает akul

Приветствую Вас, Marouder!
все ответы справедливы для windows NT4.0 и выше...
1. при загрузке в safe mode получишь список файлов ядра и самых низкоуровневых драйверов. Они гарантировано живут на ring0
2. не все, некоторые просто ищут dll которые можно выгрузить и тем самым освобождают память. не секрет, что винда держит в памяти dll подолгу зачастую непонятно зачем.
3. написать свой kernel-mode драйвер, он будет исполняться в ring0

Ответ отправлен: 03.03.2003, 10:38
Отправитель: akul


Отвечает Maverick

Приветствую Вас, Marouder!
3. Много есть способов, на этой странице есть примеры использования в вирусах. Идеи можешь оттуда взять.
http://z0mbie.host.sk/


Ответ отправлен: 03.03.2003, 11:07
Отправитель: Maverick


Отвечает Andrew Vext

Здравствуйте, Marouder!
1. Разные библиотеки работают на разных уровнях. Kernel32 на нулевом.
2. По разному, зависит от алгоритма. Вообще у страницы есть флаг, устанавливаемый при обращении к странице. Если флаг сброшен длительное время - страница скидывается на диск.
3. Напишите драйвер устройства, который будет исполняться в Ring0 и вызывайте его функции из программы.

Ответ отправлен: 03.03.2003, 12:14
Отправитель: Andrew Vext


 Вопрос № 2691

Доброе время суток, ув. Эксперты!
Сорри за оффтопик, но даже не знаю куда задавать.
Дело в том, что я ни разу не работал с MS Access, а меня попросили исправить глюк. Там есть БД, и по параметрам в этой БД рассчитывается коэффициент. Он рассчитывается по принципу:
0.5, если <что-то> меньше 1
1, если <что-то> меньше 5, но больше 1
2, если <что-то> меньше 10, но больше 5
...
Там сделанно с использованием IIf (не знаю что такое, и help отсутствует).
Как должно правильно записатся это условие, или хотя-бы что такое IIf??? Его синтаксис (как разделяются параметры (а то там присутствуют "!" (это понятно) и ";" )).
Сорри за неточность вопроса. Я сам не знаю что я хочу :(



Вопрос отправлен: 03.03.2003, 13:50
Отправитель: Илья (b.i@date.by)

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

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

Здравствуйте, Илья!
если это то же что и в екселе, то iif(условие; если условие истинно; иначе) Все :)

Ответ отправлен: 04.03.2003, 08:11
Отправитель: DiGiT[old]


Отвечает masquer

Добрый день, Илья!
IIf(expr, truepart, falsepart)
Типа такого может быть, по памяти пишу, могу ошибиться
IIF(Ch<1, K=0,5, IIF(Ch>1 and Ch<5, K=1, IIF(Ch>5 and Ch<10, K=2, K=0)))

Ответ отправлен: 03.03.2003, 14:45
Отправитель: masquer


Отвечает Portnov

Добрый день, Илья!
IIf(условие;что-считаем-если-истина;что-считаем-если-ложно)
Аналогично условной операции ? : в С.

Ответ отправлен: 03.03.2003, 15:13
Отправитель: Portnov


Отвечает Ayl

Доброе время суток, Илья!
Ну ты бы хоть строчку кинул, что ли... Вот что написано в MS Access Help (см. Приложение).
Думаю, что в твоем случае это должно выглядить вот так:
IIf (<что-то> < 1, 0.5, IIf (<что-то> < 5, 1, IIf (<что-то> < 5, 2, ...)))
Синтаксис, насколько я понимаю, такой:
IIf (условие, значение_если_истина, значение_если_ложь)
т.е. разделители - запятые.


Приложение:

Ответ отправлен: 03.03.2003, 15:23
Отправитель: Ayl


Отвечает Bob Johnson

Доброе время суток, Илья!
В общем iif эквивалентна вот такому коду:
d = iif (a < b, a, b)
...
if (a < b) then
d = a
else
d = b


Приложение:

Ответ отправлен: 04.03.2003, 00:52
Отправитель: Bob Johnson



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

Внимание!
Форма может работать некорректно в почтовых программах "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 (31)
C / C++ (27)
Perl (6)
Delphi (14)
Pascal (19)
Basic / VBA (10)
Java / JavaScript (9)
PHP (7)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (31)
Windows NT/2000/XP (23)
"Железо" (28)
Поиск информации (14)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (11)
Юристу
Гражданское право (7)
Семейное право (3)
Трудовое право (4)
КоАП (3)

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




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

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


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

В избранное