Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Ассемблер? Это просто! Учимся программировать (FAQ)
Ассемблер? Это просто! Учимся программировать (FAQ)
Выпуск N 145 |
Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"
Дата выхода: 2001-12-03
Вопрос №1677
Уважаемые эксперты!
Я пытаюсь заставить прогу мигать Num, Caps и Scroll lock'ами.При трассировке в отладчике она работает нормально, при просто запуске_мигает только выставленный первым светодиод...
Для включения использую байт 0:417h, 6й бит - Caps, 5й - Num, 4й - Scroll.
Ответ
Здравствуйте, NeoS!
Дополнение к ответу эксерта Dron. Я тоже хотел посоветовать работать через порт 64h, даже написал прогу, которая вроде как должна была это делать, но она у меня не заработала :(
Вроде как в Tech Help написано, что работа с портом 64h не всегда проходит, и в этом случае рекомендуется использовать порт 60h, но проверять это мне было влом.
Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 94
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1676
Добрый день, любимая рассылка... ;)
>Я вс+ же по технологии подключения ДЛЛлок.
>Выходит - что в экзешнике, должна быть твблица на пример этой:
Да есть, если хочешь напиши на ejikra@nm.ru - пришлю формат
PE-хедера.
>Дальше если рассуждать - ОСка берет экзешник читает эту таблицу и ищет ДЛЛки.
>Загружает ДЛЛ и в Экзешник подставляет таблицу типа
>JMP ("Дальний"_указатель_на_нужную_функцию)
Нет, подставляет в любое место программы, для этого есть еще доп.инфа Relocation Table.
>Но тут встает два вопроса. На самом деле явно это не так. По скольку иногда (очень редко) у меня
>Экзешник говорил что нет ДЛЛки уже после того как я запустил и работал ( но тут может грабля
>находиться во всяких там ActiveXсах и т.д.)
>?????????
Точно, когда используешь ActiveX, COM/DCOM, то об этом узнаешь уже при подключении вызова... ;) Но это и к лучшему, если в системе не установлен Word или Excel, неужели моя программа не должна там запускаться?
>Кроме того в экзешнике должны быть ссылки на заранее ведомо пустое место. Т.е. на место куда ОСка
>подставит таблицу переходов. Но как ОСка тогда может определить куда именно нужно подставить
Ссылки: в Relocation'ах. Но таблица переходов создается для сокращения кода:
jmp dword ptr [&LocalAlloc] = 6 байт
Call MyLocalAlloc - 5 байт
MyLocalAlloc:
jmp dword ptr [Tabl]
Tabl dd 0
Если вызовов достаточно много (более 8), то такая конструкция уже оправдана.
> ссылку на нужную функцию ДЛЛки, не по алфавиту же, хотя это и выход ...
2 способа:
- по номеру в DLL (не используется, может измениться)
- по имени (именно по алфавиту)
Существует 2 способа подключения DLL:
- статически (когда явно в программе указываем в какой DLL искать)
т.е. Extern LocalAlloc (остальное делает компилятор)
- динамически (пример подключения уже был в рассылке);
Удобно, когда нужно некое подобие Skin-технологии (возможно расширение дополнительными функциями)
При этом адрес, возвращаемый GetProcAddres должен быть где-то сохранен, и затем делается простой вызов
NewFunc DD 0
...
Call LoadLibrary
...
Call GetProcAddrses
mov NewFunc, eax
...
...
call dword ptr [NewFunc]
Освобождать DLL после использования - желательно, в любом случае, это дело регистрируется где-то в Windax, и по выходу все освобождается.
При статическом подключении, фактически выполняются те же функции только загрузчиком...
;)
Теперь по поводу передачи параметров. Их существует масса:
- через стек (используется всеми промышленными компилятрами - возврат всегда в регисре eax);
- через регистры (в основном ассемблерщики);
- через ячейки памяти: стиль выдающий начинашку.
- а можно так (форт системы, вообще форт на порядок лучше любого языка, оставаясь проще ассемблера, и оптимальней M$ изобрела новую .Net технологию основанную на стековой организации - фактически Форт система, только хуже, как всегда)
call MyProc
dd Param1
...
здесь может быть любая структура
MyProc:
pop esi
lodsd
push esi
...
ret
Это для информации.
P.S. Народ, форвардните, плз.
P.S. #2 MenuetOS действительно крутая штучка.
Там родной ассемблер есть интересный 21kb, знает макросы (свои какие-то), да еще .386 знает. Советую. Удобный очень.
Ответ
Здравствуйте, EjikRA!
Да, информация действительно интересная. Я бы даже сказал заслуживающая внимания.
Хотя такой способ передачи параметров не нов. Я таким способом, в основном, строки выводил еще на Спектруме.
Отправил эксперт: Andy Bitoff (http://bitoff.pisem.net - HomePage)
Эксперт отправил ответов (всего): 28
Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32
Вопрос №1680
Здравствуйте, Эксперты!
Есть пара вопросов:
1)Какой ключ делает dll т.е. помечает секцию данных как разделяемую (TASM)????
2)Как можно "засунуть" на стек адрес процедуры??? (на масме это делалось:
push addr myproc
Как это сделать в Tasm?
3)Какие параметры передаються к DLL при еЈ "инициализации" (3 параметра)?
Ответ
Здравствуйте, Дмитрий!
1)DLL можно собрать вот так:
tasm.EXE /m /x /ml MyProg.asm
tlink32.EXE -Tpd -c MyProg.obj,,,,MyProg.def
файл .def описывает экспортируемые функции и должен создаваться вручную так:
EXPORTS MyFunction1 MyFunction2 MyFunction3
2)"засунуть" на стек адрес процедуры можно так:
push offset MyProc
3)Параметры такие:
1 - Идентификатор DLL
2 - причина вызова процедуры
3 - зарезервированный параметр
Отправил эксперт: Andy Bitoff (http://bitoff.pisem.net - HomePage)
Эксперт отправил ответов (всего): 29
Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32
Вопрос №1685
Здравствуйте эксперты!
У меня такой вот простой вопрос!
Допустим в регистре DX есть значение смещения, как теперь данные по этому смещению записать в другой регистр, и можно ли так сделать?
Ответ
Здравствуйте, ILYA D.!
Очень просто. mov al,byte ptr [dx]
Отправил эксперт: Broken Sword
Эксперт отправил ответов (всего): 225
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1683
Здравствуйте!
У меня к Вам вопрос.
Пожалуйста, помогите подобрать оборудование и софт для следующих задач.
Требуется создать “Домашний кинотеатр” на основе PC c возможностью
просмотра “видео” на TV c наилучшим качеством.
Одновременно с этим требуется возможность записи с видеомагнитофона (камеры) по аналоговым и цифровым портам в РС и обратно с (насколько это возможно) лучшим качеством видео и звука, а так же возможность удобного редактирования этих записей.
Заранее благодарю, с уважением, Кузнецов Михаил.
Ответ
Здравствуйте, Михаил!
Все думал зачем ЖЕ существует компания Matrox ;) А теперь понял - для решение таких вопросов. Что ж скрЫпя сердцем и стиснув зубы хочу признать, что среди видеокарт полусреднего уровня лучший вывод видео чем на G4/5xx вам не найти... Насчет ввода видео, то же самое, только тогда вам нужна более дорогая модификация matrox G4/550 eTV в ней помимо не нужного тв-тюнера реализован качественный видео-вход с применением хороших аналоговых трактов (кажись стандартно присутствует поддержка MPEG-2)...
А вот насчет софта, который это будет придерживать... в общем стандартными родными утилитами не обойтись (если matrox конечно не выпустила обновления для eTV...)
Стоит такая штука в Москве около 200 буказоидов. На большее от нее не расчитывайте - например для игрушек она слабовата, т.е. достаточно узкоспециализирована (но енто и является "знаком качества)
ЗЫ. Обязательно посмотри ее характеристики на хардварных сайтах - может и такое качество тебя не устроит ;)
Отправил эксперт: DivX
Эксперт отправил ответов (всего): 59
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №1651
Приветствую,уважаемые эксперты.
У меня такая проблема:загружаю битмап 320х200х256 как
массив из байтов пропускаю заголовок, и напрямую в видеопамять. А вот с палитпой - проблемы. Цвета не те.
Подскажите, как загружать палитру в регисры EGA.
И ещё: есть у кого-нибудь алгоритм или прога увеличения/уменьшения изображения на 50%.
Заранее спасибо!!!
Ответ
Здравствуйте, blastoff!
Вот прога !!! Исходник из паскаля но разобратся можно !
Да вот что важно !!!!
С- номер цвета (0..256)
R,G,B - Компоненты цвета но загружать из надо R(загружаемое)=r(Иснодное)SHR 2
Приложение:
Отправил эксперт: Covax
Эксперт отправил ответов (всего): 7
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1684
Здравствуйте,
вчера какой-то молодой и горячий (типа вашего визарха) прислал мне бяку в почтовый ящик.
Бяка сляпана кое-как в дельфях и имеет целью допустить этого юного следопыта к управлению
чужим компом. Троян, короче. Вопрос: как отследить этого пачкуна и спалить ему монитор? Ну,
со второй частью я сам как-нибудь справлюсь. Может быть, на первый раз пожалею. А вот
с первой - письмо было отправлено с легального адреса дядечки (будто бы из Аутлука),
который, скорее всего, совершенно ни о чем не подозревает. Можно ли каким-либо образом
через фальшивый заголовок письма (т.е. реальный, но фальшивый) отследить реального
отправителя? Или другим способом? К сожалению, я совершенно не силен в этих шпионских штучках.
Да, к ехешнику был приложен dll, который, на самом деле, никакой не длл, а простой текстовый
файл с перечнем почтовых адресов. Мне кажется, что вирь вычитывает почтовые адреса из html
страниц, а затем пересылает по этим адресам свои клоны. Список адресов (его начало) такой:
ask@subscribe.ru
Assembler@Kalashnikoff.ru
BIG@bruincam.com
fluent_english@tut.by
getahead@degree_prog...
hoornweg@hannover.sgh-net.de
i@cooler.com.ua
ilya.div@nm.ru.
jlpt@narod.ru
и т.д.
Мне кажется, что подобные проблемы возникли не только у меня.
Всех вам благ,
Bubale
Ответ
Здравствуйте, Bubale!
Ты посмотри в шапке...откеды...он прише....
посмотри с какого хоста.....узнай IPшник....таким макаром смогеш узнать где он обитает.....
хотя ты его врядли найдешь.. ты думаешь будет умный чел рассылать вирей и троянских коньков
со своего аккаунта????
по моему легче зарегать себе левый аккаунт где нет даже намека на
инфу о нем....и рассылать всяких там вирей....
Отправил эксперт: змей
Эксперт отправил ответов (всего): 136
Экспертная группа: Пользовательская работа с Windows
Вопрос №1686
Сразу оговорюсь - это не вопрос, но надеюсь эксперты _ЭТО_ увидят.
Рассылку читаю ради интереса, иногда что-нить интересное и проскакивает, но редко. И вот недавно тут развернулась Holy-War по поводу Асма и других высокоуровневых языков. Люди часто утверждают, что Асм "рулезней" всех на свете, а все остальные языки для ламеров и идиотов, и что на настоящим программером можно стать только программируя на асме... Теперь позвольте высказать свою точку зрения: все, кто писал подобные фразы настоящими программерами как раз и не являются - ведь чтобы охаивать другой язык, нужно сначала на нем попрограммить месяц-другой, а потом уже высказывать свое мнение. Я так говорю не по тому, что вышел из "рядов" Дельфинистов, а потому что сам программил (учился) на асме, и тоже считал все остальные языки отстоем, но сейчас перешел на СИ (пока без плюсов), и пока очень доволен, правда сии слова относятся только к Win32 приложениям, ибо здесь есть компилятор, который практически не уступает асму по качеству кода (а иногда и превосходит его!) - это "всеми любимый" Visual C++... Неверите? А вы проверьте! Да и плюсы иногда очень удобны.
А теперь вторая проблема - кто-то (не помню кто) писал, что программить на асме нет смысла - тоже не верно, даже если рассматривать только x86 платформу, то и здесь есть еще "зоны", где асм нужен - различные 386 процы, встроенные в какое-либо оборудование, просто старые компьютеры, для которых не нужны Винды, но нужно решать простые для процессора, но сложные для человека и калькулятора задачи...
Ну а мое мнение таково: чтобы быть (считать себя) настоящим программером, асм нужно знать обязательно, но не обязательно на нем программить, программить можно на чем угодно, главное, чтобы программер знал во что может вывернуться его "сочинение" после прохода компилятора. Но считать программером человека, который знает только VisualBasic или только Delphi - не могу, программер ДОЛЖЕН знать НЕСКОЛЬКО языков. И выбирать из них подходящий для своей задачи.
Ответ
Здравствуйте, MemoBreaker!
Ха! Я с тобой полностью согласен по позиции языков
Я сам вроде неплохо знаю асм(для работы хватает), на Паскале пишу как на русском, на С написал пару игрулек простеньких, но его не люблю.
Также в свое время знал Бейсик и Фортран, но благополучно забыл, слава Богу(или как некоторые говорят-Нортону;))
Не знаю как Visual, (я вообще не работал на Делфи, билдере и т.п.-5 уровне), но обычный ВС++ 3.1 или BC++ 5.0 - так разворачивает в АСМ, что прямо за голову хватаешься! правда Паскаль еще хуже делает код:(
Для каждого языка есть своя ниша.
На асме писать надо дрова, но интерфейс легче писать на том же Делфи(Вижуал, Билдер)
Программы без интерфейса (либо с минимальным) писать надо на Паскале(ВС 3.1)
-------
ВСЕ ВЫШЕИЗЛОЖЕННОЕ ЯВЛЯЕТСЯ ТОЛЬКО МОИМ ВИДЕНИЕМ ЖИЗНИ! Я никого не хотел задеть и не говорю, чтобы к этим словам прислушались как к руководству к действию!
Кто хочет обсудить - пишите sensey@ukr.net
Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 216
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1688
Здравствуйте эксперты!
Наверное у меня ошибка в ДНК, а не в программе, но все же посмотрите почему программа не хочет работать. TASM выдает: 'Illegal indexing mode'. Я же даже ".386" в начале программы поставил, чего еще этому компилятору надо?
Пользуюсь TASM 5.0.
Ответ
Здравствуйте, ILYA D.!
А ничего ему не надо! Ну не умеет он через dx косвенную адресацию делать! Косвенная адресация с любым регистром есть в 386 проце, но только для 32-разрядных регистров! Я поставил edx вместо dx - все ок. Но работать, скорее всего, не будет.
А чем, собственно, так dx полюбился? Особенно при таком "активном" использовании РОНов? Поставь di или si - и все будет хорошо.
И еще по оптимизации. Чистить ax не обязательно - все равно потом в него mov'ы делаются.
Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 95
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1689
Привет всем!
Мужики, ответьте, пожалуйста поскорее и с первого раза. Очень уж нужно...
Разбираю програмку, она работает с экраном, все корректно, но внутри после определения типа видеоадаптера иду такие строки:
mov ax,BB02
int 10
cmp ax,1717
jne xxxx ;ну дальше не важно.
Вопрос: что это за функция такая ВВ в int 10?? Не под стандартные не подходит, не под VESOовские (там насколько помню - 4F)... Ответы принимаются любые, вплоть до "не знаю", так как сам я в полном недоумении... Ежели такой функции вообще не бывает, то хотя бы смысл вставки этого кода в программу не поясните?? :(((((
С уважением Вал.Ик.
Ответ
Здравствуйте, Вал.Ик.!
А это случаем не резидент какой-то? Просто данный подход может использоваться для обнаружения предыдущей копии для блокировки повторной загрузки. Очень уж последующее сравнение на это похоже. Часто для определения инсталляции используется вызов неиспользуемой функции какого-либо прерывания DOS или BIOS. Если прога не установлена - значения регистров не изменяются. А если установлена, то она включается в каскад и ловит эту функцию. А потом устанавливает "эхо"-ответ (вот как раз типа ax=1717h).
Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 96
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1688
Здравствуйте эксперты!
Наверное у меня ошибка в ДНК, а не в программе, но все же посмотрите почему программа не хочет работать. TASM выдает: 'Illegal indexing mode'. Я же даже ".386" в начале программы поставил, чего еще этому компилятору надо?
Пользуюсь TASM 5.0.
Ответ
Здравствуйте, ILYA D.!
Мне не понятно зачем тебе использовать dx, если у тебя bx указывает туда же??? пользуйся им.
Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 201
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1689
Привет всем!
Мужики, ответьте, пожалуйста поскорее и с первого раза. Очень уж нужно...
Разбираю програмку, она работает с экраном, все корректно, но внутри после определения типа видеоадаптера иду такие строки:
mov ax,BB02
int 10
cmp ax,1717
jne xxxx ;ну дальше не важно.
Вопрос: что это за функция такая ВВ в int 10?? Не под стандартные не подходит, не под VESOовские (там насколько помню - 4F)... Ответы принимаются любые, вплоть до "не знаю", так как сам я в полном недоумении... Ежели такой функции вообще не бывает, то хотя бы смысл вставки этого кода в программу не поясните?? :(((((
С уважением Вал.Ик.
Ответ
Здравствуйте, Вал.Ик.!
Прога наверное резидентная, и таким образом она проверяет наличие себя в памяти. она наверняка перехватывает int 10h!
Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 202
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1688
Здравствуйте эксперты!
Наверное у меня ошибка в ДНК, а не в программе, но все же посмотрите почему программа не хочет работать. TASM выдает: 'Illegal indexing mode'. Я же даже ".386" в начале программы поставил, чего еще этому компилятору надо?
Пользуюсь TASM 5.0.
Ответ
Здравствуйте, ILYA D.!
DX-ом никогда не индексируют. А мона SI,DI,BX и че то еще не могу припомнить или все.
Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 103
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1686
Сразу оговорюсь - это не вопрос, но надеюсь эксперты _ЭТО_ увидят.
Рассылку читаю ради интереса, иногда что-нить интересное и проскакивает, но редко. И вот недавно тут развернулась Holy-War по поводу Асма и других высокоуровневых языков. Люди часто утверждают, что Асм "рулезней" всех на свете, а все остальные языки для ламеров и идиотов, и что на настоящим программером можно стать только программируя на асме... Теперь позвольте высказать свою точку зрения: все, кто писал подобные фразы настоящими программерами как раз и не являются - ведь чтобы охаивать другой язык, нужно сначала на нем попрограммить месяц-другой, а потом уже высказывать свое мнение. Я так говорю не по тому, что вышел из "рядов" Дельфинистов, а потому что сам программил (учился) на асме, и тоже считал все остальные языки отстоем, но сейчас перешел на СИ (пока без плюсов), и пока очень доволен, правда сии слова относятся только к Win32 приложениям, ибо здесь есть компилятор, который практически не уступает асму по качеству кода (а иногда и превосходит его!) - это "всеми любимый" Visual C++... Неверите? А вы проверьте! Да и плюсы иногда очень удобны.
А теперь вторая проблема - кто-то (не помню кто) писал, что программить на асме нет смысла - тоже не верно, даже если рассматривать только x86 платформу, то и здесь есть еще "зоны", где асм нужен - различные 386 процы, встроенные в какое-либо оборудование, просто старые компьютеры, для которых не нужны Винды, но нужно решать простые для процессора, но сложные для человека и калькулятора задачи...
Ну а мое мнение таково: чтобы быть (считать себя) настоящим программером, асм нужно знать обязательно, но не обязательно на нем программить, программить можно на чем угодно, главное, чтобы программер знал во что может вывернуться его "сочинение" после прохода компилятора. Но считать программером человека, который знает только VisualBasic или только Delphi - не могу, программер ДОЛЖЕН знать НЕСКОЛЬКО языков. И выбирать из них подходящий для своей задачи.
Ответ
Здравствуйте, MemoBreaker!
Visual C++ не язык программирования вообще. Это среда. Я язык С++.
Путать не надо. А асм кое где хорош. Но вообще то на нем пишутся тока критические участки. А С я считаю самым рульным компилятором.
Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 104
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1684
Здравствуйте,
вчера какой-то молодой и горячий (типа вашего визарха) прислал мне бяку в почтовый ящик.
Бяка сляпана кое-как в дельфях и имеет целью допустить этого юного следопыта к управлению
чужим компом. Троян, короче. Вопрос: как отследить этого пачкуна и спалить ему монитор? Ну,
со второй частью я сам как-нибудь справлюсь. Может быть, на первый раз пожалею. А вот
с первой - письмо было отправлено с легального адреса дядечки (будто бы из Аутлука),
который, скорее всего, совершенно ни о чем не подозревает. Можно ли каким-либо образом
через фальшивый заголовок письма (т.е. реальный, но фальшивый) отследить реального
отправителя? Или другим способом? К сожалению, я совершенно не силен в этих шпионских штучках.
Да, к ехешнику был приложен dll, который, на самом деле, никакой не длл, а простой текстовый
файл с перечнем почтовых адресов. Мне кажется, что вирь вычитывает почтовые адреса из html
страниц, а затем пересылает по этим адресам свои клоны. Список адресов (его начало) такой:
ask@subscribe.ru
Assembler@Kalashnikoff.ru
BIG@bruincam.com
fluent_english@tut.by
getahead@degree_prog...
hoornweg@hannover.sgh-net.de
i@cooler.com.ua
ilya.div@nm.ru.
jlpt@narod.ru
и т.д.
Мне кажется, что подобные проблемы возникли не только у меня.
Всех вам благ,
Bubale
Ответ
Здравствуйте, Bubale!
А вдруг это не он. А просто его комп тоже заражен. Сразу такие меры
Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 105
Экспертная группа: Пользовательская работа с Windows
Вопрос №1692
День добрый всем!
Эксперты есть какойнибуть чат где с вами можно так скать "глаз в глаз" пообшаться?
P.S.Sensey по твоей рекомендации купил ВС v3.1 о чем не жалею.
Ответ
Здравствуйте, Alex!
Приходи в аську. 2144510
Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 203
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1689
Привет всем!
Мужики, ответьте, пожалуйста поскорее и с первого раза. Очень уж нужно...
Разбираю програмку, она работает с экраном, все корректно, но внутри после определения типа видеоадаптера иду такие строки:
mov ax,BB02
int 10
cmp ax,1717
jne xxxx ;ну дальше не важно.
Вопрос: что это за функция такая ВВ в int 10?? Не под стандартные не подходит, не под VESOовские (там насколько помню - 4F)... Ответы принимаются любые, вплоть до "не знаю", так как сам я в полном недоумении... Ежели такой функции вообще не бывает, то хотя бы смысл вставки этого кода в программу не поясните?? :(((((
С уважением Вал.Ик.
Ответ
Здравствуйте, Вал.Ик.!
Все, как всегда, очень просто!
INT 10 BB-- - Doorwundocumented function
Category: V - video
Input:
AH = BBh
AL = new redirection mode
00h BIOS (hook and redirect INT 10h,etc.)
01h DIRECT (scan video memory for changes)
Return: ???
SeeAlso: INT 16/AH=67h"Doorway" (см. дальше)
__________________________________________________________________
INT 16 67-- - Doorway v2.x+ - INSTALLATION CHECK / REDIRECTION CONTROLa
Category: - - (none)
Inp.:
AH = 67h
AL = Doorway mode
00h turn off DOS redirection
01h turn on DOS redirection
Return: AH = 80h if Doorway is actively redirecting output
AL = 80h if Doorway was already in requested mode
Program: Doorway is a program by Marshall Dudley which allows most DOS programs
to run as a BBS door without modification
Note: to perform an installation check without changing the redirection
state, if is necessary to restore the original mode if AL was not
80h on return
Copied from Ralf Brown's Interrupt List
Для чего оно нада - хоть убей не пойму! Какой то левый Doorway второй версии примахался ;)
Отправил эксперт: Broken Sword
Эксперт отправил ответов (всего): 227
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1690
Почему на моем компе при получении системного времени с пом. функции дос 21 прер. и при получении этого же времени через
CMOS (для секунд:mov al,0h->OUT 70h,al->jmp $+2->in bx,71h)получаются разные значения (разница в две мин.)?
Как вобще раб-ют RTC?
Ответ
Здравствуйте, oleg! Может они в разных фрматах ? (Извените не помню сейчас точно т.к. отвечаю по памяти (не то что некоторые, обложились книгами, пАнимаешь :)))
Отправил эксперт: Bart Simpson
Эксперт отправил ответов (всего): 22
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1691
Здравствуйте господа эксперты. Не могли бы Вы подробно рассказать ламеру, как установить драйвер принтера под ДОС. И заодно, где этот драйвер найти. Имеется принтер HP DJ610C. Заранее благодарен.
Ответ
Здравствуйте, Slap! Досовские дрова обычно постовляются ввиде .EXE файлов (тогда прописываешь драйвер в autoexec.bat {т.е. добовляешь строку вроде "C:\Drivers\Printer\Hp.Exe"} или в виде .SYS файлов (тогда добовляешь в Config.Sys строку типа "Device=C:\Drivers\Printer\Hp.Sys")
P.S. Для самых самых ламеров: Понятно что путь может быть другим
P.P.S. ...вы вообще, как залезли в инет, если такие вопросы задаете ? :)))
Отправил эксперт: Bart Simpson
Эксперт отправил ответов (всего): 23
Экспертная группа: Пользовательская работа c DOS
Вопрос №1691
Здравствуйте господа эксперты. Не могли бы Вы подробно рассказать ламеру, как установить драйвер принтера под ДОС. И заодно, где этот драйвер найти. Имеется принтер HP DJ610C. Заранее благодарен.
Ответ
Здравствуйте, Slap!
На инст. дискетках есть драйвер! Резедючная програмка, которая поддерживает русский язык в печати из под дос. А вот графику, PV - поддерживает, есть на любом практически сборинике игр где есть BASE.EXE. Грузишь картинку, жмешь "P", и он печатает!
Отправил эксперт: AllAddIn
Эксперт отправил ответов (всего): 9
Экспертная группа: Пользовательская работа c DOS
Вопрос №1385
Hello!
Подскажите, пожалуйста, имя проги, которая позволяла бы записывать свою асм-программу в загрузочную запись (для DOS).
Ответ
Здравствуйте, Victor!
Способ 1: DiskEditor'ом пишите вручную. Там всего-то 512, кажется, байт надо...
Способ 2: В пакете Fformat что-то такое было... У меня его, к сожалению нет, но я там,
вроде, видел!
Способ 3: Недавно видел такую операционку - Petros OS. Сама она только демка, но не в этом дело... Там у нее есть именно такая прога. Только пользоваться ею надо осторожно - сначала сохраните то, что есть! http://www.petros_project.com
А вообще, DiskEditor'ом - лучший, по-моему, способ...
Отправил эксперт: baldr (http://www.dospage.fromru.com - Сайт об ОС DOS. Всем, кто любит эту ОС!)
Эксперт отправил ответов (всего): 9
Экспертная группа: Пользовательская работа c DOS
Вопрос №1378
Добрый день!
эксперты помогите, завтро надо здавать прог., проблема вот какая: я не могу придумать алгоритм (или действие) для того, чтобы если пользовотель вводя некорректные данные в переменную (предположем взаместо цифр вводил буквы)повторял ввод... .Наверное непонятно обьяснил..., короче говоря если юзер ввел не то что надо программа не висла, а выводила сообшение о некорректных данных.
P.S. Желательно если вы покажете на примере языка Си... .
С уважением Александр
Ответ
ВСЕМ: Народ, че вы человека послали? Ну не знает он, где спросить про Си... Это все же
не ботинки с каблуками...(НЕ) см. вопрос N 1324
Мда...
Здравствуйте, Александр!
Сорри, что уже поздно, но вообще...
Вот Вам алгоритм: (применяется везде - это вообще-то стандарт...)
При вводе считываем не цифры, а СИМВОЛЫ! После конца ввода (
всю эту строку на допустимые символы (например, только цифры!) и если хотя бы один символ
не подходит - перевводим... А если подходит - преобразуем во что надо. Например, в число.
Сложно, конечно, но так всегда делается. Программу прилагаю.
Кстати! Всем вопрос не по теме! Кто-нибудь знает такую же рассылку по другим языкам программирования?
Приложение:
Отправил эксперт: baldr (http://www.dospage.fromru.com - Сайт об ОС DOS. Всем, кто любит эту ОС!)
Эксперт отправил ответов (всего): 10
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1695
Здравствуйте, господа эксперты!
Суть проблемы: при попытке открыть exe-программу в отладчике (Turbo Debugger под DOS из TASM 5.0) появляется сообщение об отсутствие символьной таблицы (Program has no symbol table), help - советует перекомпоновать её (результат тотже). Как быть?
Подскажите, плиз!
С уважением, Николай.
Ответ
Здравствуйте, Николай!
Попробуй tlink /v.
Отправил эксперт: Painbringer (http://limanski.narod.ru - нечто наподобие домашней страницы)
Эксперт отправил ответов (всего): 254
Экспертная группа: Работа с MASM/TASM
Вопрос №1692
День добрый всем!
Эксперты есть какойнибуть чат где с вами можно так скать "глаз в глаз" пообшаться?
P.S.Sensey по твоей рекомендации купил ВС v3.1 о чем не жалею.
Ответ
Здравствуйте, Alex!
Привет! Неа, нету. А ты у нас аськи спроси (моя 45249044) :))
И да... люди... слушайте этот критин профессор кислых щей ... гнать этого ублюдка надо из наших рядов я уже не могу смотреть как эта тварь рассылку засоряет. Не может человек, так неуважительно относящийся к людям быть профессором! Это - лживая самовлюбленная сволочь!
Извините, но это просто предел! Видал я людей, считающих себя крутыми, и обзывающих всех ламерами но ТАКОГО отморозка КАК ЭТОТ ПСЕВДОПРОФЕССОР первый раз вижу!
И ВООБЩЕ, КАКОГО ЧЕРТА ЭТОТ НЕДОДЕЛАННЫЙ БИОЛОГ ДЕЛАЕТ В ПРОГРАММЕРСКОЙ РАССЫЛКЕ???!
WizarX пора бы тебе хотя бы публичные извинения принести людям, которых ты тут бессовестно оскорбляешь!!!
Отправил эксперт: Евгений
Эксперт отправил ответов (всего): 27
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1686
Сразу оговорюсь - это не вопрос, но надеюсь эксперты _ЭТО_ увидят.
Рассылку читаю ради интереса, иногда что-нить интересное и проскакивает, но редко. И вот недавно тут развернулась Holy-War по поводу Асма и других высокоуровневых языков. Люди часто утверждают, что Асм "рулезней" всех на свете, а все остальные языки для ламеров и идиотов, и что на настоящим программером можно стать только программируя на асме... Теперь позвольте высказать свою точку зрения: все, кто писал подобные фразы настоящими программерами как раз и не являются - ведь чтобы охаивать другой язык, нужно сначала на нем попрограммить месяц-другой, а потом уже высказывать свое мнение. Я так говорю не по тому, что вышел из "рядов" Дельфинистов, а потому что сам программил (учился) на асме, и тоже считал все остальные языки отстоем, но сейчас перешел на СИ (пока без плюсов), и пока очень доволен, правда сии слова относятся только к Win32 приложениям, ибо здесь есть компилятор, который практически не уступает асму по качеству кода (а иногда и превосходит его!) - это "всеми любимый" Visual C++... Неверите? А вы проверьте! Да и плюсы иногда очень удобны.
А теперь вторая проблема - кто-то (не помню кто) писал, что программить на асме нет смысла - тоже не верно, даже если рассматривать только x86 платформу, то и здесь есть еще "зоны", где асм нужен - различные 386 процы, встроенные в какое-либо оборудование, просто старые компьютеры, для которых не нужны Винды, но нужно решать простые для процессора, но сложные для человека и калькулятора задачи...
Ну а мое мнение таково: чтобы быть (считать себя) настоящим программером, асм нужно знать обязательно, но не обязательно на нем программить, программить можно на чем угодно, главное, чтобы программер знал во что может вывернуться его "сочинение" после прохода компилятора. Но считать программером человека, который знает только VisualBasic или только Delphi - не могу, программер ДОЛЖЕН знать НЕСКОЛЬКО языков. И выбирать из них подходящий для своей задачи.
Ответ
Здравствуйте, MemoBreaker!
Ага, прислушайтесь люди, ибо истину глаголит этот человек:))
Отправил эксперт: Евгений
Эксперт отправил ответов (всего): 28
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1674
Приветики !
Дигиту ;) Линух писали вовсе не для интереса ! То что у всех стоит Винды еще не значет что Unix никому не нужен (как в принцепе повсеместность PC в бывшем СССР не означает что Mac'и-фуфло) И вообще, насчет целесообразности асма, вы размышляете с точки зрения программеров в СНГ, а ведь еще существует и Microsoft и Dell и пр.!!! Ведь не "С" единым живет Windows ;) Ведь еще и дрова надо бы кому-то писать ;)))) Как сказал кое-кто (не последний чел в области програмирования) студенты которые учились писать на Basic'е (я интерполирую это утверждение и на Pascal и C++ (я уж не говорю о Delphi) НИКОГДА не станут програмистами (а станут онанистами :) (это я уж от себя :)))) К тому же как кто-то тут правильно заметил скоро и Dos и Windows издохнут, и кому то прийдеться писать новые ОС ! Лично мне хотелось бы поучаствовать :)))
P.S. Простите за пьяный бред :))))
Ответ
Здравствуйте, Барт Симпсон!
Да не умрет Windows! Она даже не болеет!!
Отправил эксперт: Евгений
Эксперт отправил ответов (всего): 29
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1696
Здравствуйте!
Что такое хаб и для чего он нужен?
Ответ
Здравствуйте, Алексей!
Хаб - это центральное устройство локальной сети, построенной по схеме "звезда" на витой паре. Может иметь 5, 8, 16 и т.д. портов для подключения сетевых компьютеров (к каждому порту по одному PC). Существуют модели хабов, которые помимо разъемов UTP (витая пара), имеют один разъм BNC для подключения сегмента на коаксиальном кабеле. Функция хаба заключается в том, что приняв ситнал от одного порта, он передает его на все остальные порты. Более совершенный вид хабов - свитч (switch) в состоянии запомнить адреса подключенных к его портам компьютеров, и приходящий на него сигнал он выставляет не на все порты, а только на тот, к которому подключен адресат.
Отправил эксперт: ESE
Эксперт отправил ответов (всего): 6
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №1696
Здравствуйте!
Что такое хаб и для чего он нужен?
Ответ
Здравствуйте, Алексей!
Хаб(концентратор) - это устройство для усиления и разделения сигналов. Применяется в компьютерных сетях (разделение IP-трафика, увеличение числа пользователей), в некоторых "переферийных" интерфейсах, например USB-хаб (увеличение числа подключенных устройств). Наконец в наиболее миниатюрном варинте хаб существует на материнских платах (северный и южный мосты тоже своеобразные коцентраторы)
Отправил эксперт: DivX
Эксперт отправил ответов (всего): 60
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №1696
Здравствуйте!
Что такое хаб и для чего он нужен?
Ответ
Здравствуйте, Алексей!
Хаб(концентратор) используется для создания компьютерной сети на основе витой пары(UPT - Unshielded Twisted Pair,неэкранированная витая пара) - кабеля на основе скрученных пар тонких проводников,помещенных в общую оболочку.Каждый компьютер отдельным кабелем подключается к хабу,образуя конфигурацию похожую на звезду.
Два компьютера можно соединить непосредственно одним кабелем без использования хаба.
Очевидное достоинство сети на витой паре - ее работоспособность при нарушении любого из звеньев,недодостатками же можно считать необходимость в концентраторе и сложности при разводке кабелей.
Отправил эксперт: Konstantin
Эксперт отправил ответов (всего): 1
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №1700
Здравствуйте эксперты!
Я вот тут собрался написать прогу, которая бы заражала нужный *.ехе файл другим файлом.
Как заражать *.сом программы я понял. И чтоб узнать как это нужно делать с *.ехе программами
я нашел доку в которой был пример вируса, который заражает *.ехе файлы. Но он что-то ничего у меня не заражает.
Кидаю исходник. Посмотрите, кому не лень че за фигня(почемуне заражает).
И еще вопрос: где можно еще доку (по заражению *.ехе файлов) взять?
Ответ
Здравствуйте, Aeron!
Эксперты я думаю никто не будет отвечать на этот вопрос. Замотали уже эти вирусописатели. Это ж рассылка по асму, а не по вирям. А пусть лучше доходят сами. Или читают что нить вроде xakep.ru :)). Может чему и научатся.
Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 106
Экспертная группа: Оптимизация программ
Форма подачи вопроса
ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!Нажимайте кнопку "Отправить" только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!
Регистрация в качестве эксперта
Архив выпусков
Управляющий рассылкой,
Калашников Олег:
Assembler@Kalashnikoff.ru
ICQ No.: 68951340
URL сайта подписчиков:
http://www.Kalashnikoff.ru
(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав. |
Реклама на сайте Kalashnikoff.ru
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||