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

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.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

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

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




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

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


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

В избранное