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

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.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
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)

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




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

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


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

В избранное