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

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


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

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

Выпуск № 495
от 28.02.2003, 23:10

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


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

Kostyan
Статус: Начальный
Общий рейтинг: 106.06
[Подробней >>]
Maverick
Статус: Профессиональный
Общий рейтинг: 138.44
URL: Задачи по ассемблеру
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
Joy
Статус: Доверительный
Общий рейтинг: 123.07
[Подробней >>]
 
Ayl
Статус: Профессиональный
Общий рейтинг: 118.54
[Подробней >>]
Илья
Статус: Доверительный
Общий рейтинг: 109.38
[Подробней >>]
DiGiT[old]
Статус: Профессиональный
Общий рейтинг: 110.02
[Подробней >>]
 
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 150.49
URL: Программирование
[Подробней >>]
Andrew Vext
Статус: Опытный
Общий рейтинг: 107.59
[Подробней >>]
Eugene
Статус: Опытный
Общий рейтинг: 109.32
URL: мощный файловый архив
[Подробней >>]
 
Broken Sword
Статус: Профессиональный
Общий рейтинг: 125.76
URL: моя рассылка по Protected Mode
[Подробней >>]
Igoryk
Статус: Профессиональный
Общий рейтинг: 135.16
URL: IgorykSoft
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 113.83
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
 
Топор
Статус: Доверительный
Общий рейтинг: 109.44
[Подробней >>]


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

Вопрос № 2639. Esli mozhno dayte primer kak povesit function na prerivanie ot timera toest chtob ona vizivalas 18 r... (ответов: 5)
Вопрос № 2640. Здравствуйте уважаемые эксперты. Скажите, пожалуйста, как в .com программе выводить на экран рисунки... (ответов: 2)
Вопрос № 2641. Здраствуйте уважаемые эксперты ! Подскажите как создавать GDT и LDT. Почему их 2. Уж больно круто он... (ответов: 3)
Вопрос № 2642. Здравствуйте господа эксперты !!! Не могли бы вы написать программку генерации случайных чисел ? Зар... (ответов: 5)
Вопрос № 2643. Сорри за оффтоп, но куда пропал Артем Шегеда ?... (ответов: 2)
Вопрос № 2644. Отвечает Broken Sword Доброе время суток, m0v8lack! 1. Набери EXP ExitProc. Что ты видишь? 2. :) не... (ответов: 1)
Вопрос № 2645. Когда-то проскакивала информация, что у кого-то из экспертов есть исходники 6-го доса. Не мог бы он ... (ответов: 2)
Вопрос № 2646. Привет, уважаемые эксперты! Столкнулся вот с чем: не получается делать подмену клавиш в обработчике ... (ответов: 4)
Вопрос № 2647. кто-нить может подсказать ссылочку на доки по программырованию под Вындовз и/или написание под него ... (ответов: 4)

Вопросов: 9, ответов: 28


 Вопрос № 2639

Esli mozhno dayte primer kak povesit function na prerivanie ot timera toest chtob ona vizivalas 18 raz vsecundu. znayu chto nado cherez AH=25/35 int 21h no chto-to ne vihodit.



Вопрос отправлен: 23.02.2003, 17:11
Отправитель: alex

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

Отвечает Kostyan

Приветствую Вас, alex!
Пример перехвата прерывания 1Ch в приложении.


Приложение:

Ответ отправлен: 23.02.2003, 20:02
Отправитель: Kostyan


Отвечает Maverick

Здравствуйте, alex!
Ты предлагаешь написать тебе? Ну куча же примеров есть перехватчиков. Замени там перехватываемое прерывание и все.
Несправишся, пиши на maverick@nightmail.ru

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


Отвечает Joy

Здравствуйте, alex!
Я не понял, что у тебя не получается? AH=35h, AL=08h, int 21h. Получаешь вектор прерывания. Сохраняешь старый вектор. Потом AH=25h, AL=08h, DS:DX выставил на свой обработчик и int 21h.

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


Отвечает Ayl

Добрый день, alex!
Что не выходит? Повесится не выходит? Или что?
Вообще-то перехватить прерывание ты можешь вот так (см. Приложение).
Можешь вместо прерывания 8 перехватывать 1ch - его проще обрабатывать.


Приложение:

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


Отвечает Илья

Добрый день, alex!
Если понадобится, могу выслать курсач, где это делается. Но придется многое вырезать. Если что, то b.i@date.by.

Ответ отправлен: 24.02.2003, 01:54
Отправитель: Илья


 Вопрос № 2640

Здравствуйте уважаемые эксперты.
Скажите, пожалуйста, как в .com программе выводить на экран рисунки, при параметрах экрана: 1024*768 и 24-битном цвете.
Моя программа, приведенная в приложение, считывает строки из .bmp файла, приводит их к формату 118h режима и копирует в видео буфер. Но скорость невысокая - 2-3 файла с размерами 1023*767 в секунду. Скажите, пожалуйста, как увеличить с корост хотя бы до 25 кадров (просмотренных файлов) в секунду.
И еще вопрос: почему эта программа после 12-13 просмотренной картинки отказывается считывать новые и выводит пустой экран произвольного цвета.


Приложение:


Вопрос отправлен: 23.02.2003, 18:21
Отправитель: Alexej_m

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

Отвечает Ayl

Здравствуйте, Alexej_m!
1. А ты на скорость обращения к диску не смотрел? Между прочим, скорость обращения к диску в несколько сотен раз меньше, чем к памяти. А теперь посмотри на размер файла и раздели его на 36h - получишь сколько ты раз из него читаешь.
Если уменьшишь обращение к диску - сможешь поднять скорость.
2. Программка неоптимально написана... Можно пооптимизировать.

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


Отвечает Joy

Добрый день, Alexej_m!
Ты видел сколько занимает bmp-файл с такими параметрами? Так вот он занимает 2,25 Mb!!! Ты хочешь "хотя бы 25!!!!" таких файлов за секунду открыть, прочитать и вывести на экран? Это 2,25*25=56,25 Mb!!!!! Это просто не реально! Тебе надо или уменьшать разрешение (хотя это тоже не выход), или изучать форматы видеофайлов (например avi).
А на счет проги - попробуй ее изменить таким образом, чтобы она читала текстовые файлы (вместо графических), где будет написано типа "Файл 1", в дугом "Файл 2" и т.д. Здесь ты быстрей найдешь ошибку. Скорей всего ты напутал что-то с переходами (или стеком).

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


 Вопрос № 2641

Здраствуйте уважаемые эксперты !
Подскажите как создавать GDT и LDT.
Почему их 2. Уж больно круто они описаны в helpe.
Мне б только самое важное..Заранее спасибо.



Вопрос отправлен: 23.02.2003, 19:27
Отправитель: Yura (ivanovx@inbox.ru)

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

Отвечает Maverick

Здравствуйте, Yura!
Выслал подробное описание GDT Семенко.


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


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

Доброе время суток, Yura!
Ну если тебе нужно самое нужное, то описывай тока GDT. Зайди на alexfru.chat.ru там есть готовый пример, посмотри как там сделано

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


Отвечает Bob Johnson

Доброе время суток, Yura!
Создают их в соответствии с описанием - см. его. Там не так все сложно. Почему две? Для того, чтобы (в теории) каждое приложение (т.е. отдельная задача) могла иметь до 8191 сегмента. При этом система сможет поддерживать около 8 тысяч задач. Если бы была только одна таблица - тогда всего во всей системе могло бы быть только 8191 дескриптор сегментов, и если, например, задаче бы было выделено 100 дескрипторов, то таких задач никак 82 не могло бы работать одновременно.
В действительности же в windows каждая задача пользуется только двумя сегментами: кода и данных (он же стека). Это очень удобно, т.к. позволяет забыть о том, что сегменты есть вообще.


Ответ отправлен: 26.02.2003, 15:35
Отправитель: Bob Johnson


 Вопрос № 2642

Здравствуйте господа эксперты !!!
Не могли бы вы написать программку генерации случайных чисел ? Заранее спасибо !!!



Вопрос отправлен: 23.02.2003, 21:50
Отправитель: Олег (kirillovoleg@narod.ru)

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

Отвечает Joy

Добрый день, Олег!
И где вас таких шустрых делают? Ответ: НЕТ! Не могли бы. Ты бы сам попробывал, а вот если что не получается, то пиши что не получается и исходник в приложение кидай.

Ответ отправлен: 24.02.2003, 07:46
Отправитель: Joy


Отвечает Kostyan

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

Приложение:

Ответ отправлен: 24.02.2003, 11:18
Отправитель: Kostyan


Отвечает Maverick

Доброе время суток, Олег!
Конечно могли бы...
Но ведь гораздо приятнее самому :)
Есть же функции, чтоб узнать значение таймера, вот и используй их.


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


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

Приветствую Вас, Олег!
Без Б. Только не программку а функцию.
Во- первых случайные числа распределены по какому либо закону. надо было указать какой тебе нужно. но в принципе тебе все равно необходимо равномерное распределение на отрезке [0, 1]. Первый способ(Придумали по- моему Ермаков, изобретатель метода Монте-Карло) заключается в том что ты строишь последовательность типа x(n)={M*x(n-1)} {}- дробная часть. M_M это оптимальные числа выведенные мною :)
А второй забугорный способ линейная конгруэнтная последовательность типа x(n)= (a*(n-1)+b) mod m; или нелинейная короче это есть в кнуте. Я оптимальные параметры a, b, m не помню...

Приложение:

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


Отвечает Andrew Vext

Доброе время суток, Олег!
Самый часто применяемый тип алгоритмов генерации псевдослучайных последовательностей - линейные конгруэнтные генераторы, описываемые общим рекуррентным соотношением:
I(j+1) = (aI(j) + с) MOD m
При правильно выбранных числах а и с эта последовательность возвращает все числа от нуля до m-1 псевдослучайным образом и ее периодичность сказывается только на последовательностях порядка m.

Приложение:

Ответ отправлен: 26.02.2003, 17:19
Отправитель: Andrew Vext


 Вопрос № 2643

Сорри за оффтоп, но куда пропал Артем Шегеда ?



Вопрос отправлен: 24.02.2003, 00:24
Отправитель: Jenson

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

Отвечает Eugene

Приветствую Вас, Jenson!
Отпуск наверно у него. Дайте человеку отдохнуть.

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


Отвечает Maverick

Доброе время суток, Jenson!
Наверное времени нет, на вопросы отвечать.
Большинство экспертов не знают друг друга.


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


 Вопрос № 2644


Отвечает Broken Sword
Доброе время суток, m0v8lack!
1. Набери EXP ExitProc. Что ты видишь?
2. :) не во всех прогах говоришь? а распаковывать пробовал перед дизассемблированием? (здесь я под распаковкой понимаю есесно не извлечение из zip-архива, а внутреннюю распаковку проги, это на всяк. случай).
На счет 2 вопроса.
Я не понял что вы имете в виду.
Немогли бы вы попотробнее объяснить на каком либо примере.
Заранее благодарен.



Вопрос отправлен: 24.02.2003, 04:45
Отправитель: m0v8lack

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

Отвечает Broken Sword

Доброе время суток, m0v8lack!
ASPack, ASprotect, Armadillo, PETite, ... UPX в конце концов. Неужели ни одно из этих названий ни о чем не говорит?
Поясню. Все это - паковщики PE-файлов (существуют паковщики и для COM-файлов), ничего обещего с "упаковкой" в обычном понимании (архивация) не имеют (хотя и могут содержать некоторое уменьшение длины). Вообщем, суть в том, что при запуске файл "распаковывает" (или правильнее будет - расшифровывает) себя в памяти. Простейший случай - XOR (т.е. при запуске управление передается на процедуру-распаковщик, которая ксорит каждый байт кода с каким-л символом в реузльтате получается оригинальный код, которому передается управление. Естественно, если прога запакована (т.е. зашифрована) и ты пытаешься ее смотреть в дизассемблере то ничего кроме бреда ты не увидишь (в WDASM-е это нули, в HIEW-чушь).

Ответ отправлен: 24.02.2003, 16:44
Отправитель: Broken Sword


 Вопрос № 2645

Когда-то проскакивала информация, что у кого-то из экспертов есть исходники 6-го доса. Не мог бы он послать мне на мыло или подсказать ссылку в инете, откуда можно скачать?
Заранее спасибо.



Вопрос отправлен: 24.02.2003, 12:31
Отправитель: Eugene (kraker@inbox.lv)

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

Отвечает Igoryk

Приветствую Вас, Eugene!
Это я говорил. Но посылать 13 мегабайт информации... Ты скаи что конкретно нужно, я пришлю.

Ответ отправлен: 24.02.2003, 15:52
Отправитель: Igoryk


Отвечает baldr

Доброе время суток, Eugene!
У меня есть. См сайт http://www.dospage.by.ru.
Только учти, что там архив 20 томов по 900Kb!


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


 Вопрос № 2646

Привет, уважаемые эксперты!
Столкнулся вот с чем:
не получается делать подмену клавиш
в обработчике int 09h.
С обработчиком всё ok,
сам алгоритм замены мучает 2 день -
ничего не получается, хоть тресни... :(((
Как я знаю, есть в области данных bios
"место для клавы":
kb_buffer_head dw ? ;0040:001Ah
kb_buffer_tail dw ? ;0040:001Ch
kb_buffer dw 16 dup (?) ;0040:001Eh
kb_buffer_end label word ;0040:003Eh
Заполняется ли 16 word скан-кодом клавиши или там как у Жордена:
"Чтобы разрешить ввод 15 символов требуется 16-я пустая
позиция, 2 байта которой всегда содержат код возврата каретки
(ASCII 13) и скан-код клавиши , равный 28."?
Помогите с алгоритмом замены,
типа нажал A, а на экран Z лепиться и всё такое.
З.Ы.
Я помню кто-то из вас кидал давно исходник
такого типа для Turbo Pascal-а, изначально созданный
для увеселения. (Или Bob Johnson, или Broken Sword).
Можно и мне его на мыло?..



Вопрос отправлен: 24.02.2003, 19:11
Отправитель: Max

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

Отвечает Ayl

Здравствуйте, Max!
Непонятно, какие у тебя проблемы. В обработчике 9-го прерывания запоминаешь указатель на хвост очереди (0000:041ch), вызываешь старый обработчик, считываешь занесенный символ из хвоста, перекодируешь его и заносишь снова. Для перекодировки лучше всего завести 2 таблицы - одна для скен-кода, вторая - для ASCII.

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


Отвечает Joy

Добрый день, Max!
Еще раз почитай Журдена, только внимательней. У него эта тема описана очень хорошо.
А алгоритм примерно такой. Перехватывешь прерывание, смотриш какой пришел символ, меняешь его, передаешь управление стандартному обработчику.
И еще раз читаешь Журдена. Медитируешь. И опять Журдена...

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


Отвечает Maverick

Приветствую Вас, Max!
Можно же проще сделать(в обработчике):
...........
in al,60h
cmp al,?? ;Код нужной клавиши
jnz exit
mov ah,05h
mov cx,?? ;На что заменить
int 16h
mov al,20h
out 20h,al
............
В приложении описание нек-ых функций.


Приложение:

Ответ отправлен: 25.02.2003, 04:56
Отправитель: Maverick


Отвечает Bob Johnson

Доброе время суток, Max!
> Можно и мне его на мыло?..
Да у нас все можно... Только адрес ты не указал... Вот это неправильно.
Кажется я что-то такое кидал. Только я использовал там совсем не 9 прерывание, а 16 - оно возвращает код нажатой клавиши приложению.


Приложение:

Ответ отправлен: 26.02.2003, 15:35
Отправитель: Bob Johnson


 Вопрос № 2647

кто-нить может подсказать ссылочку на доки по программырованию под
Вындовз и/или написание под него вирей. их исходники покатят тоже
если не ОЧЕНЬ большой размер буду ЧРЕЗВЫЧАЙНО благодарен если скинете
на vladimir@zt.ukrpack.net (можно на английском)



Вопрос отправлен: 24.02.2003, 23:01
Отправитель: Вовыч

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

Отвечает Топор

Приветствую Вас, Вовыч!
На развале сидюк купи. Дешевле выйдет, чем в Нете-то сидеть.


Ответ отправлен: 26.02.2003, 11:48
Отправитель: Топор


Отвечает Joy

Приветствую Вас, Вовыч!
На www.wasm.ru найдешь много интересного...

Ответ отправлен: 25.02.2003, 07:25
Отправитель: Joy


Отвечает Maverick

Приветствую Вас, Вовыч!
На www.wasm.ru есть неск-ко статей, да и в инете этой инфы хватает.

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


Отвечает Bob Johnson

Добрый день, Вовыч!
Некоторая документация по программированию под Windows есть на моей странице.
bobjohnson.nm.ru


Ответ отправлен: 26.02.2003, 15:35
Отправитель: Bob Johnson



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

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (33)
C / C++ (27)
Perl (5)
Delphi (16)
Pascal (20)
Basic / VBA (10)
Java / JavaScript (7)
PHP (5)
MySQL / MSSQL (4)
Пользователю
Windows 95/98/Me (33)
Windows NT/2000/XP (25)
"Железо" (28)
Поиск информации (14)
Администратору
Windows NT/2000/XP (12)
Linux / Unix (11)
Юристу
Гражданское право (7)
Семейное право (4)
Трудовое право (4)
КоАП (4)

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




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

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


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

В избранное