Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 362
от 08.09.2002, 20:30
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 1199 Отправлено ответов: 3678 Активность: 306.7 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Dark_Lord Статус: Профессиональный Общий рейтинг: 140.11 [Подробней >>] |
Топор Статус: Профессиональный Общий рейтинг: 117.76 URL: Хорошая Русская Металлическая команда Телефон: (8462)500298 [Подробней >>] |
ASMодей Статус: Опытный Общий рейтинг: 123.76 [Подробней >>] |
Gibbel Статус: Опытный Общий рейтинг: 108.46 URL: Страничка обо мне и моих друзьях [Подробней >>] |
Beeblebrox Статус: Профессиональный Общий рейтинг: 115.94 URL: Beeblebrox / TMA HomePage [Подробней >>] |
Sinner Статус: Доверительный Общий рейтинг: 105.6 [Подробней >>] |
SonicX Статус: Доверительный Общий рейтинг: 115.78 [Подробней >>] |
Portnov Статус: Профессиональный Общий рейтинг: 121.85 URL: Мой сайтик... [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 157.86 [Подробней >>] |
LIFO Статус: Опытный Общий рейтинг: 137.16 Телефон: 8 01710 24758 [Подробней >>] |
Pablo Статус: Профессиональный Общий рейтинг: 131.98 URL: Моя страничка [Подробней >>] |
baldr Статус: Профессиональный Общий рейтинг: 117.61 URL: Сайт об ОС DOS. Всем, кто любит эту ОС! [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 135.24 URL: моя рассылка по Protected Mode [Подробней >>] |
Sensey Статус: Профессиональный Общий рейтинг: 129.18 URL: Страничка рассылки Паскаля... Телефон: +38 (0572) 41-76-04 дом. [Подробней >>] |
kvINT Статус: Профессиональный Общий рейтинг: 111.55 Телефон: (34316)2-31-45 [Подробней >>] |
Lank Статус: Начальный Общий рейтинг: 120.58 [Подробней >>] |
Shal Статус: Опытный Общий рейтинг: 107.26 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 1169. Здравствуйте! Подскажите как прочитать большой файл, например размером больше 300кБ с помощью COM -п... (ответов: 7)
Вопрос № 1171. Доброго времени суток, ув. эксперты! На Download.ru появился русский перевод справочника по API-ф-ци... (ответов: 3)
Вопрос № 1172. Привет Эксперты нужна инфа как создавать виртуальные диски в windows если есть исходники то просьба... (ответов: 3)
Вопрос № 1173. Здравствуйте господа эксперты. У меня такой вопрос- есть у кого-нибудь (или есть вообще в природе) ... (ответов: 7)
Вопрос № 1174. Здраствуйте уважаемые эксперты. Я начинающий. Вопрос наверно не к вам, но все вы пользуетесь почтой.... (ответов: 4)
Вопрос № 1175. Вам и Вашим машинам крепкого здравия! Не подскажете, какие реальные изменения вносит в код ключ тлин... (ответов: 4)
Вопросов: 6, ответов: 28
Вопрос № 1169 |
Здравствуйте!
Подскажите как прочитать большой файл, например размером
больше 300кБ с помощью COM -программы (у нее сегмент ведь
только 64кБ), чтобы можно было обработать в этом файле данные (например снять контрольные суммы определенных
областей памяти и изменить с учетом этого некоторые ячейки
памяти) и перезаписать измененый файл. В приведенном примере
у Олега в рассылке мы читаем и записываем файл размером до
64кБ, а чтобы прочитать файл размером например 60000h , то
придеться резервировать в сегменте данных такой же размер
(при этом ведь сильно увеличивается размер программы) и
заносить уже в регистр ECX это-же значение?
Я нашел SOFT-ICE 2.8 для DOS и хотел посмотреть файл в отладчике, но при запуске из командной строки:
> s-ice.exe >имя файла он у меня ругается что-то про 386-
процессор и выходит. Так как же можно посмотреть файл ?
Помогите разобраться в этих вопросах плиз.
Вопрос отправлен: 03.09.2002, 23:09
Отправитель: alexsav
[Следующий вопрос >>] [Список вопросов]
Отвечает Dark_Lord
Здравствуйте, alexsav!
если тебе нужно просмотреть только части файла, то просто получи указатель на файл и просто работай с файлом, не загружая полностью!
Ответ отправлен: 03.09.2002, 23:17
Отправитель: Dark_Lord
Отвечает Топор
Приветствую Вас, alexsav!
Можно всё это оформить за пределом 64К от начала COM-файла. Но придётся задействовать дополнительные сегменты данных FS и GS и обрабатывать большой файл посегментно.
Ответ отправлен: 04.09.2002, 20:10
Отправитель: Топор
Отвечает ASMодей
Приветствую Вас, alexsav!
1. Файл большого размера можно читать по частям
2. Файл можно прочитать целиком в память сразу после
COM-программы, перенастроить например регистр ES на
начало этой области памяти и работать с ним. Главное
здесь - не забывать увеличивать ES после выхода за
границу сегмента. И еще: файл все равно придется читать
по частям, так как DOS не может прочитать больше 64К
за раз.
Ответ отправлен: 04.09.2002, 09:50
Отправитель: ASMодей
Отвечает Gibbel
Здравствуйте, alexsav!
Вся память после твоей программы автоматически резервируется. Можешь грузить туда файл без всякой опаски... Только не забудь проверить, достаточно ли там памяти...
Ответ отправлен: 04.09.2002, 10:28
Отправитель: Gibbel
Отвечает Beeblebrox
Здравствуйте, alexsav!
Возьми сегментный регистр ds и настрой его за концом твоей программы (в конце программы не забудь написать директиву ALIGN 16). Почему-то все считают, что СОМ-файлу доступно только 64К, на самом же деле только при старте все сегментные регистры равны друг другу, а память ДОС выделяет СОМ-файлу всю нижнюю (до адреса 9FFFFh), так что не нужно даже пользоваться специальными средствами выделения памяти, как в случае ЕХЕ.
Читай из файла кусками, например, по 32К. Прочитал два полных куска - к сегментному регистру прибавь 1000h.
Вторая ошибка начинающих - если нужно зарезервировать место под неинициализированные данные, то нужно писать, например, db 100 dup(?), и это не увеличит размер твоей программы. В твоем случае, кстати, не надо ничего резервировать под считываемый файл.
Для отладки пользуйся Turbo Debugger, пока не набьешь руку, а в СофтАйс не лезь
Ответ отправлен: 04.09.2002, 10:49
Отправитель: Beeblebrox
Отвечает Sinner
Добрый день, alexsav!
выпроси у системы кусок памяти и читай файл туда...
в приложении содержимое файла "memory.inc", который я когда-то давно писал для своей программки (кстати, мне тогда очень помог справочник по прерываниям в формате Norton Guides)
Приложение:
Ответ отправлен: 04.09.2002, 12:46
Отправитель: Sinner
Отвечает SonicX
Добрый день, alexsav!
Читай большие файлы прерыванием вот так:
1)Измени размер своей программы
2)Выдели памяти и настрой ES на этот сегмент
3)Считай часть файла в ES
4)Создай новый файл и запиши туда измененную часть
5)Считай следующую часть файла .....
В конце концов у тебя получится новый файл
Ответ отправлен: 04.09.2002, 14:42
Отправитель: SonicX
Вопрос № 1171 |
Доброго времени суток, ув. эксперты!
На Download.ru появился русский перевод справочника по API-ф-циям, идущего с билдером. Маловат, кило 600 всего, но обещают еженедельно обновлять. Декларируют его совершенно бесплатным. http://www.download.ru/russian/sp/9904.htm?cc
Но с него ссылка ведет на http://www.winnt.rsm.org.ru/winapi/winapirefresh.htm
где в доступе отказывают, по крайней мере мне.
Forbidden
You don't have permission to access /winapi/win32api.exe on this server.
--------------------------------------------------------------------------------
Apache/1.3.20 Server at www.winnt.rsm.org.ru Port 80
Видимо, надо иметь зарегенную копию билдера?
Кто-нибудь еще пробовал? Нет ли других ссылок? Как бороться?
Если никто, все равно отправьте в рассылку, многие же чуть ли не каждый день такой справочник спрашивают, а с английским, чтобы читать MSDN, наверно не у всех OK.
Да и все же на русском читать приятней.
Кстати, насчет принтера: каким-то образом у меня в реестре появилась вот такая шняга:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer NoPrinters=dword:00000001,
из-за чего доступа к настройкам принтера не было. Удалил этот параметр, все нормально. Спасибо экспертам, которые тоже не спят по ночам, ответы весьма оперативны (Темный Лорд, мистер Одинокий, Тигер и Алексей Епифанов. О, сейчас и Джад тоже не спит!).
Вопрос отправлен: 04.09.2002, 03:12
Отправитель: kvINT
[Следующий вопрос >>] [Список вопросов]
Отвечает Portnov
Приветствую Вас, kvINT!
Версия вашего Билдера здесь ни при чем. Просто у того, кто выложил этот справочник, какие-то проблемы, и в итоге ссылки, идущие с Download.ru, не имеют доступа к этому экзешнику. Собственно, это классическая проблема для Unix-систем.
С уважением, Portnov.
Ответ отправлен: 04.09.2002, 08:20
Отправитель: Portnov
Отвечает Dark_Lord
Приветствую Вас, kvINT!
Не думаю, что там бутет что-то понятное. Будет куча компьютерных терминов, переведённых с англиского, причём наверняка "не лучшего качества"!
Ответ отправлен: 07.09.2002, 12:32
Отправитель: Dark_Lord
Отвечает masquer
Здравствуйте, kvINT!
Перевод почти всегда хуже оригинала - а перевод технической информации еще и бессмысленен.
Ответ отправлен: 05.09.2002, 11:00
Отправитель: masquer
Вопрос № 1172 |
Привет Эксперты
нужна инфа как создавать виртуальные диски в windows
если есть исходники то просьба вышлите мыло внизу
_nomad@mail.kz
Вопрос отправлен: 04.09.2002, 09:37
Отправитель: _Nomad (_nomad@mail.kz)
[Следующий вопрос >>] [Список вопросов]
Отвечает LIFO
Здравствуйте, _Nomad!
Ну возьми программу Virtual 2000 и создавай:)
Или ты на амсе это делать собрался?
Ответ отправлен: 07.09.2002, 15:18
Отправитель: LIFO
Отвечает Pablo
Здравствуйте, _Nomad!
Ну есть такая прога VirtualCD вот она умеет создавать виртульные диски.
Ответ отправлен: 05.09.2002, 09:14
Отправитель: Pablo
Отвечает masquer
Здравствуйте, _Nomad!
на сайте microsoft есть исходники рамдиска - но для каждой системы схема своя должна быть. Скажу только, что все это на уровне драйвера делается.
Ответ отправлен: 05.09.2002, 11:11
Отправитель: masquer
Вопрос № 1173 |
Здравствуйте господа эксперты.
У меня такой вопрос- есть у кого-нибудь (или есть вообще в природе) менеджер памяти под винду.
Заранее благодарен!
Вопрос отправлен: 04.09.2002, 09:48
Отправитель: rams (gultso5@belovo.net.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Топор
Добрый день, rams!
Вообще-то у винды свой собственный менеджер памяти, как у всякой ОС, он является частью ядра и работает в нулевом кольце, потому что должен обслуживать ВСЮ память. Создать его фактически означает создать свою ОС. Если даже и напишешь свой, то придётся озаботиться и всем остальным - загрузкой приложений, переключением задач и т.п.
Ответ отправлен: 04.09.2002, 20:01
Отправитель: Топор
Отвечает Dark_Lord
Здравствуйте, rams!
Менеджер памяти - это и есть ОС, в твоём случае Windows
Ответ отправлен: 07.09.2002, 12:37
Отправитель: Dark_Lord
Отвечает baldr
Приветствую Вас, rams!
Он есть в природе - называется ядро Windows... Ну ты и спросил! :)
Я даже представить не могу - зачем и для чего может тебе это пригодиться!
Винда сама управляет распределением памяти и никого не спрашивает.
Ответ отправлен: 04.09.2002, 10:38
Отправитель: baldr
Отвечает Broken Sword
Приветствую Вас, rams!
есть. и не один. я знаю один - QEMM
Ответ отправлен: 04.09.2002, 13:31
Отправитель: Broken Sword
Отвечает SonicX
Приветствую Вас, rams!
А что он будет делать?
Ответ отправлен: 04.09.2002, 14:42
Отправитель: SonicX
Отвечает Pablo
Приветствую тебя, rams!
Как это менеджер памяти под Винду, ну есть встроенный у Виндов, имеющий функции, например, GlobalAlloc, GlobalFree.
Есть еще Борландовский, функции: GetMemory, FreeMemory.
Ответ отправлен: 05.09.2002, 09:16
Отправитель: Pablo
Отвечает masquer
Добрый день, rams!
смотри DDK - может лучше напишешь
Ответ отправлен: 05.09.2002, 11:12
Отправитель: masquer
Вопрос № 1174 |
Здраствуйте уважаемые эксперты.
Я начинающий. Вопрос наверно не к вам, но все вы пользуетесь почтой.
Подскажите как перенести базу всех писем аутлука с одного копма (с работы) на другой (домой).
Я просто копирую файлы с письмами и в аутлуке в Параметры->Обслуживание->Банк_сообщений меняю путь.
Аутлук выдает непонятные ошибки. Пробовал на двух компах. Не получается.
Подскажите пожалуйтся. На работе нет времени заниматся ассемблером, пишу как и все кому не лень на делфи.
Вопрос отправлен: 04.09.2002, 18:24
Отправитель: Evgeny (evgeny@kviten.dp.ua)
[Следующий вопрос >>] [Список вопросов]
Отвечает Sensey
Здравствуйте, Evgeny!
копируй папку (в W2k) с:\Document and setting\Ты\Local setting\Application Data\Identities\{Всякие разные цифирьки}\Корпорация Микрософт\Outlook Exspress\*.*
А еще проще, найди файлы *.dbx и скопируй их...
В след раз с такими вопросами в рассылку "WindowsXXX для пользователя"
Ответ отправлен: 04.09.2002, 20:17
Отправитель: Sensey
Отвечает kvINT
Приветствую Вас, Evgeny!
Да вроде все правильно ты делаешь. Единственно, копировать надо не файлы с сообщениями, а банк сообщений целиком, или хотя бы файл .dbx. У меня, например, банк находится по адресу F:Мои документыСообщения Аутлук, естественно, путь прописан именно к ней. Если я в другом месте буду иметь банк в папке с таким же именем (путь неважен), а потом заменю ей свою, все прекрасно распознается. Правда, чтобы прочесть теперь старые, надо вновь папки менять. Чтобы их объединить поэкспериментируй с "Импорт сообщений", у меня как-то такой надобности не было, не занимался.
Ответ отправлен: 04.09.2002, 19:21
Отправитель: kvINT
Отвечает Lank
Привет Evgeny, ти знаеш у меня севодня была та-же проблема я сделал так : сначала создал новую папку с сообщениями например $#$#$#$# а затем пошол в ФАР и дал поискать $#$#$#$#.* он мне нашол в папке :
"C:Documents and SettingslankLocal SettingsApplication DataIdentities{CC099D0C-6AAC-4A2E-BCE2-F3D7A6B53B6A}Корпорация МайкрософтOutlook Express"
файл $#$#$#$#.dbx потом я скопировал в Оутлуке все нужные сообщения в папку $#$#$#$# а затем на другой машине в АутЛуке создал точно такую же папку и опять нашол $#$#$#$#.dbx с помощю Фара потом скопировал етот файл с первой машини на вторую (на второй пришлось закрыть АутЛок и при копировании перезаписать пустой $#$#$#$#.dbx рамером 76500 новим). потом уже на второй машине я зашол в АутЛук и перетащил с папки $#$#$#$# сообщения в нужные мне каталоги.
И никаких проблем :).
Если чё непонятно спрашивай. Мой E-Mail : Lank@regi.rovno.ua
С уважением Lank.
Ответ отправлен: 04.09.2002, 18:51
Отправитель: Lank
Отвечает Pablo
Доброе время суток, Evgeny!
Так в аутлуке же импорт сообщений есть вот и импортируй из старой базы осообщения.
Ответ отправлен: 05.09.2002, 09:16
Отправитель: Pablo
Вопрос № 1175 |
Вам и Вашим машинам крепкого здравия!
Не подскажете, какие реальные изменения вносит в код ключ тлинкера /V[версия_Windows] ? Лично я не заметил никаких, но то ли хреново смотрел, то ли в данном случае не требовалось...
Вопрос отправлен: 04.09.2002, 20:26
Отправитель: Топор (yemel@inbox.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает LIFO
Здравствуйте, Топор!
Значит не работаешь с отладчиком - это плохо...
Посмотри свою прогу под TurboDeb с ключом и без него - увидишь разницу (не забудь также написать Tasm /zi)
V - включить отладочную инфу в исполняемый файл
Ответ отправлен: 07.09.2002, 15:18
Отправитель: LIFO
Отвечает Broken Sword
Здравствуйте, Топор!
Ты абсолютно прав. Вот вырезка из доки:
Параметр /V
Синтаксис: /V
Примечания: Параметр /V используется в целях совместимости.
Он не приводит ни к каким действиям и не оказывает влияния на ассемблирование.
Ответ отправлен: 04.09.2002, 22:39
Отправитель: Broken Sword
Отвечает Portnov
Добрый день, Топор!
Изменения вносятся не в код, а в PE-заголовок экзешника. Там есть такое поле - версия Винды. При запуске, AFAIK, проверяется соответствие, и если в экзешнике указана версия Винды больше текущей, выдается ошибка. Напр., приложение для Вынь2000 не может быть запущено под Вонью98.
С уважением, Portnov.
Ответ отправлен: 05.09.2002, 08:12
Отправитель: Portnov
Отвечает Shal
Добрый день, Топор!
Напиши tasm /?.
И тпм есть все ключи.
Ответ отправлен: 06.09.2002, 12:23
Отправитель: Shal
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (39) C / C++ (28) Perl (9) Delphi (14) Pascal (25) Basic / VBA (10) Java / JavaScript (12) PHP (9) MySQL / MSSQL (10) |
Пользователю Windows 95/98/Me (39) Windows NT/2000/XP (26) "Железо" (36) Поиск информации (12) |
Администратору Windows NT/2000/XP (13) Linux / Unix (16) |
Юристу Гражданское право (10) Семейное право (6) Трудовое право (8) КоАП (5) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||