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

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


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

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

Выпуск № 426
от 25.11.2002, 21:40

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


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

keleb-glin
Статус: Доверительный
Общий рейтинг: 113.53
[Подробней >>]
DiGiT[old]
Статус: Опытный
Общий рейтинг: 107.14
[Подробней >>]
Maverick
Статус: Профессиональный
Общий рейтинг: 138.28
URL: Задачи по ассемблеру
Телефон: 89039415024 (BiLine GSM)
[Подробней >>]
 
St
Статус: Опытный
Общий рейтинг: 116.37
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 155.16
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.59
URL: Страничка обо мне и моих друзьях
[Подробней >>]
 
Broken Sword
Статус: Профессиональный
Общий рейтинг: 129.63
URL: моя рассылка по Protected Mode
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 151.69
[Подробней >>]
Beeblebrox
Статус: Профессиональный
Общий рейтинг: 112.19
URL: Beeblebrox / TMA HomePage
[Подробней >>]
 
Sensey
Статус: Профессиональный
Общий рейтинг: 122.81
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
Andrew Vext
Статус: Доверительный
Общий рейтинг: 107.33
[Подробней >>]
Dark_Lord
Статус: Профессиональный
Общий рейтинг: 125.03
[Подробней >>]
 
Painbringer
Статус: Профессиональный
Общий рейтинг: 125.77
URL: Музычка, стишки и прочая дрянь
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 114.34
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]


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

Вопрос № 1883. Здравствуйте Эксперты ! Подскажите пожалуйста, откуда можно скачать самую ПОСЛЕДНЮЮ версию ассемблер... (ответов: 3)
Вопрос № 1884. Хелло эксперты! Вопрос: что делает (не в общих чертах, а конкретно) функция SaveDC. В msdn содержитс... (ответов: 3)
Вопрос № 1885. Привет всем! Часто задают вопросы на одну и ту же тему например перевод числа в строку и т.д. Пред... (ответов: 2)
Вопрос № 1886. Здравствуйте, Уважаемые ЭКСПЕРТЫ !!! Меня зовут Никита. Я вот не могу загрузить в SOFTICE для WIN95 ... (ответов: 2)
Вопрос № 1887. А что тако DDK? Driver Development Kit. где его качнуть? я ьбыл в мсдене и там на стираницах DDK. А... (ответов: 1)
Вопрос № 1888. Благодарю всех кто откликнулся на мою проблему(про таблицу разделов). Спасибо вам! Диск всё-таки я... (ответов: 1)
Вопрос № 1889. В довесок к вопросу о SaveDC хочется спросить о том как расширить область DC? Т.е. что я имею ввиду:... (ответов: 2)
Вопрос № 1892. Здраствуйте, уважаемые эксперты. 1.Насчет ответа на вопрос про то, почему ascii строки описываются с... (ответов: 10)
Вопрос № 1893. Здравствуйте, уважаемые господа Эксперты!!! Опять вся надежда только на Вас. Не смотря на то, что на... (ответов: 1)

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


 Вопрос № 1883

Здравствуйте Эксперты !
Подскажите пожалуйста, откуда можно скачать самую ПОСЛЕДНЮЮ версию ассемблера под DOS?
Заранее благодарен.



Вопрос отправлен: 21.11.2002, 09:10
Отправитель: Jack

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

Отвечает keleb-glin

Добрый день, Jack!
Всё, что связано с ассемблером можно добыть на www.kalashnikoff.ru. Также загляни на майкрософт.ком, насколько я знаю, они ещё поддерживают свои старые разработки под ДОС.


Ответ отправлен: 22.11.2002, 21:06
Отправитель: keleb-glin


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

Приветствую Вас, Jack!
наверное надо купить P4 и у тя будет самая последняя версия ассемблера под real mode. Ассемблер не должен быть под конкретную ОС он под ЖЕЛЕЗО

Ответ отправлен: 21.11.2002, 10:09
Отправитель: DiGiT[old]


Отвечает Maverick

Здравствуйте, Jack!
Для дос тебе лучше Tasm.
Зайди на www.filesearch.ru
Там набери Tasm 5.0
Или погляди в любом поисковике.


Ответ отправлен: 21.11.2002, 11:01
Отправитель: Maverick


 Вопрос № 1884

Хелло эксперты!
Вопрос: что делает (не в общих чертах, а конкретно) функция SaveDC. В msdn содержится скупая информация типа, что она сохраняет кистья и прочее в контекстном стеке. А вот понять для чего ф-ия нужна и где её неплохо было бы применить - толком не понятно.



Вопрос отправлен: 21.11.2002, 10:26
Отправитель: Priest

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

Отвечает St

Привет, Priest!
Я сам никогда не использовал эту функцию, но видимо если часто менять bitmap, brush, palette, font, pen, region, drawing mode, and mapping mode, то проще один раз сохранить DC содержащий настроенные "(см выше)" чем каждый раз их снова настраивать. Наверное это полезно в редакторе типа MS Word или Corel Draw.
St

Ответ отправлен: 21.11.2002, 18:35
Отправитель: St


Отвечает Bob Johnson

Хэлло, Priest!
Вот именно это она и делает - сохраняет текущее состояние DC в контекстном стеке. Зачем она нужна - очень просто. Вот есть у тебя в проге функция рисования чего-либо в указанный DC. Причем для этого тебе нужно использовать какие-то определенные кисти, карандаши и т.д. Но ты не знаешь, что до тебя было выбрано в этот контекст, а ты не хотел бы его портить, т.е. чтобы по возвращению из твоей функции вызывающая программа могла спокойно продолжить рисовать дальше. Вот тогда и можно использовать вначале этой функции SaveDC, в конце - RestoreDC.


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


Отвечает Gibbel

Здравствуйте, Priest!
Функция SaveDC() сохраняет текущее состояние указанного контекста устройства , копируя данные, описывающие выбранные объекты и графические режимы (такие как точечный рисунок, кисть, палитра, шрифт, перо, регион, режим вывода и режим отображения) в контекстный стек. Восстановить состояние можно с помощью RestoreDC().
Ну а насчет практического применения... Предположим, что ты выводишь данные на экран. В процессе вывода выполнение твоей программы прерывается таймером, при этом, процедура обработки таймера также выводит данные в тот же контекст. В этой ситуации ты в процедуре обработки таймера просто сначала сохраняешь контекст, далее выводишь на экран, далее восстанавливаешь контекст и продалжаешь работу. Этим ты избавишься от всевозможных глюков...

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


 Вопрос № 1885

Привет всем!
Часто задают вопросы на одну и ту же тему например перевод числа в строку и т.д. Предложение выложить их на русфаке большими буквами ПРОГИ... нет желания на них отвечать.
А теперь вопрос, кто- нить тестил памать на одном процессоре, которой больше 4гб. В принципе считается, что физическое пространство 4гб, но представьте, а настраиваю дескрптор в ГДТ на начало по адресу 0xffffffff его лимит 0xffffffff, то есть получается 4гб + 4 гб, теоретически, но проблема может заключаться в северном мосту. Интерсно узнать



Вопрос отправлен: 21.11.2002, 10:42
Отправитель: Вопрос

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

Отвечает Maverick

Добрый день, Вопрос!
Да уже много предложений было на эту тему.
Только все дело в Олеге.


Ответ отправлен: 21.11.2002, 11:01
Отправитель: Maverick


Отвечает Broken Sword

Здравствуйте, Вопрос!
не, незя... при загрузке селектора проц СКЛАДЫВАЕТ базу с лимитом и если это значение больше 4 Гб - то #GP.(GoPa :). Да, и запомни, что у IA32 процев адресная шина - 32-х разрядная, поэтому даже если ты "обманешь" каким то образом проц (что невозможно), то произойдет простое "обрезание" и проц выставит младшие 32 бита. Я еще раз оговорюсь, что проц все это пресечет на корню (после сложения базы с лимитом), но теоретически произойдет именно так - выставятся младшие 32 бита. Другое дело, когда по выставленному на шину физическому адресу нет ячейки оперативной памяти (например, выставляется 256Мб, а у тебя на компе 128) - то уже другой разговор. Здесь уже чипсет пошлет процу RESET либо фиктивные данные

Ответ отправлен: 21.11.2002, 14:52
Отправитель: Broken Sword


 Вопрос № 1886

Здравствуйте, Уважаемые ЭКСПЕРТЫ !!!
Меня зовут Никита. Я вот не могу загрузить в SOFTICE для
WIN95 обычный досовский com-файл. Тут все говорят про папку
UTIL16 и DLDR.exe. Но я не знаю как его использовать...
Подскажите, пожалуйста ...
P.S.
И ещё. Где мне можно скачать SoftIce 2.80 (для ДОС).
киньте ссылочку, пожалуйста, если не трудно :)
Я все.



Вопрос отправлен: 21.11.2002, 11:54
Отправитель: Nikita (gan@pokrovsk.sakha.ru)

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

Отвечает Maverick

Добрый день, Nikita!
В папке util16 есть программа dldr.
Напиши dldr имя файла.com
Сайс загрузится.
Посмотри на www.filesearch.ru


Ответ отправлен: 21.11.2002, 12:17
Отправитель: Maverick


Отвечает masquer

Добрый день, Nikita!
Как использовать? Заходишь в папку UTIL16 и запускаешь DLDR.exe c00l.com. До этого айс, естественно, должен быть загружен.

Ответ отправлен: 21.11.2002, 12:17
Отправитель: masquer


 Вопрос № 1887

А что тако DDK? Driver Development Kit.
где его качнуть? я ьбыл в мсдене и там на стираницах DDK. А как скачать бесплатно? И что аткое Driver Studio?
Вообще есть ли среды для разработки драйверов под XP?Чтобы что-то типа шаблона было- чтоб тока исполняемые процедуры надо было написать на асеме а оно потом само в dll скомпилеллось и ещё хорошо бы инсталлер сделало и при запуске инсталлера само себя прописало где надо и чтоб можно было потом вызывать эти функции на VB как функции библиотеке.
Вобщем мне бы шаблоньчик такой. я бы его взял, там бы написал out комманды для моего принтера. и потом бы использовал эти функции из VB. Готовый драйвер у меня есть и работает но я сам хочу научится. Я тут качал книжки по разработке драйверов, но там блин... а в мсдн ваще... слишком много... Вобщем помогите чем можете лам0 ленивому.



Вопрос отправлен: 21.11.2002, 12:25
Отправитель: Эдвард Самохвалов (zeleniy_kot@yahoo.com)

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

Отвечает masquer

Здравствуйте, Эдвард Самохвалов!
Для XP это изначально платное все было, для 2k я в свое время спокойно скачал (около 60 Мб), но сейчас вроде и это прикрыли. По ихнему фтп, наверное, лазить надо.
DriverStudio пакет от Compuware, включающий мощнейший (и, наверное, единственный приемлемый для драйверов) отладчик и кучу других тулзов + примеры.
В качестве среды и языка лучше использовать VisualStudio. Можно и на ассемблере, но не очень удобная поддержка уникода (фактически - ее нет) и еще пара раздражающих вещей, хотя терпимо. Да, и знания архитектуры НТ нужны крепкие для всего этого...

Ответ отправлен: 21.11.2002, 12:51
Отправитель: masquer


 Вопрос № 1888

Благодарю всех кто откликнулся на мою проблему(про таблицу разделов). Спасибо вам! Диск всё-таки я сам восстановил в полном объёме. Копии ФАТ были на месте, я только создал корректно MBR и таблицу разделов. Теперь я знаю как это делается.
Большой FUCK всем производителям софтины для восстановления хардов! В таком элементарном случае все проги просто отказывались работать!
Огромную благодарность выношу ООО "Физтех-софт", которая выпустила замечательный редактор дисков PTS DiskEditor. Imho, единственная прога, в корой действительно можно что-то сделать.
Кста, хочу спросить: месяц назад договаривались о встрече читателей рассыки и экспертов. Как оно прошло всё? Мы то в Новосибе (вместе с Искитимом) встречаемся уже не в первый раз, поэтому тоже интересно.



Вопрос отправлен: 21.11.2002, 13:20
Отправитель: BlastOff (blastoff@rambler.ru)

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

Отвечает Beeblebrox

Здравствуйте, BlastOff!
fdisk /mbr спасает в 99 процентах случаев :)

Ответ отправлен: 21.11.2002, 14:33
Отправитель: Beeblebrox


 Вопрос № 1889

В довесок к вопросу о SaveDC хочется спросить о том как расширить область DC? Т.е. что я имею ввиду: мне требуется написать свою процедуру предпечатного просмотра страниц. И если я нарисую образ страницы в DC и он будет больше видимой (или отведённой) области. То как сделать DC больше чтобы влезла страница(или страницы)? Или этого делать не требуется из-за того что лишнее просто не прорисуется? Вобщем есть задача создания предпечатного просмотра и возникает вопрос о прорисовке большого количества страниц. Как реализовать? Вопрос о том как прорисовывать в сами страницы не стоит.



Вопрос отправлен: 21.11.2002, 15:21
Отправитель: Priest

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

Отвечает St

Привет, Priest!
Я что-то вроде этого недавно пытался сделать.
Я выводил текст в битмап созданный в памяти с помощью CreateCompatibleBitmap в CompatibleDC и потом копировал то что получалось с помощью BitBlt в экранный DC. Выяснилось что если Bitmap в CompatibleDC больше чем 4-8 чем экранный DC то на Win2k 333 МГц выводилось очень медленно. Впервые некоторое замедление стало чувствоваться при превышении на ~25%. Если же выводить прямо в экранный DC то конечно нарисуется только то что влезет в окно.
St

Ответ отправлен: 21.11.2002, 19:01
Отправитель: St


Отвечает Gibbel

Здравствуйте, Priest!
1. То, что выходит за пределы контекста просто обрезается.
2. При выводе в DC ты фактически рисуешь в Bitmap, ассоциированный с данным контекстом. Соответственно, чтоб увеличить размеры вмещаемого изображения, увеличь размеры этого Bitmap. (создаешь новый Bitmap, копируешь в него существующий, заменяешь существующий новым).

Ответ отправлен: 22.11.2002, 10:29
Отправитель: Gibbel


 Вопрос № 1892

Здраствуйте, уважаемые эксперты.
1.Насчет ответа на вопрос про то, почему ascii строки описываются с помощью db: кто-то сказал что это из-за того что описывается не строка, а только ее начало - где тогда конец?
2.Когда я читаю faq Оперой все вроде ок, но когда я открываю сохраненный файл начинается кулебяка вроде еНПВР рГНШ и т.д.
Что же делать?



Вопрос отправлен: 21.11.2002, 17:51
Отправитель: DyC

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

Отвечает St

Привет, DyC!
1) В Досе (по-моему что-то вроде String в Паскаль и Си) обычно число символов (до 256) пишется в байте в начале строки. В Windows принят формат ASCIIZ - строка (любой длины) заканчивается байтом со значением ноль.
2) Не та кодировка, новые Оперы вроде знают русские кодировки.
St

Ответ отправлен: 21.11.2002, 19:07
Отправитель: St


Отвечает Sensey

Приветствую Вас, DyC!
Конец - от используемых ф-ций.
ДОС конец строки видит по $ С - по завершающему 0, в Паскале нулевой байт длинастроки, в Делфи вообще по заумному...
Кодировку смени,а?


Ответ отправлен: 21.11.2002, 18:04
Отправитель: Sensey


Отвечает Andrew Vext

Доброе время суток, DyC!
1. ASCII строки представляют собой последовательность байтов (одна буква - один байт), поэтому и db. Вот если бы была строка UNICODE, db не подошло бы.
2. Вы сохраняете файл не в той кодировке. Откройте его редактором с переключаемой кодировкой (например Aditor).

Ответ отправлен: 21.11.2002, 18:05
Отправитель: Andrew Vext


Отвечает keleb-glin

Доброе время суток, DyC!
Дело в том, что db не описывает строку, а резервирует в памяти определённое количество байт и присваивает им значения. При этом на саму строку ничего не указывает, для обращения к её символам ( байтам ) нужно знать адрес каждого из них, т.е. адрес начала строки и номер символа в строке. Номер ты и сам посчитаешь, а на начало строки у тебя указывает соответствующая метка, имя которой при компиляции заменяется на конкретный адрес.
Насчёт Оперы - попробуй поиграть с кодировками, но вообще посоветую в оффлайне открывать страницы IE, имхо он для этого удобнее.


Ответ отправлен: 22.11.2002, 20:53
Отправитель: keleb-glin


Отвечает Bob Johnson

Доброе время суток, DyC!
Сменить кодировку просмотра (на Кои-8, Windows-1251 - обычно одно из этого помогает).


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


Отвечает Dark_Lord

Добрый день, DyC!
В Опере: вид=>кодировка=>кирилица=>Windows-1215

Ответ отправлен: 21.11.2002, 20:22
Отправитель: Dark_Lord


Отвечает Painbringer

Добрый день, DyC!
Дык - а конец нигде не описывается... сам найдешь - или символьчик какой в конце поставишь или днину где сохранишь...
а посмотри че у тя там в опере с кодировками.....

Ответ отправлен: 21.11.2002, 20:51
Отправитель: Painbringer


Отвечает masquer

Приветствую Вас, DyC!
1. Обычно нулем завершается (zero terminated string), а бывает знаком - $.
2. Дык кодировка кои8. Переконвертируй тем же штирлицом.

Ответ отправлен: 21.11.2002, 18:50
Отправитель: masquer


Отвечает Maverick

Добрый день, DyC!
1.Например функция 9h прерывания 21h выводит строку смещение которой в dx пока не встретится знак $
string db 'В литературе все подробно описано.$'


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


Отвечает baldr

Доброе время суток, DyC!
1. Да не начало! А массив байт! А конец - так это смотря чем ты эту строку обрабатываешь.
Если это текстовая строка, то довольно распространено использование т.наз. null-terminated строк,
то есть, оканчивающихся нулем. А функции прерывания 21h используют иногда еще символ "$".
2. Ну ты даешь! В меню "вид"->"кодировки" выбираешь автоопределение. Или, если не помогает, то
в подменю "кириллица" там же выбери нужную кодировку.


Ответ отправлен: 23.11.2002, 00:35
Отправитель: baldr


 Вопрос № 1893

Здравствуйте, уважаемые господа Эксперты!!!
Опять вся надежда только на Вас. Не смотря на то, что на последних 2 моих вопроса удовлетворительных ответов не получил, осмелюсь опять Вас побеспокоить.
Ну и типа экспертов которые отвечают только ради ответа прошу не беспокоится.
Предисловие.
Написал на Фасме приложение с использованием хука WH_MOUSE. Чтобы повешать хук глобально ессно запихнул хук-процедуру в длл. Работает все криво. В приложении исходники. ОС – WinXP.
Если кому не лень, то ПОЖАЛУЙСТА, ответьте на несколько вопросов по коду.
1. Зачем нужна в длл эта секция section '.reloc' fixups readable discardable? (Без нее – выскакивает "ошибка при инициализации приложения 0хС0000018")
2. Как-то криво работает WH_MOUSE. Реагирует только на мое окно. Если заменить на WH_MOUSE_LL то все чики-пуки. Дык не у всех же платформа NT. Кроме того запустил прогу под 98 - и ни фига.
3. Где я наглючил с GetWindowModuleFileName? А то она не могет возвратить ModuleFileName окна отличного от моего. (В МСДН вообще глухо на этот счет)
4. Ответьте, наконец, на вопрос как слить все секции в одну.
Господа, помогите, а то уже крыша едет.
ЗЫ. Насчет WH_MOUSE очень странно, потому как та же длл но не на фасме, прекрасно работает и под 95, 98, 2k и XP. (Может я что-то пропустил?)
ЗЗЫ. Серьезно - не могу ни есть ни спать вот уже целые сутки - все долбаю этот WH_MOUSE.
Буду благодарен за любую помощь.


Приложение:


Вопрос отправлен: 21.11.2002, 21:33
Отправитель: Бадян (sba@litech.net)

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

Отвечает masquer

Доброе время суток, Бадян!
fasm-ом я не пользуюсь и в блишайшем будущем не планирую, поэтому отвечаю, как знаю.
1. reloc нужен для тех случаев, когда модуль садится на адреса, отличные от ImageBase
2. все нормальные люди CallNextHookEx вызывают в конце процедуры
3. Странно, конечно, посмотрел на синтаксис фасм и увидел, что там параметры секции программер вручную должен прописывать, т.е. должен знать - что это такое, а потом уже пробовать. Или я ошибаюсь?
В конце концов - скомпилируй один вариант в масм, другой - в фасм. И сравни - по секциям пройдись, по коду.
В масм такая библиотека должна линковаться так, чтобы содержать секцию с атрибутами shareable in memory (надеюсь, понятно, зачем), и для линкера это опция /SECTION:.bss,S. Как в фасме это делать - смотри документацию.
Для слияния используется ключ merge, его параметров я не помню, потому что когда нужно было - я вручную это все делал.
Может, сначала формат РЕ изучи, а затем на фасм садись?


Ответ отправлен: 22.11.2002, 11:38
Отправитель: 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 (43)
C / C++ (29)
Perl (9)
Delphi (14)
Pascal (23)
Basic / VBA (11)
Java / JavaScript (15)
PHP (10)
MySQL / MSSQL (9)
Пользователю
Windows 95/98/Me (35)
Windows NT/2000/XP (23)
"Железо" (28)
Поиск информации (17)
Администратору
Windows NT/2000/XP (12)
Linux / Unix (17)
Юристу
Гражданское право (7)
Семейное право (2)
Трудовое право (3)
КоАП (2)

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




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

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


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

В избранное