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

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


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

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

Выпуск № 668
от 29.11.2003, 14:00

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


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

Bob Johnson
Статус: Профессиональный
Общий рейтинг: 148.68
URL: Программирование
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 112.77
[Подробней >>]
never_again
Статус: Опытный
Общий рейтинг: 137.3
[Подробней >>]
 
Maverick
Статус: Профессиональный
Общий рейтинг: 122.48
URL: Эхоконференция по вирмейкингу
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 142.6
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
GL
Статус: Профессиональный
Общий рейтинг: 102.38
[Подробней >>]
 
dr_dolphin
Статус: Доверительный
Общий рейтинг: 116.38
[Подробней >>]
Artemy
Статус: Доверительный
Общий рейтинг: 126.95
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 106.39
URL: Savage Metal Club - жизнь в стиле рок-н-ролл
Телефон: +7 901 710 3146
[Подробней >>]
 
Duncan MacLeod
Статус: Начальный
Общий рейтинг: 106.89
[Подробней >>]


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

Вопрос № 4509. Уважаемым экспертам всего самого. Этот вопрос я уже задавал этот вопрос в раздел С/С++, но ответил т... (ответов: 2)
Вопрос № 4510. Привет! Не подскажите, как убрать поиск флоппи (или сделать этот поиск бесшумным) при выключении/пер... (ответов: 2)
Вопрос № 4511. Помогите пожалуйста с лабой на асме. Я бы сделала сама, но нет никаких материалов, а главное уже нет... (ответов: 1)
Вопрос № 4512. Здравствуйте, уважаемые! Подскажите, как записать параметры при вызове макроса не в одну строку (для... (ответов: 1)
Вопрос № 4513. Здравствуйте ув. эксперты! Вопрос у меня такого плана: имеется ли у звуковой карты возможность прео... (ответов: 2)
Вопрос № 4514. Эксперты! Помогите начинающему. Есть задача, но не знаю с какой стороны подступиться. Задача такая: ... (ответов: 3)
Вопрос № 4515. Здравствуйте Уважаемые Эксперты!!! Есть такой вопрос. Надо с СОМ порта снимать сигнал от внешнего у... (ответов: 4)
Вопрос № 4516. Здравствуйте! Не могли бы вы мне сказать как писать тех. задание. Ну я знаю, что это такое: тоесть д... (ответов: 2)
Вопрос № 4518. Здравствуйте, уважаемые эксперты. Хочу сделать симулятор-отладчик кода (не совместимого с Intel). До... (ответов: 4)
Вопрос № 4519. пожалуста! помогите! дана матрица n на m! DW формата! поменять первую строку со строкой содержащей ... (ответов: 2)
Вопрос № 4520. Здравствуйте, эксперты! Подскажите, пожалуйста, алгоритм, как определить являютя ли четыре точки вер... (ответов: 6)

Вопросов: 11, ответов: 29


 Вопрос № 4509

Уважаемым экспертам всего самого.
Этот вопрос я уже задавал этот вопрос в раздел С/С++, но ответил только один человек, да и его ответ мне не годится.
Пишу прогу-курсач под Окна на C. Загвосточка одна возникла.
От Edit'а получаю текст, который по сути должен быть числом типа double. Как мне перевести строку текста в число с плавающей точкой + отловить ошибки ввода + (очень желательно) не пользоваться стандартной библиотекой С (хочу маленький .exe-спасибо Bob'y Johnson'y за его статьи)
, т.е. только WinAPI. Если нужно писать всё самому - нет проблем, вы только на путь истинный меня направьте.



Вопрос отправлен: 23.11.2003, 12:55
Отправитель: TReaMoN

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

Отвечает Bob Johnson

Добрый день, TReaMoN!
Да, надо писать самому.
Рекомендую посидеть в интернете и найти готовый кусок кода (если это возможно). Если нет - то вначале определись, в каком виде твоя программа хочет воспринимать число с плавающей точкой - "-.4e-12" тебе нужно? Если да, то задача усложняется. Если же нет, то вначале ты считываешь целую часть (до "."), затем последовательно дробную. Используй сопроцессор и все будет несложно - т.е. в начале ввода дробной части ты устанавливаешь вес разряда 0.1, затем считываешь цифру, умножаешь ее на вес и добавляешь к результату. Далее делишь вес на 10 и переходишь к сл. цифре и т.д.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 27.11.2003, 23:43
Отправитель: Bob Johnson


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

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

Ответ отправлен: 24.11.2003, 07:36
Отправитель: ASMодей


 Вопрос № 4510

Привет! Не подскажите, как убрать поиск флоппи (или сделать этот поиск бесшумным) при выключении/перезагр вин98? Спасибо.



Вопрос отправлен: 23.11.2003, 16:12
Отправитель: dxf

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

Отвечает never_again

Здравствуйте, dxf!
зайди в BIOS и установи загрузку с харда а не с флоппи, а вообще этот вопрос к ассемблеру отношения не имеет!!!

Ответ отправлен: 23.11.2003, 18:44
Отправитель: never_again


Отвечает Maverick

Доброе время суток, dxf!
Я так понял интересует как это сделать на ассемблере?
Найди адрес значения, которое отвечает за проверку флопа в биосе перед загрузкой, а изменить его дело техники :)))


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


 Вопрос № 4511

Помогите пожалуйста с лабой на асме. Я бы сделала сама, но нет никаких материалов, а главное уже нет времени. Поделитесь соображениями.


Приложение:


Вопрос отправлен: 23.11.2003, 17:18
Отправитель: Alja

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

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

Здравствуйте, Alja!
Пускаешь поиск файлов (можешь взять мою программу CODER с моего сайта) и проверяешь их свойства, удаляешь, что необходимо!

http://superforest.narod.ru/research_coder.htm

Удачи!
* EMan: -=- Любовь существует! =-=


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


 Вопрос № 4512

Здравствуйте, уважаемые!
Подскажите, как записать параметры при вызове макроса не в одну строку (для удобства чтения). В макросе параметры записываются через слэш:
MacroName MACRO Param_1,
Param_2 ;и т.д.
при вызове такой синтаксис не проходит.(TASM)
Спасибо.



Вопрос отправлен: 24.11.2003, 02:52
Отправитель: USA (usa-lesh@yandex.ru)

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

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

Приветствую Вас, USA!
В две и более строк надо использовать .
Call BASS_StreamCreateFile, FALSE, [(t OPENFILENAME esi).lpstrFile],
0, 0, 0
Бывай!
* EMan: -=- Любовь существует! =-=


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


 Вопрос № 4513

Здравствуйте ув. эксперты!
Вопрос у меня такого плана:
имеется ли у звуковой карты возможность преобразовать в биты(байты) аналоговый сигнал частотой 90МГц или хотя бы выше. Если да, то что для этого нужно сделать и как использовать ассемблер по максимуму.
Спасибо заранее.
Vagabundo



Вопрос отправлен: 24.11.2003, 07:53
Отправитель: Vagabundo (cesaren@yandex.ru)

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

Отвечает Bob Johnson

Здравствуйте, Vagabundo!
> аналоговый сигнал частотой 90МГц
Ну-ну :) Да этого не сможет ЦАП в цифровом 100 Гц телевизоре.
> или хотя бы выше
:)
Нет, звуковая карта может оцифровывать сигналы с частотой до 48 Кгц (если она сама 96) или до 24 (если она 48) . Но это килогерцы, а не МГЦ.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 27.11.2003, 23:43
Отправитель: Bob Johnson


Отвечает GL

Добрый день, Vagabundo!
Нет, 90 МГц - это слишком высокая частота, а карта рассчитана на обработку звукового диапазона 20...20000 Гц (на то она и звуковая :). У обычной карты максимальная частота дискретизации 48 кГц, делим её на 2 - и получаем максимальную частоту, которую она может обработать - 24 кГц.
Для оцифровки сигнала частотой 90 МГц потребуется очень быстродействующий АЦП (аналого-цифровой преобразователь). Такие АЦП очень дороги.


Ответ отправлен: 24.11.2003, 13:47
Отправитель: GL


 Вопрос № 4514

Эксперты! Помогите начинающему. Есть задача, но не знаю с какой стороны подступиться. Задача такая: дезассемблировать программу базового обработчика прерывания для клавиатуры 09. Дополнить обработчик процедурой пользователя, обрабат. нажатие клавиш ALT-T. Заранее благодарю.



Вопрос отправлен: 24.11.2003, 13:52
Отправитель: Gleb

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

Отвечает dr_dolphin

Добрый день, Gleb!
А зачем базовый дизассемблировать ? Просто пишешь свой обработчик делаешь в нем свои дела, а потом просто вызываешь старый обработчик...т.е:
1. берешь адрес обработки из тавлицы векторов прерываний
2. запоминаешь его
3. пишешь свой обработчик
4. вносишь адрес своего обработчика в таблицу векторов прерываний
5.Из своего обработчика вызываешь старый.
и все.
При нажатии на клавишу будет вызван твой код, а уж потом старый код.
Пока!

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


Отвечает Artemy

Доброе время суток, Gleb!
Для этого совсем не обязательно что-то там дизассемблировать, достаточно просто написать резидент и повесить его на int 09h.


Ответ отправлен: 25.11.2003, 16:37
Отправитель: Artemy


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

Здравствуйте, Gleb!
Тут можно просто встать до этого обработчика (перехватить).
И брать код клавиши ALT. Устанавливать флажок, если нажата, сбрасывать, если отпущена. Потом проверять другую клавишу - и делать твоё действо!
Чао!
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 25.11.2003, 13:07
Отправитель: Евгений Иванов


 Вопрос № 4515

Здравствуйте Уважаемые Эксперты!!!
Есть такой вопрос. Надо с СОМ порта снимать сигнал от внешнего устройства в Win98 .Если АРІ функции (подскажите плз. какие)для работы обычной проги или надо писать VxD драйвер чтоб работать в 0 кольце ?
Зарание благодарен!



Вопрос отправлен: 24.11.2003, 17:31
Отправитель: Vlad

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

Отвечает Bob Johnson

Здравствуйте, Vlad!
Есть - CreateFile, ReadFile, WriteFile, CloseHandle.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 27.11.2003, 23:43
Отправитель: Bob Johnson


Отвечает Gibbel

Доброе время суток, Vlad!
---MSDN---
Функция CreateFile может создавать хэдлы для ресурсов коммуникации, таких как последовательный порт COM1. Для этого параметр dwCreationDisposition должен быть OPEN_EXISTING, а параметр hTemplate должен быть NULL.
---MSDN---
P.S.: для вопросов по WinAPI существует отдельная рассылка.

Приложение:

Ответ отправлен: 25.11.2003, 11:57
Отправитель: Gibbel


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

Здравствуйте, Vlad!
CreateFile.
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 25.11.2003, 13:08
Отправитель: Евгений Иванов


Отвечает Maverick

Добрый день, Vlad!
Хых, не обязательно драйвер, можно и обычное приложение заставить в 0 кольце работать, под 98 есть 6 или больше способов. Информация об этом есть на вирусных сайтах.


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


 Вопрос № 4516

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



Вопрос отправлен: 24.11.2003, 20:01
Отправитель: Эдик (edsam@spidernet.com.cy)

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

Отвечает Bob Johnson

Доброе время суток, Эдик!
На написание ТЗ есть ГОСТ - найди его и прочитай там, какие пункты в нем должны быть.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 27.11.2003, 23:43
Отправитель: Bob Johnson


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

Добрый день, Эдик!
Насколько я помню, в техзадании потоки данных не описываются. Там должно быть полное описание функциональности программы, ее временнЫе характеристики и всякое такое...
На всякий случай отправляю тебе ГОСТ на оформление тех. задания.


Ответ отправлен: 25.11.2003, 11:19
Отправитель: ASMодей


 Вопрос № 4518

Здравствуйте, уважаемые эксперты. Хочу сделать симулятор-отладчик кода (не совместимого с Intel). Документация по системе команд есть. Не знаю с чего начать и какие подводные камни там существуют. Если у кого-нибудь есть исходники для дизасемблирования хотябы файлов .com из MS-DOS, буду очень признательна. Первое, с чем столкнулась - обработка условных переходов и вызовов функций. понимаю, что нужна рекурсия, но как ее собрать не знаю.
Спасибо заранее всем...



Вопрос отправлен: 24.11.2003, 20:08
Отправитель: Swetlana (snt_swetlana@rambler.ru)

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

Отвечает Bob Johnson

Доброе время суток, Swetlana!
Это действительно тебе нужно или опять друг попросил? :)
В общем так - если хочешь, то дизассемблер EXE PE файлов на асме (с исходниками) лежит у меня на странице. Адрес давно не упоминал - http://bobjohnson.nm.ru.
Далее - чтобы сделать отладчик, надо построить структуру иерархии команд процессора (с помощью таблиц) - т.е. ты вытаскиваешь очередную команду, смотришь в таблице, что это и исходя из того, что там увидишь, предпринимаешь нужные действия.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 27.11.2003, 23:43
Отправитель: Bob Johnson


Отвечает GL

Добрый день, Swetlana!
Послал исходники на ящик.


Ответ отправлен: 25.11.2003, 18:34
Отправитель: GL


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

Добрый день, Swetlana!
Смотри мой эмулятор Спектрума на моём сайте; не знаю, может пригодится...
http://superforest.narod.ru/research_zxs.htm
Бывай!
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 25.11.2003, 13:09
Отправитель: Евгений Иванов


Отвечает Maverick

Приветствую Вас, Swetlana!
Для начала разберись с форматом команд, и это самое простое.
В этом я могу помочь разобраться (для Intel). Теоритически ничего сложного нет, все подчиняется жесткой логике, но на практике есть свои проблемы :)
Ты можешь по опкоду сказать что это за инструкция? Т.е. выполнить работу процессора? Если нет, то дальше идти смысла нет, разбирайся с этим.
P.S. Девушка программист на ассемблере? Хмм, интересно :), будут вопросы, пиши на мыл...
maverick@nightmail.ru


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


 Вопрос № 4519

пожалуста! помогите! дана матрица n на m!
DW формата!
поменять первую строку со строкой содержащей большее количество нулей!
пришлите пожалуста ответ на мой почтовый ящик!
bond@junior.ru



Вопрос отправлен: 24.11.2003, 20:10
Отправитель: Макс

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

Отвечает Artemy

Доброе время суток, Макс!


Приложение:

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


Отвечает never_again

Приветствую Вас, Макс!
сам учись.


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


 Вопрос № 4520

Здравствуйте, эксперты!
Подскажите, пожалуйста, алгоритм, как определить являютя ли четыре точки вершинами квадрата.
Заранее благодарен, EraSer.



Вопрос отправлен: 25.11.2003, 13:50
Отправитель: EraSer (eraser99@tut.by)

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

Отвечает Duncan MacLeod

Здравствуйте, EraSer!
Если бы меня попросили сделать подобное, то я навероное бы просто посчитал длины всех сторон, если равны, квадрат. Хотя я не эксперт по подобного рода задачам! :) Так что может кто еще чего предложит, более умное! :)

Ответ отправлен: 25.11.2003, 18:18
Отправитель: Duncan MacLeod


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

Приветствую Вас, EraSer!
Равенство диагоналей и равенство соседних сторон
* EMan: -=- Любовь существует! =-=


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


Отвечает never_again

Добрый день, EraSer!
исходи из:
(x1,y1) (x2,y2)
@----------@
| |
| |
| |
| |
@----------@
(x3,y3) (x4,y4)
то
если (у1=у2 и у3=у4 и х1=х3 и х2=х4 и (х2-х1)=(у3-у4)) значит это квадрат.


Ответ отправлен: 25.11.2003, 16:57
Отправитель: never_again


Отвечает Artemy

Здравствуйте, EraSer!
Просто одинакового расстояния между точками недостаточно, т.к, при этом они все могут принадлежать одной прямой и естественно это будет не квадрат.
Помоему, нужно делать так:
A
/ A----B
/ | |
/ | |
D /B D----C
/
/
C
a = |xA-xB|+|xB-xC|+|xC-xD|+|xD+xA|
b = |yA-yB|+|yB-yC|+|yC-yD|+|yD+yA|
и если a = b, то это квадрат,
и не важно как он расположен на плоскости.
Имхо, на ассемблере это реализуется просто.


Ответ отправлен: 25.11.2003, 17:36
Отправитель: Artemy


Отвечает Bob Johnson

Доброе время суток, EraSer!
1. Квадрат имеет равные по длине стороны. Т.е. сравни стороны с помощью вычисления их длины l = sqrt (dx*dx + dy*dy).
2. Либо угол между соседними сторонами должен быть равен 90 градусов (проверяется равенством нулю скалярного произведения векторов, сонаправленных с этими сторонами), либо диагонали равны по длине.
Тебе нужно, чтобы оба условия были выполнены.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 27.11.2003, 23:43
Отправитель: Bob Johnson


Отвечает Gibbel

Здравствуйте, EraSer!
Замерить расстояние между ними. У квадрата все стороны равны, и диагонали равны.

Ответ отправлен: 25.11.2003, 14:30
Отправитель: Gibbel



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

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

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

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (28)
C / C++ (22)
Perl (3)
Builder / Delphi (16)
Pascal (18)
Basic / VBA (6)
Java / JavaScript (10)
PHP (12)
Криптография (6)
WinAPI (10)
Пользователю
Windows 95/98/Me (42)
Windows NT/2000/XP (57)
"Железо" (35)
Поиск информации (20)
Администратору
Windows NT/2000/XP (34)
Linux / Unix (14)
Юристу
Гражданское право (11)
Семейное право (8)
Трудовое право (9)
КоАП (6)

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




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


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


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

В избранное