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

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


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

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

Выпуск № 601
от 27.07.2003, 20:00

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


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

_vt
Статус: Профессиональный
Общий рейтинг: 121.1
[Подробней >>]
Tigran K. Kalaidjian
Статус: Профессиональный
Общий рейтинг: 123.94
URL: Методы оптимизации работы ПК
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 107.68
URL: Savage Metal Club - жизнь в стиле рок-н-ролл
Телефон: +7 901 710 3146
[Подробней >>]
 
Евгений Иванов
Статус: Опытный
Общий рейтинг: 141.57
URL: Super Assembler Software
[Подробней >>]
Andy
Статус: Доверительный
Общий рейтинг: 105.4
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.29
URL: Программирование
[Подробней >>]
 
ASMодей
Статус: Профессиональный
Общий рейтинг: 113.41
[Подробней >>]
Portnov
Статус: Профессиональный
Общий рейтинг: 109.38
URL: Мой сайтик...
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 118.18
[Подробней >>]
 
Zedr0n
Статус: Доверительный
Общий рейтинг: 108.44
[Подробней >>]
Lynx
Статус: Опытный
Общий рейтинг: 118.77
Телефон: (8442) 750522
[Подробней >>]


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

Вопрос № 3760. Здравствуйте, уважаемые эксперты. Не подскажете, на каких сайтах можно найти описание недокументиров... (ответов: 4)
Вопрос № 3761. Здравствуйте,уважаемые эксперты! Можете ли кто-нибудь прислать мне пример форматирования диска на AS... (ответов: 1)
Вопрос № 3763. Привет. Помогите мне с такой проблемой, у меня стоит Win 98. После игрушки выключаю компьютер, появл... (ответов: 5)
Вопрос № 3765. Добрый День! 1) Прошу экспертов, разъяснявших способы вычисления cos программным(!) способом, уточни... (ответов: 6)
Вопрос № 3766. Здравствуйте, многоуважаемые эксперты! Задавал один вопрос в рассылке по С/С++, но полезного ответа ... (ответов: 4)
Вопрос № 3768. Я в асме чайник! И хотелось бы узнаьб есть ли в асме аналоги паскалевских процедур textcolor,gotoxy ... (ответов: 6)

Вопросов: 6, ответов: 26


 Вопрос № 3760

Здравствуйте, уважаемые эксперты. Не подскажете, на каких сайтах можно найти описание недокументированных возможностей Windows а также информацию на тему Reverse Engineering.
Спасибо за ответ.



Вопрос отправлен: 22.07.2003, 23:07
Отправитель: WarRior

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

Отвечает _vt

Доброе время суток, WarRior!
www.wasm.ru
www.lowlevel.ru

---===*** E-Man 1.4 - waiting for 1.5...***===---


Ответ отправлен: 23.07.2003, 11:12
Отправитель: _vt


Отвечает Tigran K. Kalaidjian

Приветствую Вас, WarRior!
http://www.wasm.ru
http://www.lowlevel.ru
http://z0mbie.host.sk

Ответ отправлен: 23.07.2003, 09:42
Отправитель: Tigran K. Kalaidjian


Отвечает Gibbel

Доброе время суток, WarRior!
Ну держи, для начало, по WinNT http://undocumented.ntinternals.net/ntundoc.chm.

Ответ отправлен: 23.07.2003, 09:40
Отправитель: Gibbel


Отвечает Евгений Иванов

Приветствую Вас, WarRior!
users.aol.comaxcel216


Ответ отправлен: 23.07.2003, 05:37
Отправитель: Евгений Иванов


 Вопрос № 3761

Здравствуйте,уважаемые эксперты! Можете ли кто-нибудь прислать мне пример форматирования диска на ASM под Win32. Можно ли сделать так, чтобы системный диск при запросе на его форматирования ставил все свои файлы и каталоги на удаление, а форматировал себя уже при следующей загрузке компьютера? Помогите решить эту задачу!



Вопрос отправлен: 22.07.2003, 23:44
Отправитель: Mafia32

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

Отвечает Tigran K. Kalaidjian

Добрый день, Mafia32!
ИМХО WIN32 Вам такого не позволит. Однако ничто не мешает записать в Autoexec.bat строки с Deltree (для удаления) или format(для форматирования)

Ответ отправлен: 23.07.2003, 10:14
Отправитель: Tigran K. Kalaidjian


 Вопрос № 3763

Привет.
Помогите мне с такой проблемой, у меня стоит Win 98. После игрушки выключаю компьютер, появляется синий экран и надпись - Неустранимая ошибка ОЕ по адресу 0167: BOODCODO. Приложение будет снято, и далее о перегрузки и нажатии на другую клавишу - перегружать с помощью клавиш не получается, нажимаю на любую клавишу синий фон вырубается экран пустой, приходится насильно перегружать с помощью отключения питания. Что надо сделать?



Вопрос отправлен: 23.07.2003, 04:44
Отправитель: Александр

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

Отвечает Andy

Доброе время суток, Александр!
А-а-а! Тебе всё-таки захотелось переписать винду заново, раз сюда пишешь :)
Начни с рассылки на сабскрайб, что-то типа "пишем ос".

Ответ отправлен: 23.07.2003, 18:20
Отправитель: Andy


Отвечает Bob Johnson

Добрый день, Александр!
1. Переустановить винды.
2. Переустановить винды еще раз
3. Вернуться к пункту 2.
4. До этого пункта ты дойти не должен.
5. Поставить Windows XP.
6. Спросить в рассылке 95/98/Me.
7. Вернуться к пункту 2, но уже с системой ХР.
8. Обратиться в Microsoft.
9. Не играть больше в эту игру.
10. Хотя бы назвать имя модуля, в котором происходит неустранимая ошибка.
11. Посмотреть, от какого драйвера (от какого устройства) этот модуль.
12. Переустановить драйвер.
13. Заменить устройство на то, которое будет работать более стабильно.
14. Вернуться к пункту 2.
15. Посмотреть, как ведет себя эта игра на другом компьютере с такой же конфигурацией.
16. Найти update к игре.
17. Вернуться к пункту 2.
18. и т.д.

* EMan1.5: ---===*** The hell we've created ourselves ***===---


Ответ отправлен: 23.07.2003, 22:51
Отправитель: Bob Johnson


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

Приветствую Вас, Александр!
Что сделать? Есть несколько выходов:
1. Можно перестать запускать эту игру.
2. Можно попробовать переставить драйвер видеокарты.
3. Можно переустановить Windows.
4. Можно сменить операционку (например на WinXP).


Ответ отправлен: 23.07.2003, 20:05
Отправитель: ASMодей


Отвечает Tigran K. Kalaidjian

Доброе время суток, Александр!
Загрузитесь с загрузочной дискетки или диска, снесите Win и поставьте заново. Можно сперва попробовать "поверх" старого варианта, а уж если не поможет, то стереть старый вариант и поставить "на пустое место".

Ответ отправлен: 23.07.2003, 09:39
Отправитель: Tigran K. Kalaidjian


Отвечает Евгений Иванов

Здравствуйте, Александр!
Мало данных для анализа!
Могу только так ответить:


Ответ отправлен: 23.07.2003, 05:43
Отправитель: Евгений Иванов


 Вопрос № 3765

Добрый День!
1) Прошу экспертов, разъяснявших способы вычисления cos программным(!) способом, уточнить свою мысль:
Действительно ли реализация ряда Тейлора будет оптимальным решением для нахождения значения cos ?
Т.е. не могут ли быть использованы иные, куда как более удобные многочлены (и не используются ли они на самом деле в библиотеках) ?
2) Слыхал я как то, что при вычислении через сопроцесор значения cos можно получить практически задаром (т.е. без дополнительного вызова) и значение sin того же аргумента.
Если это так, то (поскольку оптимизация этих вычислений иногда актуальна), прошу Экспертов помочь фрагментом программы для C++.
Благодарю за внимание.



Вопрос отправлен: 23.07.2003, 11:24
Отправитель: PostM

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

Отвечает Bob Johnson

Доброе время суток, PostM!
> Действительно ли реализация ряда Тейлора будет оптимальным решением для нахождения значения cos ?
Все зависит от требуемой точности и объемов памяти - можно использовать табличный вариант, который намного быстрее. Еще, может быть возможно как либо совместить табличный вариант с вычислительным, для увеличения скорости вычисления при умеренных размерах таблиц.
Что касается точности вычисления, то за счет приведения аргумента в диапазон от -pi/4 до +pi/4 возможно получить точность порядка 10^-7 при 4-х членах ряда (при этом можно использовать как целочисленную арифметику (фиксированный масштаб), так и дробную). А при 5-ти членах точность уже достигает 10^-9, что является пределом для целого 32-разрядного числа с фиксированным масштабом при результате от -1 до +1.
> 2) Слыхал я как то, что при вычислении через сопроцесор значения cos можно получить практически задаром (т.е. без дополнительного вызова) и значение sin того же аргумента.
Ты имеешь ввиду команду FSINCOS? Да, она выполняется практически столько же по времени, как и просто FSIN или FCOS.
> Если это так, то (поскольку оптимизация этих вычислений иногда актуальна), прошу Экспертов помочь фрагментом программы для C++.
Ты имеешь ввиду алгоритм, как вычислить sin и cos одновременно и при этом также быстро, как и просто sin? Не знаю, тут вариантов может быть множество, например: sin (x)^2 + cos (x)^2 = 1, отсюда можно считать только cos, например, а sin вычислять как sin (x) = sqrt (1 - cos(x)^2). Кстати, квадратный корень на современном FPU вычисляется так же быстро, как и операция деления.

* EMan1.5: ---===*** The hell we've created ourselves ***===---


Ответ отправлен: 23.07.2003, 22:51
Отправитель: Bob Johnson


Отвечает Евгений Иванов

Приветствую Вас, PostM!
Достаю толстенную книгу, присланную мне от Intel, и читаю:
2. fsincos - выполняется быстрее, чем две команды fsin, fcos.


Ответ отправлен: 23.07.2003, 18:14
Отправитель: Евгений Иванов


Отвечает Portnov

Добрый день, PostM!
>Т.е. не могут ли быть использованы иные, куда как более удобные многочлены ...
Мат.анализ плохо учили... разложение ф-ции в степенной ряд всегда единственное (и это всегда ряд Тейлора, в частном случае при x0=0 - ряд Макларена.).
PS. Про ряды еще вспомнил... Есть еще такие ряды - Фурье - но это не по многочленам, а по синусам и косинусам... Применять в вашей задаче не рекомендую :D (косинус разложится в коснинус :( )

Ответ отправлен: 23.07.2003, 18:06
Отправитель: Portnov


Отвечает Ayl

Приветствую Вас, PostM!
Мне, по крайней мере, не известны другие алгоритмы вычисления sin, кроме как через ряд Тейлора.
Кстати, а чем тебе не нравится этот многочлен? Что еще более удобное должно быть? Для нахождения следующего элемента ряда по предыдущему нужно выполнить два умножения и два деления. И знак поменять. Куда уж проще-то?
Другой вариант нахождения синуса - табличный. Т.е. строишь таблицу значений синуса с определенным шагом. И затем из нее выбираешь. Если угол не попадает в построенный диапазон, можно использовать формулы приведения для тригонометрических функций.
2. Вообще-то есть команда fsincos, которая заносит в стек сопроцессора значения синуса и косинуса верхнего слова стека. Косинус после выполнения команды будет на вершине стека, а синус - под ним.

Ответ отправлен: 23.07.2003, 12:26
Отправитель: Ayl


Отвечает Tigran K. Kalaidjian

Приветствую Вас, PostM!
2. Да, для вычисления SIN, COS да и многого другого удобно использовать сопроцессор. Как с ним работать можно почитать в книге Зубкова "Ассемблер - язык неограниченных возможностей", которую можно скачать с сайта Bob'a Johnson'a
Пример простенькой программы для TASM см. в приложении. Для того, чтобы посмотреть результат вычислении можно использовать любой отладчик, например Turbo Debugger(окно Numeric Processor).

Приложение:

Ответ отправлен: 24.07.2003, 10:03
Отправитель: Tigran K. Kalaidjian


Отвечает Zedr0n

Приветствую Вас, PostM.
Ну зачем же сразу ряд Тейлора. Есть более простые способы, вот, например, простая тригонометрическая формула, позволяющая вычислять значения косинусов с заданным шагом угла:
cos(X_{k})=2*cos(X_{k-1})*Step - X_{k-2}
Соответственно, X_0=1, X_1=Step.
Все, вычисляй, сколько надо. В приложении программка,
позволяющая строить таблицу косинусов, используя числа
с фиксированной запятой в формате 8:24...
Только скопируй сперва исходник в отдельный файл, а то все
отступы потерялись ;)


Приложение:

Ответ отправлен: 24.07.2003, 11:09
Отправитель: Zedr0n


 Вопрос № 3766

Здравствуйте, многоуважаемые эксперты!
Задавал один вопрос в рассылке по С/С++, но полезного ответа не получил. Так может вы поможете...
Вопрос был такой: пишу под Win32Application, окно со свойствами WS_EX_OVERLAPPEDWINDOW, WS_EX_TOOLWINDOW, WS_EX_TOPMOST, WS_POPUP, WS_SYSMENU - как можно перемещать его крысой не за заголовок, а за рабочую область? Я думал использовать MoveWindow (только работает коряво), а мне посоветовали обрабатывать WM_NCHITTEST - как это можно проделать?
Заранее благодарен.
ЗЫ: обращение к некоторым мудакам типа reset: что-то не нравится - вали в ж%&у - если мозгов ни на что другое нет, кроме как прийти, насрать и уйти будь - свободен, даун.
Те, кто рассылкой доволен, потихоньку сидят и читают-спрашивают-радуются.



Вопрос отправлен: 23.07.2003, 12:31
Отправитель: Ренат (renatka_f@mail.ru)

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

Отвечает Bob Johnson

Добрый день, Ренат!
Я это делал с помощью WM_LBUTTONDOWN, WM_LBUTTONUP, WM_MOUSEMOVE. Код в приложении. При этом надо обязательно вызывать SetCapture, т.к. при резком движении на границе окна курсор может уйти за его пределы и окно "остановится". А для перемещения - MoveWindow (ну тут можно много вариантов придумать).
Coord0 содержат текущие координаты окна (нужно инициализировать вначале самому). Приведенный метод позволяет перетаскивать именно за ту точку, где было осуществлено нажатие.

* EMan1.5: ---===*** The hell we've created ourselves ***===---


Приложение:

Ответ отправлен: 23.07.2003, 22:51
Отправитель: Bob Johnson


Отвечает Евгений Иванов

Здравствуйте, Ренат!
Проще простого. Обрабатываешь WM_LBUTTONDOWN (или R, если хочешь :).
Далее флажок устанавл., и обрабатываешь WM_MOUSEMOVE.
Но перед этим не забудь захватить мышь (за хвост :)
С помощью SetCapture.
Двигаешь, но только не через MoveWindow, это действительно не ахти.
Лучше SetWindowPos.
Щас ищу исходник моих часов, кусочек не большой вот:
А так загружай с моего сайта: Говорящие часы.
Тут я сделал чтобы двигать и всё окно или только рамку.


Приложение:

Ответ отправлен: 23.07.2003, 18:14
Отправитель: Евгений Иванов


Отвечает Tigran K. Kalaidjian

Здравствуйте, Ренат!
Да, так и есть - надо написать свой обработчик wm_NCHitTest.
В этом обработчике надо сначала вызвать стандартный обработчик, затем проверить: если результатом является клиентская область (htClient), то вместо него подсунуть область заголовка (htCaption)и выдать это значение в результате.
Кроме перемещения формы, добавьте возможность завершения программы в виде кнопки или пункта меню, так как пользователь не сможет закрыть ее при помощи заголовка окна или системного меню.
Есть пример на Delphi. Если надо - пишите на kalaidjian@pochtamt.ru

Ответ отправлен: 23.07.2003, 22:33
Отправитель: Tigran K. Kalaidjian


Отвечает Gibbel

Здравствуйте, Ренат!
Может это тебе поможет.
З.Ы.: с трудом уломал себя ответить - очень не хочется, чтоб подобная брань уходила в рассылку...

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


 Вопрос № 3768

Я в асме чайник!
И хотелось бы узнаьб есть ли в асме аналоги паскалевских процедур textcolor,gotoxy и тд?



Вопрос отправлен: 23.07.2003, 17:45
Отправитель: Кирилл

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

Отвечает Ayl

Приветствую Вас, Кирилл!
Нет, конечно! Это нужно либо самому писать, либо использовать сервисы видеокарты (если они есть). Например, процедура gotoxy - это аналог функции 02 прерывания 10h.
TextColor аналога не имеет, так как во всех выводах текста через прерывание 10h требуется указывать атрибут символов. Соответственно, тебе нужно как-то самому изобретать механизм установки глобального цвета.
Кстати, а что тебя сподвигло на такой вопрос?

Ответ отправлен: 23.07.2003, 18:00
Отправитель: Ayl


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

Добрый день, Кирилл!
Дело в том, что эти процедуры скорее относятся к операционной системе,
чем к ассемблеру. Если писать программу под Windows, то в API этой ОС
есть аналоги этих функций, а если для DOS, то все функции для работы с
графикой придется писать самому (или использовать BIOSовские, но они
о-о-чень ме-е-едленные ;)


Ответ отправлен: 23.07.2003, 20:06
Отправитель: ASMодей


Отвечает Евгений Иванов

Здравствуйте, Кирилл!
Ты чего, смеёшся что-ли...
паскаль и рядом не стоит с Ассемблером!
И другие языки.
Да я могу с помощью Ассемблера сделать хоть твой паскаль, хоть что угодно.
В паскале эти функции кто-то написал, вот ты их и используешь.
Так же можно и к Ассемблеру библиотеку(и) подключить и будет работать не
хуже!
Вся соль, что вот именно мне легче писать на Ассемблере, потому что
всё на виду!
А так, переходи на Win32, там есть и покруче функции, чем gotoxy. :-)


Ответ отправлен: 23.07.2003, 18:28
Отправитель: Евгений Иванов


Отвечает Tigran K. Kalaidjian

Здравствуйте, Кирилл!
Аналогов не помню, но они и не нужны. Если Вы выводите символ напрямую в видеопамять(т.е. пишете в память по адресу B800h:xxxxh), то в верхнем байте у Вас должен быть код цвета, а в нижнем - код символа. Если Вы хотите вывести символ в определенную область экрана, то просто посчитайте смещение от начала сегмента видеобуфера.
Например: мы хотим вывести зеленую единицу в первую строку, 50 столбец. Программа, которая это делает - в приложении.

Приложение:

Ответ отправлен: 23.07.2003, 23:01
Отправитель: Tigran K. Kalaidjian


Отвечает _vt

Добрый день, Кирилл!
Паскалевские процедуры используют в себе вызовы операционной системы DOS, так вот в ассемблере таких процедур нет (в нем вообще нет никаких библиотечных процедур), но вызывать функции DOS можно напрямую.

---===*** E-Man 1.4 - waiting for 1.5...***===---


Ответ отправлен: 24.07.2003, 10:57
Отправитель: _vt


Отвечает Lynx

Здравствуйте, Кирилл!
Готовых функций нет, вернее есть, но каждый кодер пишет для себя свои. В качестве textcolor можно использовать маску вывода символов на экран при отображении в видеобуфер. А для gotoxy могу предложить только покопаться в списке прерываний (помоему было что то такое).


Ответ отправлен: 25.07.2003, 11:15
Отправитель: Lynx



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

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (33)
C / C++ (24)
Perl (4)
Builder / Delphi (19)
Pascal (22)
Basic / VBA (11)
Java / JavaScript (12)
PHP (9)
Криптография (8)
WinAPI (13)
Пользователю
Windows 95/98/Me (48)
Windows NT/2000/XP (43)
"Железо" (39)
Поиск информации (25)
Администратору
Windows NT/2000/XP (24)
Linux / Unix (10)
Юристу
Гражданское право (11)
Семейное право (6)
Трудовое право (9)
КоАП (5)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.


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

В избранное