Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 333
от 03.08.2002, 02:20
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 888 Отправлено ответов: 2588 Активность: 291.4 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
LIFO Статус: Доверительный Общий рейтинг: 129.68 [Подробней >>] |
baldr Статус: Профессиональный Общий рейтинг: 117.56 URL: Сайт об ОС DOS. Всем, кто любит эту ОС! [Подробней >>] |
Portnov Статус: Опытный Общий рейтинг: 121.71 [Подробней >>] |
Dark_Lord Статус: Начальный Общий рейтинг: 123.63 [Подробней >>] |
ASMодей Статус: Доверительный Общий рейтинг: 126.4 [Подробней >>] |
Pablo Статус: Опытный Общий рейтинг: 126.58 URL: Моя страничка [Подробней >>] |
Топор Статус: Профессиональный Общий рейтинг: 118.17 URL: Хорошая Русская Металлическая команда Телефон: (8462)500298 [Подробней >>] |
Александр Статус: Профессиональный Общий рейтинг: 118.76 [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 159.66 [Подробней >>] |
Dron Статус: Профессиональный Общий рейтинг: 126.24 URL: Операционная система с нуля! [Подробней >>] |
Gibbel Статус: Опытный Общий рейтинг: 109.51 URL: Страничка обо мне и моих друзьях [Подробней >>] |
Артём Шегеда Статус: Профессиональный Общий рейтинг: 121.08 URL: Пристанище неодинокого программиста [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 851. Здравствуйте,уважаемые эксперты! Подскажите пожалуйста, где можно найти в сети справочную информацию... (ответов: 3)
Вопрос № 852. Трям, уважаемые эксперты! Функция int 10h, AX=4F05. Если BH=0, я разобрался, все работает, как я хоч... (ответов: 3)
Вопрос № 853. Трям, уважаемые эксперты! В функции int 10h, у меня проблемы с компьютером. Посмотрите код (приложен... (ответов: 5)
Вопрос № 854. Здравствуйте, подскажите пожалуйста алгоритм огня, т.е. как написать прогу огня?... (ответов: 6)
Вопрос № 855. Здравствуйте, эксперты! У меня такая вот проблема: Во время установки SoftIce требуется выбрать Dis... (ответов: 2)
Вопрос № 856. Hi All! Есть небольшое предложение. Сделать свой дистрибутив Linux'a. В первую очередь это предложен... (ответов: 3)
Вопрос № 858. Подскажите пожалуйста, как (с помощью какой функции вместе с параметрами) на ассемблере в Win32 орга... (ответов: 5)
Вопросов: 7, ответов: 27
Вопрос № 851 |
Здравствуйте,уважаемые эксперты!
Подскажите пожалуйста, где можно найти в сети справочную информацию по работе MASM и TASM, желательно на русском языке. Если у ког есть ссылки, поделитесь пожалуйста. И еще. Кто может поделиться информацией по поводу ограничений, накладываемых в WinXP на работу консольных приложений, по примеру запрета прямой записи в видеобуфер в нулевую страницу. Не претендую на исчерпывающие объяснения, но буду рад и благодарен любой помощи. Заранее всем спасибо!
Вопрос отправлен: 29.07.2002, 08:24
Отправитель: Ярослав
[Следующий вопрос >>] [Список вопросов]
Отвечает LIFO
Добрый день, Ярослав!
Добрый день, Ярослав!
У меня есть куча инфы и по масму , и по тасму. Если тебе срочно надо, то напиши мне - вышлю.
часть моих книг ( напр. Tasm 2.0, Tasm 3.0, Система программирования макроассемблера и т.д.)
Ответ отправлен: 29.07.2002, 12:30
Отправитель: LIFO
Отвечает baldr
Добрый день, Ярослав!
Про XP: Скорее всего, нулевая страница в XP размещается по другому адресу, нежели в DOS,
поэтому винда не дает тебе доступа к чужой памяти. А возможно, ты что-то напутал и просто
это глюк? ;) А вообще, насколько я понимаю психологию программистов Мелкософта, они хотят
полностью запретить ввод/вывод в любую память и организовать все через сервисы. Что-то в этом
есть, но так серьезно, наверное, не стоит делать.
Ответ отправлен: 30.07.2002, 00:55
Отправитель: baldr
Отвечает Portnov
Здравствуйте, Ярослав!
В смысле??? Вам описать, как работает ассемблер? А исходники Borland C++ Optimizer Compiler 3.0 вам случаем не нужны??? Но в общих чертах идея предельно проста. См. след. инструкцию - скажем, mov. К ней (см. в заранее заложеной таблице) должно быть два операнда. Если нет, выдать ошибку. Если есть, проанализировать их на тип (imm? reg? mem? 8-16-32?). Если такая комбинация допустима, сформировать соотв. код... Ну и так далее. Это, конечно, предельно упрощенно.
Про ограничения - насколько я знаю, все NT-шки запрещают 16-битным приложениям прямой доступ к большинству портов и к чужой памяти.
С уважением, Portnov.
Ответ отправлен: 30.07.2002, 11:02
Отправитель: Portnov
Вопрос № 852 |
Трям, уважаемые эксперты!
Функция int 10h, AX=4F05. Если BH=0, я разобрался, все работает, как я хочу. Если BH=1, в книжке написано, что это считать окно. Честно говоря, не совсем понимаю, что это значит, и как это механизм работает. Пожалуйста, объясните мне, как для тупого, еще лучше дайте какой-нибудь простой пример работы этой функции, когда BH=0 и 1.
С уважением Alex.
Вопрос отправлен: 29.07.2002, 11:07
Отправитель: Alex (alexneta@aport2000.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Dark_Lord
Приветствую Вас, Alex!
Это функция при BH=00h задаёт номер видеостраницы в памяти, а BH=01h говорит, какая страница активна. Это полезно если, например, была выведена точка в окно номер 2 и следующая идёт туда-же, то можно проверить нужно ли изменять номер окна на второй или оно уже там! Хотя гораздо менее проблематично просто переключить на 2 окно!
Ответ отправлен: 29.07.2002, 21:21
Отправитель: Dark_Lord
Отвечает ASMодей
Добрый день, Alex!
При BH=1 эта функция работает также, как и при BH=0,
только наоборот ;)
Если при BH=0 ты устанавливал адрес окна, то при BH=1
ты можешь посмотреть, какой же адрес ты установил.
Ответ отправлен: 29.07.2002, 19:56
Отправитель: ASMодей
Отвечает Pablo
Добрый день, Alex!
Вообше насколько я понял при bh=1 прерывание возвращает адрес окна видеопамяти в единицах дробности, но может быть я и ошибаюся!
Ответ отправлен: 29.07.2002, 20:26
Отправитель: Pablo
Вопрос № 853 |
Трям, уважаемые эксперты!
В функции int 10h, у меня проблемы с компьютером. Посмотрите код (приложение), при компиляции все проходит нормально, то есть режим, который я хочу, устанавливается, все рисуется, что я хочу, в частности AH=0. Но если я хочу воспользоваться Debugером, то после прерывания int 10h, AH=3, и как следствие компьютер может или перегрузится, или Windows выкидывает меня из моей программы. Я использую Windows 98, TASM.
Что можете посоветовать, что бы в режиме Debug можно было, устанавливался графический режим, который я хочу?
С уважением Alex.
Приложение:
Вопрос отправлен: 29.07.2002, 11:09
Отправитель: Alex (alexneta@aport2000.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает baldr
Добрый день, Alex!
Самое простое: найди другой дебаггер. И лучше бы ты написал каким пользуешься.
Я сам SoftIce ни разу не видел, каюсь, но думаю, что он эту проблему обходит.
Ответ отправлен: 30.07.2002, 00:56
Отправитель: baldr
Отвечает Топор
Здравствуйте, Alex!
А винда вообще неравнодушна к TD для DOS - она и без загруженной проги его частенько выкидывает. У TD ведь один только исполняемый файл больше 700 Кб, поэтому он вынужден прогу грузить в расширенную память, доступ к которой обеспечивается DOS-расширителем RTM.EXE. А мастдай таких приколов не понимает. Так что придётся тебе, наверное, перезагружаться в DOS, чтобы хоть что-то посмотреть в отладчике.
Ответ отправлен: 30.07.2002, 09:50
Отправитель: Топор
Отвечает Dark_Lord
Доброе время суток, Alex!
800х600 при 64К цветов!? На сколько я знаю, большинство дебугеров не поддерживают переключения видеорежимов кроме текстового и VGA(а не SVGA(VBE 1.2))как показано в приложении!
Ответ отправлен: 29.07.2002, 21:25
Отправитель: Dark_Lord
Отвечает Pablo
Добрый день, Alex!
Если честно, то думаю что тебе олучге полностью выгружаться в ДОС и не запускать отладчик из под окна эмуляции ДОС в Виндах!
Так попробуй, насколько я помню, когда я отлаживал приложения под ДОС, то я не пользовался виндами!))))
Ответ отправлен: 29.07.2002, 20:26
Отправитель: Pablo
Отвечает Александр
Приветствую Вас, Alex!
Ничего не знаю. Перезагружайся в режиме эмуляции ДОС. У меня ни одна программа вызывающая int 10h не виснет при отладке. Если ты конечно имеешь в виду TD.
Ответ отправлен: 29.07.2002, 14:42
Отправитель: Александр
Вопрос № 854 |
Здравствуйте,
подскажите пожалуйста алгоритм огня, т.е.
как написать прогу огня?
Вопрос отправлен: 29.07.2002, 11:18
Отправитель: J
[Следующий вопрос >>] [Список вопросов]
Отвечает baldr
Доброе время суток, J!
Пиши на baldr@pisem.net - вышлю исходник. Он не мой, и там почти нет комментариев, но он
не такой уж и большой.
Ответ отправлен: 30.07.2002, 00:56
Отправитель: baldr
Отвечает LIFO
Доброе время суток, J!
Смотри приложение.
Приложение:
Ответ отправлен: 29.07.2002, 12:30
Отправитель: LIFO
Отвечает ASMодей
Добрый день, J!
На сайте www.enlight.ru есть несколько алгоритмов.
Ответ отправлен: 29.07.2002, 19:57
Отправитель: ASMодей
Отвечает Pablo
Доброе время суток, J!
Смотри по ссылке ниже, может что подойдет:
http://wasm.ru/srclist.php?list=3
Ответ отправлен: 29.07.2002, 20:26
Отправитель: Pablo
Отвечает Portnov
Добрый день, J!
Объяснил! А Гуаньдунь - это такой район в провинции Шаньдунь.
Ответ отправлен: 30.07.2002, 11:03
Отправитель: Portnov
Отвечает Александр
Здравствуйте, J!
Представляешь, за 2 часа до прочтения этого вопроса я решил пошерстить news-конференции на предмет Ассемблера. Скачал себе для чтения на досуге fido7.ru.asm.chainik и увидел там код, приведённый в приложении. Там кое-где комменты глючно залезли на следующие строчки и желательно добавить что-то вроде
.model tiny
.code
org 100h
start:
Приложение:
Ответ отправлен: 31.07.2002, 21:54
Отправитель: Александр
Вопрос № 855 |
Здравствуйте, эксперты!
У меня такая вот проблема:
Во время установки SoftIce требуется выбрать Display Adapter. У меня видеокарта Nvidia GeForce 2 MX 400, а там фирмы Nvidia только RivaTNT 2 . Какой адаптер мне выбрать?
P.S. При выборе Standart VGA (Universal Video Driver ) не могу работать, т.к. курсор лихорадочно скачет по экрану, а Ctrl+M (как написано в руководстве) не помогает.
Заранее благодарен.
Вопрос отправлен: 29.07.2002, 11:44
Отправитель: LIFO (eugene_p@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Dark_Lord
Приветствую Вас, LIFO!
Там всегда такой курсор, если не из ДОС
Ответ отправлен: 29.07.2002, 21:27
Отправитель: Dark_Lord
Отвечает masquer
Добрый день, LIFO!
Если ты выберешь что0то отличное от Universal Video Driver, то у тебя просто черный экран будет. Протестируй и выбери оконный режим. Насчет курсора - либо отключи его вообще, неудобно конечно, но не смертельно, либо установи/вними галку на Intellimouse.
Ответ отправлен: 29.07.2002, 11:57
Отправитель: masquer
Вопрос № 856 |
Hi All!
Есть небольшое предложение. Сделать свой дистрибутив Linux'a. В первую очередь это предложение конечно же относится к Dron'у. Пишите мылом.
Вопрос отправлен: 29.07.2002, 14:51
Отправитель: Александр (kptz@newmail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает ASMодей
Доброе время суток, Александр!
Зачем изобретать велосипед, неужели мало существующих
дистрибутивов Linux? Лучше написать новую ОС, как это
делают все вокруг ;)
Ответ отправлен: 29.07.2002, 19:59
Отправитель: ASMодей
Отвечает Pablo
Добрый день, Александр!
Да это хорошая идея!))) Только как обудить что туда должно войти?!
Ответ отправлен: 29.07.2002, 20:26
Отправитель: Pablo
Отвечает Dron
Доброе время суток, Александр!
Странное предложение. :)
У меня честно говоря нет желания этим заниматься...
да и времени по большому счету нет. :)
Могу только советами помочь. :)
Ответ отправлен: 29.07.2002, 15:22
Отправитель: Dron
Вопрос № 858 |
Подскажите пожалуйста, как (с помощью какой функции вместе с параметрами) на ассемблере в Win32 организовать задержку на ожидание
нажатия клавиши, аналогично int 16h на низком уровне.
Вопрос отправлен: 30.07.2002, 02:19
Отправитель: Speedy Gonsalez
[Следующий вопрос >>] [Список вопросов]
Отвечает Pablo
Добрый день, Speedy Gonsalez!
Вообще в виндовой программе не желательно организовывать задержку, так как по сути задержка уже реализована циклом ожидания входящих сообщений. Тебе просто нада обрабатывать сообщения, которые приходят в окно вследствие нажатия клавишь.
Это такое сообщения: WM_KEYDOWN, WM_KEYUP, WM_KEYPRESS.
Подробней читай в МСДНе.
Ответ отправлен: 30.07.2002, 17:54
Отправитель: Pablo
Отвечает LIFO
Добрый день, Speedy Gonsalez!
Смотри приложение ( просто нет времени искать - така что поищи сам)
А лучше посмотри в Interrupt List про порты клавы.
Приложение:
Ответ отправлен: 30.07.2002, 18:29
Отправитель: LIFO
Отвечает Gibbel
Доброе время суток, Speedy Gonsalez!
Если у тебя есть окно, то можешь ждать WM_KEYDOWN и WM_SYSKEYDOWN. Если окна нет, то ставишь HOOK на клаву...
Ответ отправлен: 30.07.2002, 10:33
Отправитель: Gibbel
Отвечает Артём Шегеда
Здравствуйте, Speedy Gonsalez!
Вы не поверите, но нормальная программа под Win32 всегда находится в режиме ожидания!
Просто создаётся окно, а цикл чтения сообщений отлавливает все сообщения, предназначенные этому окну. В числе этих сообщений и нажатие клавиши.
Другой вариант - когда окна нет в помине (зачем же тогда ожидание нажатия клавиши? - но это не важно). В этом случае создаётся хук, перехватывающий сообщения клавиатуры (аналог перехвата int 9 под DOS). Хуки замедляют работу системы, но позволяют гораздо больше, чем оконные функции.
Хороший пример в MSDN в разделе "Monitoring System Events". Надеюсь, Си для Вас - не проблема
Ответ отправлен: 30.07.2002, 10:38
Отправитель: Артём Шегеда
Отвечает masquer
Доброе время суток, Speedy Gonsalez!
Пиши подробнее - для чего это нужно. Насколько я знаю, такой функции нет.
Ответ отправлен: 30.07.2002, 08:30
Отправитель: masquer
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (44) C / C++ (30) Perl (10) Delphi (16) Pascal (32) Basic / VBA (10) Java / JavaScript (11) PHP (8) MySQL / MSSQL (10) |
Пользователю Windows 95/98/Me (44) Windows NT/2000/XP (30) "Железо" (36) Поиск информации (18) |
Администратору Windows NT/2000/XP (15) Linux / Unix (12) |
Юристу Гражданское право (5) Семейное право (3) Трудовое право (4) КоАП (2) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||