Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
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.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту 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.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||