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

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


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

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

Выпуск № 396
от 21.10.2002, 10:40

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


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

Maverick
Статус: Доверительный
Общий рейтинг: 140.4
[Подробней >>]
St
Статус: Доверительный
Общий рейтинг: 115.62
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 118.05
[Подробней >>]
 
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.45
[Подробней >>]
Dark_Lord
Статус: Профессиональный
Общий рейтинг: 130.24
[Подробней >>]
Biv
Статус: Опытный
Общий рейтинг: 116.71
[Подробней >>]
 
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.41
URL: Страничка обо мне и моих друзьях
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 131.74
URL: моя рассылка по Protected Mode
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 115.6
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
 
ASMодей
Статус: Профессиональный
Общий рейтинг: 121.77
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 155.27
[Подробней >>]
VicSimon
Статус: Доверительный
Общий рейтинг: 103.6
[Подробней >>]
 
oleg
Статус: Доверительный
Общий рейтинг: 146.15
[Подробней >>]
freeseacher
Статус: Опытный
Общий рейтинг: 106.41
Телефон: 8(3832)366362
[Подробней >>]
Supra
Статус: Начальный
Общий рейтинг: 107.69
[Подробней >>]
 
Portnov
Статус: Профессиональный
Общий рейтинг: 119.17
URL: Мой сайтик...
[Подробней >>]
Eugene
Статус: Доверительный
Общий рейтинг: 115.62
[Подробней >>]
DiGiT[old]
Статус: Опытный
Общий рейтинг: 109.59
[Подробней >>]


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

Вопрос № 1512. Привет ещё раз, господа ?[ и дамы ;) (если таковые имеются) эксперты. Благодарю всех кто откликнулся... (ответов: 4)
Вопрос № 1513. Еше раз Здравствуйте Ayl. Через ассемблирование с Вашей помощью я пробрался,но вот компановщик предъ... (ответов: 1)
Вопрос № 1515. Хочу вот прокунсультироваться. Вычитал я ,что по адресу F000:FFF0 есть прорамма для перезагрузки ком... (ответов: 8)
Вопрос № 1517. Это последний вопрос, обещаю! :) Как, используя прямой ввод на видеадаптер или какие-нить прерывания... (ответов: 2)
Вопрос № 1518. Доброго всем времени суток !! Спасибо за ответы, но не получается у меня ничего :((. У компилятора-т... (ответов: 2)
Вопрос № 1519. Исходник такой: .model tiny, OS_DOS, NEARSTACK <- все эти навороты добавлял потом .code org 100h s... (ответов: 1)
Вопрос № 1520. Многоуважаемый Biv! Я не смог найти вашего мыла, поэтому оформил это дела как вопрос. 1)Пришлите мне... (ответов: 1)
Вопрос № 1521. Уважаемые эксперты. Я давнишний фанат ассемблера, но мой вопрос немного off-topic. Я давно ищу книжк... (ответов: 5)
Вопрос № 1523. Экспертам! Кто из вас знает, или у кого-то есть алгоритмы готовые - " извлечение корня N-ой ст... (ответов: 2)
Вопрос № 1524. masquer, уточняю: ИЗВЛЕЧЕНИЕ КОРНЯ N-ой степени. Имелось ввиду, что правая часть ур-ия извесна , ну... (ответов: 2)
Вопрос № 1525. Привет всем! Я себе спецально под айс устанавливал 98 винды! Айс говорит что он под 95/98 винды. Зап... (ответов: 2)
Вопрос № 1526. Привет! Я попытался написать программу для выключения Win2k. Прочитал, что нашел в инете поэтому пов... (ответов: 2)
Вопрос № 1527. Всем привет... Подскажите, где достать доки и справочники для начинающих. Заранее благодарен.... (ответов: 2)
Вопрос № 1528. masquer. Угу, пробовал, это самая простая форма. Была гораздо сложнее. Степень двойки не участвует, ... (ответов: 1)
Вопрос № 1529. Привет! В чем разница TASM и MASM ? ... (ответов: 7)
Вопрос № 1530. Привет masquer Спасибо что ответили. Я скопировал ваш пример в тестовый файл и скомпилировал с помощ... (ответов: 1)
Вопрос № 1532. masquer Задача: F- C=X^n+Y^n+Z^n+T^n+... X<>Y<>Z<>T<>... {[X,Y,Z,T,...]|100:10000} n-{5:28} кол-во ... (ответов: 2)
Вопрос № 1533. Где достать архив рассылок "Ассемблер? Это просто!" До subscribe.ru достучаться не могу. Е... (ответов: 2)
Вопрос № 1534. Здравствуйте уважаемые эксперты! Здесь в рассылке побегала ссылочка на Driver Suite 2.7. Так вот, я ... (ответов: 4)
Вопрос № 1535. Всем привет... Всем! Зайдите сюда : ... (ответов: 2)
Вопрос № 1536. Я используюВ Линуксе ICQ-клиент licq.Я получаю сообщения без проблем, а от меня поче-муто сообщения ... (ответов: 4)

Вопросов: 21, ответов: 57


 Вопрос № 1512

Привет ещё раз, господа ?[ и дамы ;) (если таковые имеются) эксперты.
Благодарю всех кто откликнулся и тех, кто только собирался это сделать.
Но прошу прощения за назойливость и, возможно, наглость.
Но мне хотелось бы знать конкретные e-mail адреса экспертов.
В сязи с тем, что некоторые эксперты присылают довольно оригинальные решения, а мне в них трудно разобраться.
А задать вопрос конкретно автору не получается.
Так шо.
Ежели можете. Милости просим.
Заранее благодарен.



Вопрос отправлен: 15.10.2002, 15:36
Отправитель: Sean

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

Отвечает Maverick

Приветствую Вас, Sean!
Maverick@nightmail.ru


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


Отвечает St

Привет, Sean!
st23@yandex.ru
Я сам не сразу понял, что можно прсылать вопросы не всем экспертам, а только избраным. Для этого когда задаешь вопрос не нужно ставить галочку в "Отправить вопрос всем экспертам выбранной рассылки". Тогда при нажатии на кнопку отправить появится следующее окно со списком экспертов, в котором можно выбрать кому задавать вопрос.
St

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


Отвечает Ayl

Здравствуйте, Sean!
Задать вопрос конкретно автору ты можешь, если в форме вопроса уберешь галочку из пункта "Задать вопрос всем экспертам выбранной рассылки". Тогда после этого будет предложен список экспертов выбранной рассылки и можно пометить одного или нескольких, кому будет отправлен вопрос...

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


Отвечает Bob Johnson

Здравствуйте, Sean!
А почему не получает задать вопрос конкретно автору? Сними пометку с чекбокса "отослать вопрос всем экспертам" и на следующей странице выберешь, кому отослать вопрос.
А адрес и так не трудно найти (вот нашел же какой-то Александр-спамер адреса экспертов)...
Но на всякий случай: BobJohn@NewMail.ru


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


 Вопрос № 1513

Еше раз Здравствуйте Ayl.
Через ассемблирование с Вашей помощью я пробрался,но вот компановщик предъявляет претензию:
fatal error: invalid fixup found, type 0x0001
что в переводе на русский означает примерно такое:
Фатальная ошибка: недействительный найденный fixup, напечатать 0x0001
Я использую masm32. Текст программы практически тот же - см.приложение.
Спасибо.


Приложение:


Вопрос отправлен: 15.10.2002, 16:11
Отправитель: Bayram Annanurov

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

Отвечает Ayl

Здравствуйте, Bayram Annanurov!
На самом деле перевод немного не такой:
Фатальная ошибка: Найдено неправильное местоположение, тип 0x0001
Что именно MASM имеет в виду, точно сказать не могу, но подозреваю, что все дело в том, что происходит попытка создания 32-битного приложения, а нам надо 16-тибитное.
Сам я MASM'ом при создании DOS'овский программ не пользуюсь, использую TASM. В нем все компилится без проблем.
Что собственно и рекомендую. Т.е. программы для DOS компилим с помощью TASM, программы для Windows - MASM32.


Ответ отправлен: 15.10.2002, 16:36
Отправитель: Ayl


 Вопрос № 1515

Хочу вот прокунсультироваться.
Вычитал я ,что по адресу F000:FFF0 есть прорамма для перезагрузки компа(типа reset нажимаем).Ну написал я прогу
в две строчки ,чтобы туда прыгать.
Вот результыту работы:
1)Запускаю под XP.-Прога виснет(Xp-не виснет);
2)Запускаю по Линолиум(ME).-Прога отрабатывает,закрывается,
но комп не перезагружает.
3)Запускаю по Досом(c системной дискеты для Win 98).-Прога работает и перезагружает комп.
Дальше я через Afdpro решил посмотреть,что есть по етому адресу.
Вот результаты работы:
1)В XP.-Какието джимпы идут,потом отладчик орет что-то про
регистер SP и про конец про то,что программы кончилась(но
она не кончилась)
2)В Me.-19 Прерывание.
3)В Досе.-То же ,что и в Xp
Вопроссы:
Какая операционка права?
По етому адресу прога Биоса или доса,и как заставить работать по виндой(может есть другой адресок?)?
По какому адресу можно вырубить комп?
p.s.
Извените ,что так много,больше не буду:)



Вопрос отправлен: 15.10.2002, 16:33
Отправитель: Byter (Byter2002@mail.ru)

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

Отвечает Dark_Lord

Доброе время суток, Byter!
Хорошая ось не разрешит тебе делать что-либо с компом без её на то разрешения, для перезагрузки винды есть функция ExitWindows, с двумя параметрами, которые должны быть 0 оба!

Ответ отправлен: 15.10.2002, 21:00
Отправитель: Dark_Lord


Отвечает Biv

Приветствую Вас, Byter!
Из под маздая ты так не перезагрузишься - защищенный режим и все такое. А в самом маздае сделано все по умному, и перезагрузка у него должна происходить "корректно" - своими ф-циями.

Ответ отправлен: 15.10.2002, 21:09
Отправитель: Biv


Отвечает Gibbel

Добрый день, Byter!
Под виндами это и не будет работать, не надейся.
Все дело в том, что под виндами ко многим вещам ты можешь получить доступ только с уровня драйверов. Для всех же остальных программ попытка перезагрузить комп приводит к завершению работы самой программы.

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


Отвечает St

Привет, Byter!
Перезагрузить Windows с помощью Досовских программ вам вряд ли удастся. Для этого в Виндах есть свои способы - функция ExitWindowsEx - ее легко вызвать под Win9x(Me), но несколько сложнее в NT(2000,XP) (из-за Security). Подробности в Win32 Help.
St


Ответ отправлен: 15.10.2002, 16:52
Отправитель: St


Отвечает Broken Sword

Доброе время суток, Byter!
Во первых, по этим адресам расположен ROM BIOS-а. Во вторых, я отреверсил весь код перезагрузки (очень интересно получилось) и увидел, что происходит чтение регистра CR0, и если мы в защищенном режиме, то все сводится к
XXXX: hlt
jmp XXXX
т.е. фактически комп должен висеть мертвым сном. НО! Предварительно производится попытка записи числа FEh в 64h порт (что, в принципе, и должно привести к перезагрузу, и все было бы именно так, если бы XP не перенаправлял все обращения к портам на себя...)
В реальном режиме все намного интереснее... Происходит куча манипуляций с регистрами (даже с регистрами синхронизатора видеокарты), я даже нашел то место, где происходит сравнение с 1234h (мягкая перезагрузка). Вообщем, скоро сделаю комментированный отреверсеный код перезагрузки компа, ато инфы нигде нет по этому поводу... или у кого то есть?


Ответ отправлен: 15.10.2002, 19:53
Отправитель: Broken Sword


Отвечает baldr

Доброе время суток, Byter!
В защищенном режиме компьютер перезагрузить программно можно только из 0 кольца... Если, конечно, ОС написана грамотно... В Windows то же самое. Но система предоставляет свои функции для этого - ExitWindows и ExitWindowsEx.

Ответ отправлен: 15.10.2002, 17:01
Отправитель: baldr


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

Приветствую Вас, Byter!
Про XP ничего не скажу, а вот Win98 точно заменяет BIOS
своим кодом. И вырубить комп, не используя API вряд ли
удастся (по крайней мере винда должна пытаться не позволить
это сделать).


Ответ отправлен: 16.10.2002, 08:24
Отправитель: ASMодей


Отвечает Bob Johnson

Здравствуйте, Byter!
Попробуй еще для разнообразия в 98-м. Там должно работать.
В ХР не работает, потому что по его мнению (ХР) так его перезагружать нельзя - сам посмотри - любая ДОС задача могла бы перезагруть такую "надежную" ОС... Это неправильно.
Под виндой есть специальные функции для перезагрузки компа. Еще можешь попробовать установить WinBoost и создать им ярлыки для этого, потом посмотреть в них командную строку и вызывать ее из своей проги с помошью ShellExecute.


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


 Вопрос № 1517

Это последний вопрос, обещаю! :)
Как, используя прямой ввод на видеадаптер или какие-нить прерывания dos/bios напечатать текст/нарисовать точку или линию
Премного благодарен!!!



Вопрос отправлен: 15.10.2002, 19:33
Отправитель: Алексей

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

Отвечает Ayl

Здравствуйте, Алексей!
Не надо зарекаться! :-) К тому же для того я тут и нахожусь, чтобы отвечать на вопросы. :-)
Ответ на вопрос - зависит от того, в каком режиме это происходит.
В текстовых режимах все просто. Там для каждого символа отводится 2 байта - первый собственно сам символ, второй - его атрибут, т.е. цвета текста и фона. Видеобуфер начинается по адресу 0b800h и занимает либо 2000 байт (для режимов 40*25), либо 4000 байт (режимы 80*25). Соответственно, имеются либо 8 (режимы 40*25), либо 4 (80*25) видеостраниц. Страницы выравниваются по границе килобайт.
Атрибут кодируется так: BFFFICCC, где B - бит мерцания или повышенной яркости фона (зависит от установок видеорежима), FFF - код цвета фона (3 бита), I - бит повышенной яркости цвета символа, CCC - код цвета символа.
Для печати текста куча функций, причем как DOS'овские, так и BIOS'овские. Пиши на мыло - отвечу.
Чтобы поставить точку, можно использовать функцию 0ch прерывания 10h. Либо напрямую, но это очень долгий разговор. DOS ставить точку не умеет.
Нарисовать линию у тебя с помощью BIOS не получится. Для этого нужно реализовывать какой-нибудь алгоритм рисования линии, например, алгоритм Брезенхема. Тоже долгий разговор.


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


Отвечает Biv

Доброе время суток, Алексей!
Прерывание 13h
1) Что касается вывода пикселя:
Фн 0Ch - Вывод пикселя на экран F
Вход: AH = 0Ch
AL = цвет пикселя (0-15)
CX = горизонтальная позиция пикселя
DX = вертикальная позиция пикселя
BH = номер дисплейной страницы
Выход: нет
2) Вывод текста: вариантов и функций немеряно => давай мыло - пришлю доку.
Прямой доступ к видеопамяти:
1)Видеоамять отображается на ОЗУ начиная с адреса 0В8000h. Одно знакоместо на экране описывается двумя байтами: первый байт - буква, второй - ее атрибуты.

Ответ отправлен: 15.10.2002, 21:09
Отправитель: Biv


 Вопрос № 1518

Доброго всем времени суток !! Спасибо за ответы, но не получается у меня ничего :((. У компилятора-то опция /AT есть, с ним никаких проблемм, но линковщик постоянно выдает такие ошибки:
1.obj : warning LNK4033: converting object format from OMF to COFF - здесь вроде все понятно, я так понимаю - переконвертация в старый (другой) формат, думаю все в порядке.
1.obj : warning LNK4078: multiple ".data" sections found with different attributes (C0220040) - у меня нет ни одного сегмента .data !! И даже если вставляю - то же самое.
LINK : fatal error LNK1561: entry point must be defined - то есть как нет точки входа ? Я ее указываю как в .exe - end Start. Может как по другому ?
В общем, у кого есть какие мысли - буду благодарен. Может это и не очень нужно, но очень хочется разобраться.
Да и еще: как насчет жесткого определения сегментов (директива SEGMENT, а не опция) и какая-то директива .STARTUP - в хелпе про них ничего нет, только несколько упоминаний. Где можно почитать ?



Вопрос отправлен: 15.10.2002, 20:09
Отправитель: axydas

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

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

Здравствуйте, axydas!
Странно, у тебя линковщик пытается из объектного файла
сделать екзешник для Windows. А ты случайно не вручную
его вызываешь? У меня он вызывается автоматически при
вызове ml.exe:
ml.exe /AT file.asm


Ответ отправлен: 16.10.2002, 08:26
Отправитель: ASMодей


Отвечает Dark_Lord

Доброе время суток, axydas!
Ты скажы как ты пытаешься их компилить, батником, если да дай батник, или опиши что вводишь в консоль!

Ответ отправлен: 15.10.2002, 21:01
Отправитель: Dark_Lord


 Вопрос № 1519

Исходник такой:
.model tiny, OS_DOS, NEARSTACK <- все эти навороты добавлял потом
.code
org 100h
start:mov ah,0C4h
mov al,00
int 21h
end start
А батник такой:
ml /AT /c 1.asm
link /entry:start /subsystem:console /opt:NOWIN98 1.obj
Все прибамбасы в линковщике тоже добавлял потом, сначала просто:
link 1.obj



Вопрос отправлен: 15.10.2002, 22:00
Отправитель: axydas

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

Отвечает Dark_Lord

Приветствую Вас, axydas!
Не понял две вещи! Почему вопрос личный, и в чём собственно вопрос! Но постараюсь ответить! "навороты" после .model tiny не нужны, а в батнике:
ml /c 1.asm
link 1.obj,,NUL,,,
exe2bin my.exe my.com

Ответ отправлен: 19.10.2002, 17:48
Отправитель: Dark_Lord


 Вопрос № 1520

Многоуважаемый Biv!
Я не смог найти вашего мыла, поэтому оформил это дела как вопрос.
1)Пришлите мне, пожалуйста ту доку про вывод текст на экран по адресу ral@list.ru
2)У меня не получился вывод пикселя :(. Меня терзают смутные сомненья, что нужно установить соответствующий видережим. Проблема та же - как :)
Приношу свои благодарности. Алексей



Вопрос отправлен: 16.10.2002, 09:41
Отправитель: Алексей

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

Отвечает Biv

Здравствуйте, Алексей!
Если что пишите на shilvlad@mtu-net.ru
Теперь по теме вопроса.
1) Ловите.
2) Ваши сомнения не беспричинны, но не давайте им себя растерзать :). Это мой недосмотр - режим действительно надо сменить на графический (на то он и грфический, что бы пиксели выводить). В связи с этим, смотрите ниже.
Смена графического режима:
Вход: AH = 00h
AL = номер видеорежима
Выход: нет
Список видеорежимов:
Номер Разрешение Размер Количество
режима экрана символа страниц
0, 1 360 X 400 9 X 16 8
2, 3 720 X 400 9 X 16 8
4, 5 320 X 200 8 X 8 1
6 640 X 200 8 X 8 1
7 720 X 400 9 X 16 8 (Монохромный VGA)
8 160 X 200 8 X 8 1 (PCjr)
9 320 X 200 8 X 8 1 (PCjr)
Ah 640 X 200 8 X 8 1 (PCjr)
Dh 320 X 200 8 X 8 8
Eh 640 X 200 8 X 8 4
Fh,10h 640 X 350 8 X 14 2
11h 640 X 480 8 X 16 1
12h 640 X 480 8 X 16 1
13h 320 X 200 8 X 8 1
Также обращу ваше внимание на понятие страниц. С практической точки зрения страницы матрицы, лишь ОДНА из которых может отображаться на экране в данный момент времени. Это приводит к тому, что нарисовав точку на странице с номером 3, вы можете не увидеть ее, по той причене, что текущей страницей отображаемой на экране, является, например, первая. Поэтому даю совет. Все время, при написании программ, следите за тем что бы отображалась та страница, на которой вы рисуете. Ну вот я вам кстати пришлю еще документацию по прерываниям биоса. Ловите.

Ответ отправлен: 16.10.2002, 15:03
Отправитель: Biv


 Вопрос № 1521

Уважаемые эксперты.
Я давнишний фанат ассемблера, но мой вопрос немного off-topic. Я давно ищу книжку товарища Walter Oney (кремня в драйверном программерстве) в электронном виде или хотя бы в бумажном, чтобы сделать копию, на многих программерских форумах задавал этот вопрос, но пока безрезультатно (правда нашел вариант этой книги на китайском). Вот и к вам обращаюсь с этим вопросом: может кто-нить где-нить видел ее??? Заранее спасибо.



Вопрос отправлен: 16.10.2002, 12:27
Отправитель: NizeG (nizeg@beep.ru)

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

Отвечает baldr

Доброе время суток, NizeG!
Пожалуйста:
http://src.fitkursk.ru/books/prog-wdm.zip
Искал Googl'ом - он почти сразу выдал.

Ответ отправлен: 16.10.2002, 15:17
Отправитель: baldr


Отвечает masquer

Приветствую Вас, NizeG!
Не знаю, где ты искал, но здесь точно есть http://jump.to/ganz

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


Отвечает St

Привет, NizeG!
Я недавно скачал на английском в виде .chm файла (в rar-е 6.2 Мб),
В yandex можно найти (например http://www.reversing.net/books.html, http://sources.fitkursk.ru/detail_book.asp?id=83)
St


Ответ отправлен: 16.10.2002, 13:24
Отправитель: St


Отвечает VicSimon

Доброе время суток, NizeG!
Книга "Programming the Microsoft Driver Model" есть на www.reversing.net в разделе "Библиотека".

Ответ отправлен: 16.10.2002, 12:38
Отправитель: VicSimon


Отвечает oleg

Добрый день, NizeG!
... Walter Oney Software 4 Longfellow Place Boston, MA 02114 Telephone: (617) 227-5620 Fax: (617) 227-5760. For more information, contact waltoney@oneysoft.com. ...
http://www.oneysoft.com/
пользуйся, с кисточкой!!! |]]]

Ответ отправлен: 16.10.2002, 12:47
Отправитель: oleg


 Вопрос № 1523

Экспертам! Кто из вас знает, или у кого-то есть алгоритмы готовые - " извлечение корня N-ой степени в элементарных действиях" - то бишь '+' '-' '/' '*', через функцию LOG слишком объёмно и долго считается. Уравнение типа " X1^5+X2^4+X3^3+Y1^5+Y2^4+Y3^3", решение производится перебором переменных в диапазоне [100:10 000].
Заранее блогадорю.




Вопрос отправлен: 16.10.2002, 13:19
Отправитель: oleg (iptech@melt.ru)

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

Отвечает masquer

Добрый день, oleg!
Так извлечение корня или возведение в степень???
Возводить в степень - сдвигами, умножением, сложением - элементарно делается, извлечение - FPU можно задействовать...

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


Отвечает Bob Johnson

Здравствуйте, oleg!
Если ты просто делаешь какое-то ДЗ по вышке, то попробуй прогу "Maple" - она сама тебе решит такое уравнение (если сможет).
Если ты считаешь, что извлекать корень с помощью логарифма и экспоненты долго (на FPU), то ничем тебе помочь, скорее всего, не удастся. Потому что другой метод - итерационный. Он еще медленнее (т.к. тебе для получения хорошей точности понадобится 5-6 итераций, в каждой из которых будет возведение в степень (на 1 ниже, чем степень корня)).
А формула что-то типа такой:
xi+1 = (xi + a/(xi^(N - 1))/2;
а - исходное число
х - корень
Еще есть метод Ньютона - решение уравнения x^N - a = 0. Там через производную (но я не помню) - возьми справочник по математике (но там ТОЖЕ нужно возводить число в степень).
Но с использованием LN и EXP будет точно (насколько точен FPU) и быстро.


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


 Вопрос № 1524

masquer, уточняю:
ИЗВЛЕЧЕНИЕ КОРНЯ N-ой степени. Имелось ввиду, что правая часть ур-ия извесна , нужно найти левую часть, т.е. если общий вид ур-ия c=f(x,y) и C=F(X,Y) , где F(X,Y)=X!^4+... , то с=С^(1/n) вот это "с" и нужно найти.
Относительно FPU - долгоиграющая пластина и нет нужных команд, а такая точность не нужна. По скорости выполнения через функцию логарифма очень долго.



Вопрос отправлен: 16.10.2002, 15:09
Отправитель: oleg (iptech@melt.ru)

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

Отвечает masquer

Доброе время суток, oleg!
Ну, если извлечь из степени двойки - сдвиг, естественно, с остальным сложнее. Для каждой степени можно через ряды посчитать и вывести потом эмпирическую формулу. Нечего другого в голову не приходит, как это быстро соорудить. Попробуй формулу упростить.

Ответ отправлен: 16.10.2002, 16:50
Отправитель: masquer


Отвечает Bob Johnson

Доброе время суток, oleg!
Совсем не обязательно использовать exp и ln - можно брать логарифм и возведение в степень по ЛЮБОМУ основанию (важно только, чтобы одинаковому), т.е.:
корень степени N из а = b^(logb (a)/N)
где b - любое положительное число (и не ноль).
А сделать 2^X на FPU - несколько команд, логарифм - тоже есть. Кроме того, если пишешь сам прогу на асме - можно заставить FPU выполнять команды параллельно с основынм процом. Тогда уж точно будет быстрее - пока проц считает X!^4 ... для нового С, FPU вычисляет с для старого С. Тем более, что тебе надо вычислить корень один раз на все выражение.


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


 Вопрос № 1525

Привет всем!
Я себе спецально под айс устанавливал 98 винды! Айс говорит что он под 95/98 винды. Записал его в autoexec.bat, запускается по ctrl+D. Но позже я просек вот какую проблему:
Symbol Loader после запуска, со всем согласен, сто сайс запущен ... Я открываю ЛЮБУЮ программу нажимаю LOAD появляется сайс и где должен быть код одни только INVALID. Потом выхожу из сайса прога запускается. А забыл, сайс пишет что то вроде break due symbol loader.
Помогите!!!



Вопрос отправлен: 16.10.2002, 15:44
Отправитель: Kiselev

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

Отвечает masquer

Доброе время суток, Kiselev!
Ну дык и в чем вопрос? Все нормально, INVALID - просто неинициализированные данные, или выходящие за пределы адресного пространства, жми Ф8 и вперед!

Ответ отправлен: 16.10.2002, 17:05
Отправитель: masquer


Отвечает freeseacher

Доброе время суток, Kiselev!
все так и должно быть!!!! просто сайс не успел дизасмить команду или не стал это делать короче такая фишка постоянно! нажимай f10 и все ок! превая команда скорее всего будет push ebp
тоесть стандартая!


Ответ отправлен: 18.10.2002, 16:11
Отправитель: freeseacher


 Вопрос № 1526

Привет!
Я попытался написать программу для выключения Win2k. Прочитал, что нашел в инете поэтому поводу (в том числе http://www.forum.wasm.ru/viewtopic.php?p=33&sid=6e5cf27b0239a6be51c05c558ec290c2). Вроде всё сделано так же, но AdjustTokenPrivileges выдает на выходе 0 и соответственно ExitWindowsEx тоже. Компилировал Тасмом, пример лежит на st23.narod.ru/power.zip
Если кто сталкивался подскажите в чем дело!
St



Вопрос отправлен: 16.10.2002, 16:11
Отправитель: St (st23@yandex.ru)

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

Отвечает oleg

Добрый день, St!
То же не означает правильно.
Какие опции использовал при компиляции?
В пакете должен быть стандарный файл включения kernel32.lib, shell32.lib, import32.lib там описаны стандартные функции системных вызовов windows.

Ответ отправлен: 16.10.2002, 17:35
Отправитель: oleg


Отвечает masquer

Приветствую Вас, St!
Опять ты с тасмом мучаешься - вот мой вариант, работающий. Проверь у себя структуры.

Приложение:

Ответ отправлен: 16.10.2002, 17:26
Отправитель: masquer


 Вопрос № 1527

Всем привет...
Подскажите, где достать доки и справочники для начинающих.
Заранее благодарен.



Вопрос отправлен: 16.10.2002, 17:12
Отправитель: Jonni (u_uzer@mail.ru)

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

Отвечает Maverick

Приветствую Вас, Jonni!
В интернете.
В поисковике набираешь ассемблер и любуешся.
Возьми архив рассылки "Ассемблер-это просто..." на subcribe.ru в разделе программирование.
Из бумажной серии, если есть возможность, купи книгу Зубкова.


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


Отвечает oleg

Здравствуйте, Jonni!
В магазине! КНИЖНОМ.
Али в инете.

Ответ отправлен: 16.10.2002, 17:24
Отправитель: oleg


 Вопрос № 1528

masquer.
Угу, пробовал, это самая простая форма. Была гораздо сложнее. Степень двойки не участвует, в этом то и загвоздка. Раньше была книга, вернее учебник для высших учебных заведений для математических и технических специальностей, но , но увы "очень умные" бараны ее упразднили.В ней как раз и рассматривалься этот вопрос с примерами.
Да , кстати, есть библиотека функций на asm'e , типа libc,
ищу уже 2-ой год.Их как то Borland выдавал, а сечас нет.




Вопрос отправлен: 16.10.2002, 17:19
Отправитель: oleg (iptech@melt.ru)

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

Отвечает masquer

Здравствуйте, oleg!
Я так рассуждаю - если нужна большая скорость и применяется достаточно громоздкая формула для обработки, то это похоже на потоковое цифровое преобразование какое-то(?). Не зная толком, о чем идет речь достаточно сложно давать такие конкретные советы - может быть, стоит посмотреть на MMX или SSE2. А вообще хорошая книга по высшей матиматике здесь точно не помешает :)

Ответ отправлен: 16.10.2002, 17:51
Отправитель: masquer


 Вопрос № 1529

Привет!
В чем разница TASM и MASM ?



Вопрос отправлен: 16.10.2002, 17:47
Отправитель: Jonni

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

Отвечает Maverick

Приветствую Вас, Jonni!
Просто две разных фирмы изготовителя.
Tasm-Borland
Masm-Microsoft
Есть различия в синтаксисе, ну и другте ньюансы.

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


Отвечает oleg

Приветствую Вас, Jonni!
Во первых производителями:
TASM-BORLAND
MASM-MICROSOFT
далше хуже, опциями компиляции, сборки,отладки, оптимизации кода и т.д,
так же способом реализации внешних вызовов из библиотек других языков программирования,
НУ и в конец ядрен батон ДЫРАМИ.

Ответ отправлен: 16.10.2002, 18:42
Отправитель: oleg


Отвечает Gibbel

Приветствую Вас, Jonni!
MASM - продукт корпорации Microsoft (этим, я думаю, все сказано).
TASM - продукт Borlandа, имеет два режима - MASM (совместимость с MASM) и IDEAL (свой собственный, на мой взгляд, более удобный).

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


Отвечает Biv

Добрый день, Jonni!
Кроме как в производителе и глючности зависящей от этого самого производителя нет никакой разницы.

Ответ отправлен: 16.10.2002, 21:08
Отправитель: Biv


Отвечает masquer

Доброе время суток, Jonni!
синтаксис отличается, у масма, как видно из названия более развиты макросредства, под винды компилятор менее глючный (у меня пока никаких глюков вообще не было).
Под дос, правда, тасм более удобный.

Ответ отправлен: 16.10.2002, 18:08
Отправитель: masquer


Отвечает Supra

Приветствую Вас, Jonni!
tasm - Borland
masm - Microsoft
tasm - лучше подходит под винды.А так один хрен, но все исп-т masm под винды(проще),а я tasm. Вот так

Ответ отправлен: 18.10.2002, 17:46
Отправитель: Supra


Отвечает Bob Johnson

Приветствую Вас, Jonni!
В фирме-производителе (Borland и MS) и есть небольщие различия в синтаксисе (но TASM совместим с MASM).
Я предпочитаю TASM.


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


 Вопрос № 1530

Привет masquer
Спасибо что ответили. Я скопировал ваш пример в тестовый файл и скомпилировал с помощью masm32. Не могли бы вы проверить правильно ли я всё сделал, т.к. всё равно не работает. Адрес st23.narod.ru/power_masm.zip
(1.7 кБ)
St



Вопрос отправлен: 16.10.2002, 18:26
Отправитель: St (st23@yandex.ru)

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

Отвечает masquer

Здравствуйте, St!
О, mea culpa!!!
Дико извиняюсь, не с того исходника кинул код. Вот правильная строка:
invoke AdjustTokenPrivileges, hToken, FALSE, ADDR NewState, sizeof TOKEN_PRIVILEGES, 0, 0

Ответ отправлен: 17.10.2002, 09:53
Отправитель: masquer


 Вопрос № 1532

masquer
Задача:
F- C=X^n+Y^n+Z^n+T^n+...
X<>Y<>Z<>T<>...
{[X,Y,Z,T,...]|100:10000}
n-{5:28}
кол-во переменных соответствует n.
Найти ближайшие целые значения f=F(C^(1/n)).



Вопрос отправлен: 16.10.2002, 19:07
Отправитель: oleg (iptech@melt.ru)

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

Отвечает Bob Johnson

Приветствую Вас, oleg!
А X, Y, Z, T ... - тоже целые?
P.S. Существует возможность отправлять вопрос не всем экспертам рассылки.


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


Отвечает masquer

Добрый день, oleg!
Честно говоря, не знаю я как тут решить можно. Сдвиги не прокатят. Единственное, что в голову приходит - разложение в ряд и какое-то упрощение, но по объему конечных расчетов может оказаться, что сопроц не так уж медлителен :)

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


 Вопрос № 1533

Где достать архив рассылок
"Ассемблер? Это просто!"
До subscribe.ru достучаться не могу.
Если сможете вышлите на мою почту (только не 2Гб)
Заранее благодарен.



Вопрос отправлен: 17.10.2002, 05:11
Отправитель: Jonni (u_uzer@mail.ru)

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

Отвечает Portnov

Доброе время суток, Jonni!
Про ДОС - держите...

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


Отвечает Maverick

Приветствую Вас, Jonni!
"http://subscribe.ru/archive/comp.prog.assembler/"
Я хотел тебе выслать архив, но он в архиве около мега, а у меня связь плохая. Ткнись в эту ссылку.


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


 Вопрос № 1534

Здравствуйте уважаемые эксперты!
Здесь в рассылке побегала ссылочка на Driver Suite 2.7.
Так вот, я его закачал (с vdown.net), но в архиве не оказалось серийного для установки. Я попытался поискать в инете, но безрезультатно. Серийные от других DS и SI не хотят работать. Так вот, не могли бы вы поделится, если, конечно у вас есть, этим серийником. Охота поставить DS позарез.
И еще: большое спасибо, что существует такая рассылка. Ее просто очень интересно читать. Всегда узнаешь что-то новое. Так держать!
Заранее благодарен, Stalker.



Вопрос отправлен: 17.10.2002, 07:20
Отправитель: stalker (zashnet@hotmail.ru)

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

Отвечает oleg

Добрый день, stalker!
Пяши: login: stalker
Company: home
А дальше очень просто, заплати и ЖИВИ спокойно!! (шутькя)

Ответ отправлен: 17.10.2002, 09:13
Отправитель: oleg


Отвечает Maverick

Доброе время суток, stalker!
Попробуй 5109-0122DF-FF


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


Отвечает Bob Johnson

Доброе время суток, stalker!
Попробуй поискать крак на astalavista.box.sk. Обычно я там все нахожу.


Ответ отправлен: 18.10.2002, 01:47
Отправитель: Bob Johnson


Отвечает Gibbel

Добрый день, stalker!
На асме можно все... В конце концов, это эквивалент машинных кодов, а проц иного и не понимает. Вопрос в другом - а стоит ли возиться, когда это все за тебя сделали другие.

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


 Вопрос № 1535

Всем привет...
Всем! Зайдите сюда :
http://www.compulenta.ru/2002/10/16/34725/
Обязательно. Это касается ваших прав и свобод! :)
Я отправил еще и в форум, но туда почему-то мало народу ходит...



Вопрос отправлен: 17.10.2002, 10:27
Отправитель: baldr (baldr@pisem.net)

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

Отвечает oleg

Доброе время суток, baldr!
Рахмет лукум.
Бигзур рахмет.

Ответ отправлен: 17.10.2002, 13:29
Отправитель: oleg


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

Добрый день, baldr!
Хорошо бы еще определить кого считать программистом, а то
получится всенародный праздник ;)


Ответ отправлен: 18.10.2002, 09:28
Отправитель: ASMодей


 Вопрос № 1536

Я используюВ Линуксе ICQ-клиент licq.Я получаю сообщения без проблем, а от меня поче-муто сообщения никто не может получить. Подскажите, пожалуйста, в чем тут может быть дело.



Вопрос отправлен: 17.10.2002, 10:24
Отправитель: Lukitkan (lukitkan@barnaul.ru)

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

Отвечает Maverick

Здравствуйте, Lukitkan!
Подсказать на уровне ассемблера?
Есть же рассылка, помоему операционные системы называется.


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


Отвечает Eugene

Приветствую Вас, Lukitkan!
Используй функцию SendLicqMessageW
пример:
push offset lpSender
push offset lpReciever
push offset lpMessage
push Params
call SendLicqMessageW


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


Отвечает oleg

Доброе время суток, Lukitkan!
Посмотри сетевые протоколы.
И разреши выходящие для твоей аськи.
ТОЛЬКО ЗАПОМНИ: "ПРИЛИЧНЫЕ ЛЮДИ АСЬКОЙ НЕ ПОЛЬЗУЮТСЯ!!!"
велика приблуда тотального контроля.

Ответ отправлен: 17.10.2002, 13:02
Отправитель: oleg


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

Доброе время суток, Lukitkan!
да посмотри дамп памяти или попробуй дизассемблировать, а вообще- то это оффтопик

Ответ отправлен: 18.10.2002, 03:36
Отправитель: 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 (45)
C / C++ (29)
Perl (5)
Delphi (21)
Pascal (25)
Basic / VBA (10)
Java / JavaScript (10)
PHP (10)
MySQL / MSSQL (14)
Пользователю
Windows 95/98/Me (37)
Windows NT/2000/XP (25)
"Железо" (33)
Поиск информации (14)
Администратору
Windows NT/2000/XP (14)
Linux / Unix (14)
Юристу
Гражданское право (8)
Семейное право (5)
Трудовое право (4)
КоАП (6)

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




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

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


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

В избранное