Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 422
от 21.11.2002, 18:30
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 1892 Отправлено ответов: 5887 Активность: 311.1 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Bob Johnson Статус: Профессиональный Общий рейтинг: 154.3 [Подробней >>] |
baldr Статус: Профессиональный Общий рейтинг: 114.46 URL: Сайт об ОС DOS. Всем, кто любит эту ОС! [Подробней >>] |
ASMодей Статус: Профессиональный Общий рейтинг: 120.07 [Подробней >>] |
Maverick Статус: Опытный Общий рейтинг: 136.69 URL: Задачи по ассемблеру Телефон: 89039415024 (BiLine GSM) [Подробней >>] |
Sensey Статус: Профессиональный Общий рейтинг: 122.93 URL: Страничка рассылки по Паскалю Телефон: +38 (0572) 41-76-04 дом. [Подробней >>] |
igorash Статус: Профессиональный Общий рейтинг: 116.31 [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 130.1 URL: моя рассылка по Protected Mode [Подробней >>] |
GL Статус: Опытный Общий рейтинг: 104.03 [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 108.46 URL: Страничка обо мне и моих друзьях [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 152.07 [Подробней >>] |
keleb-glin Статус: Начальный Общий рейтинг: 115.73 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 117.38 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 1831. Доброго времени суток, уважаемые эксперты. Имеется: Два компьютера соединённые через сетевые карты, ... (ответов: 3)
Вопрос № 1832. Здравствуйте Эксперты! Вопрос по железу Можно ли вставить в материнскую плату Pentium III Socket 370... (ответов: 8)
Вопрос № 1833. Здравствуйте, эксперты! У меня к вам несколько вопросов! 1) Какой максимальный размер файла, можно п... (ответов: 4)
Вопрос № 1834. Здравствуйте уважаемые Эксперты. 2 недели сидел без монитора, аж извелся весь… У меня к Вам те... (ответов: 1)
Вопрос № 1835. Здравствуйте! Подскажите, пожалуйста, как сменить цвет фона элемента диалога(label,combobox,progress... (ответов: 2)
Вопрос № 1836. Уважаемый Bob Johnson, если можно, то пришлите мне тоже лабораторные по Ассемблеру. Мой адрес: cls@s... (ответов: 1)
Вопрос № 1837. Ув. эксперты! В сайсе есть команда BMSG, но я не могу ей воспользоваться. Я пишу BMSG 110114 2 по эт... (ответов: 2)
Вопрос № 1838. Hello! Уважаемые эксперты, есть такая вот задачка: написать прогу проверки пароля до загрузки DOS (W... (ответов: 3)
Вопрос № 1839. Ув. эксперт Broken Sword! Вы меня не так поняли, по команде HWND сайс еще выдает хэндлы окон, вот им... (ответов: 1)
Вопросов: 9, ответов: 25
Вопрос № 1831 |
Доброго времени суток, уважаемые эксперты.
Имеется: Два компьютера соединённые через сетевые карты, один продвинутый юзер способный писать на асме под Windows, я. Мне нужно создать программу, которая сможет отправлять/принимать файлы с компьютера на компьютер. На сколько я знаю стандартные Windows сетевые игры идут через протокол TCP/IP (исправьте меня, если я не прав), так вот я подумал, что можно использовать его. Поэтому у меня вопрос, не сталкивался ли кто с такими задачами. Книжек по этому поводу немерено, но все они пытаются толкнуть мне историю интернета и форматы данных интернета, а не программирование их. Может кто имеет документацию такого рода или знает книгу где описано программирование TCP/IP. Если я в чём-то ошибаюсь, то с удовольствием приму исправления. С уважением, MegaLama.
Вопрос отправлен: 16.11.2002, 17:12
Отправитель: megalama (megalama@land.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Доброе время суток, megalama!
Обычно используют действительно TCP/IP, хотя вот NFS - работает на IPX. Тут я тебе посоветую посмотреть примеры из MSDN - в частности, simple:
SamplesVC98sdk etdswinsocksimple - там все достаточно просто (только на С), но из асма вызывать API функции - также, как и из С.
Ответ отправлен: 17.11.2002, 23:45
Отправитель: Bob Johnson
Отвечает baldr
Здравствуйте, megalama!
Ну почти что TCP/IP... Но настолько низко Вам, думаю, писать не надо! Использовать можно
winSock - это модуль функций для работы с портами. Описание - см у Всемирного Разума.
Ответ отправлен: 17.11.2002, 00:29
Отправитель: baldr
Отвечает ASMодей
Здравствуйте, megalama!
В Windows есть такая штука, как Socket. Именно через него происходит
связь по сети. Делается это так: на одном компьютере создается
сокет и включается на прием данных с какого-либо порта (не порта
ввода-вывода). На другом компьютере тоже создается сокет и через
него отправляется файл на первый компьютер (используя сетевой адрес
и тот же номер порта). При этом тебе не придется заморачиваться
всякими протоколами обмена - сокет сделает это сам.
Ответ отправлен: 17.11.2002, 09:49
Отправитель: ASMодей
Вопрос № 1832 |
Здравствуйте Эксперты!
Вопрос по железу
Можно ли вставить в материнскую плату Pentium III Socket 370 чипсет i815 процессор Intel Pentium 100 MHz?
Вопрос не праздный, мне это нужно для поэтапного абгрейда компа.
Целую Lenka!
Вопрос отправлен: 16.11.2002, 17:12
Отправитель: Lenka
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Доброе время суток, Lenka!
Нет, тебе придется совместить этот этап с этапами замены самого процессора и памяти. Может также понадобиться заменить еще и корпус (блок питания).
Ответ отправлен: 17.11.2002, 23:46
Отправитель: Bob Johnson
Отвечает Maverick
Здравствуйте, Lenka!
Помоему нет.
Ответ отправлен: 17.11.2002, 14:56
Отправитель: Maverick
Отвечает Sensey
Приветствую Вас, Lenka!
Нет. Разьем не такой. Там Socket 370, а Пень I - socket 7
А вообще-то есть рассылка по железу
Ответ отправлен: 18.11.2002, 19:09
Отправитель: Sensey
Отвечает igorash
Добрый день, Lenka!
100 конечно нет, но если имелось в виду 1000 - то да...
Ответ отправлен: 16.11.2002, 21:26
Отправитель: igorash
Отвечает Broken Sword
:)
Целую, Broken Sword
Ответ отправлен: 17.11.2002, 00:32
Отправитель: Broken Sword
Отвечает GL
Добрый день, Lenka!
Нет, этого сделать нельзя. Т.к. Intel Pentium 100 устанавливается в Socket 7, который не совместим с Socket 370. А переходники такие мне не встречались.
Ответ отправлен: 17.11.2002, 13:34
Отправитель: GL
Отвечает Gibbel
Добрый день, Lenka!
Нет, этого сделать нельзя. Тебе придется одновременно заменить материнку+память+процессор+корпус(блок питания)+все ISA-устройства(большинство современных материнских плат их не поддерживают).
Целую, Gibbel ;-)
P.S.: А вообще, для таких вопросов есть рассылка по "железу"...
Ответ отправлен: 18.11.2002, 09:46
Отправитель: Gibbel
Отвечает masquer
Доброе время суток, Lenka!
Гы-гы, это больше на даунгрейд похоже. Не, не получится, сокет другой должен быть.
Ответ отправлен: 18.11.2002, 13:59
Отправитель: masquer
Вопрос № 1833 |
Здравствуйте, эксперты!
У меня к вам несколько вопросов!
1) Какой максимальный размер файла, можно по-байтово прочитать в ДОС. Вопрос возник по тому, что я думаю, ведь есть же какой-то счетчик, который хранит в себе указатель чтения, какой он размерности?
2) Как читать файл в обратном порядке? Кроме как перемещать указатель функцией 42h от конца файла к началу и читать информацию? Читать от начала к концу не интересно, т.к. данные, которые нужно найти находятся в конце файла, а размеры файлов не меньше 0.5 Мб.
3) А как переместить указатель чтения в конец файла?
Я использую функции поиска для длинных имен файлов, а там размер файла указывается так:
1Ch DWORD file size (high 32 bits)
20h DWORD file size (low 32 bits)
А расстояние, которое указывается для перемещения указателя вводится в CX:DX, я так и не понял, какой дворд, как туда запихнуть, вернее понятно, что сначала будет пихаться младший дворд, но какая его часть, куда?
ЗЫ: Все разумеется для ДОС.
--
С уважением, ILYA D.
Вопрос отправлен: 16.11.2002, 17:29
Отправитель: ILYA D.
[Следующий вопрос >>] [Список вопросов]
Отвечает keleb-glin
Здравствуйте, ILYA D.!
В описании функции 42h сказано, что при её выполнении указатель переместится на (CX*65535)+DX байт, т.е. можно прочитать файл размером в 65535*65536+65535 ( ок. 4 гигов ).
Насчёт чтения с конца к началу, это идея неплохая, но сложно реализуемая. Скорее всего, тебе действительно придётся юзать 42h, т.к. подобных функций для работы через хэндл ( наверное и через FCB ) нет. Даже сам FAT устроен так, что в каждом кластере записан адрес следующего ( чтобы перескакивать зарезервированные и BAD - блоки ), но не наоборот.
Указатель чтения перемещается в конец файла функцией 42h с параметрами:
bx = handle
cx = 0
dx = 0
al = 2 - сдвиг указателя в конец файла + cx:dx ( eof + cx*65536 + dx )
Насчёт функций для длинных имён файлов указал хотя бы номер функции. А то я подобного ни в technical help, ни где-либо ещё не обнаружил.
Ответ отправлен: 17.11.2002, 18:05
Отправитель: keleb-glin
Отвечает Bob Johnson
Приветствую Вас, ILYA D.!
Максимальный размер файла в ДОСЕ - 2 или 4 Гб. Длина файла в FAT занимает 4 байта.
2. Именно так, как ты написал. Другого не дано. Но лучше читать не по байту, а по 64 кб - так будет быстрее.
3. Обычной функцией перемещения указателя (42h) - там в al заносится режим перемещения: 0 - от начала файла, 1 - знаковое смещение от текущего положения в файле, 2 - знаковое смещение от конца файла. Тебе нужен вариант 3, т.е. от конца. Чтобы попасть на последний байт файла необходимо переместиться от конца файла на -1 (как мне кажется). А смещение действительно запихивается в CX:DX - это всего лишь пара регистров. В СХ помещается старщая часть смещения, а в DX - младшая. Т.е. в случае с -1 тебе надо поместить в оба этих регистра 0FFFFh.
Ответ отправлен: 17.11.2002, 23:46
Отправитель: Bob Johnson
Отвечает Broken Sword
Доброе время суток, ILYA D.!
1. Побайтово можно прочитать столько байт, сколько максимально занимает один файл: в FAT это 4Гб. Счетчик соответственно имеет размерность 4Гб
2. Смотри, вообще то FAT - это ОДНОНАПРАВЛЕННЫЙ список, поэтому "В ЛОБ" читать задом-наперед невозможно. Нужно использовать какие-то системные штуки. Так, в ДОС-е тоже было бы невозможно читать файл задом-наперед, если бы он не копировался небольшими кусками в память. Поэтому нужно знать, куда он скопировался. А этого теоретически никто не знает. Поэтому придется использовать lseek.
3. Эти два dword-а - для совместимости с NTFS (!), потому что в FAT, я еще раз повторюсь, макс. размер файла - 4 ГБ!!!!! А в NTFS - 2^64 байт!!!! Поэтому старшее слово (1Ch) для FAT БУДЕТ РАВНО НУЛЮ!!! А младший dword (20h) ты делишь на две части: старшую часть кладешь в CX (слово), а младшую часть - в DX (тоже слово).
вот так вот
пока!
Ответ отправлен: 17.11.2002, 00:32
Отправитель: Broken Sword
Отвечает ASMодей
Доброе время суток, ILYA D.!
1. За один раз DOS может прочитать из файла не более 64Кб.
А максимальный размер файла определяется в FAT, и для FAT16
и FAT32 он различается.
2. Похоже, что только так. Только не забывай, что при чтении
указатель тоже будет смещаться на число прочитанных байт.
3. Переместить указатель в конец файла можно функцией 42h,
используя CX:DX=0 и AL=2. А причем здесь поиск файлов?
Ответ отправлен: 17.11.2002, 09:50
Отправитель: ASMодей
Вопрос № 1834 |
Здравствуйте уважаемые Эксперты.
2 недели сидел без монитора, аж извелся весь…
У меня к Вам теоретический вопрос.
Попрошу сильно не матюгать и подробно ответить или отослать к какому-нить источнику, где рассмотрен сабж.
Какие секции можно безболезненно склеивать в программе? Например обычная dll-ка (в синтаксисе Фасма) состоит из таких секций:
section '.code' code readable executable
section '.data' data readable writeable
section '.idata' import data readable writeable
section '.edata' export data readable
section '.reloc' fixups data readable discardable
Тоесть было бы круто слепить все эти секции в одну. Но как?
Если просто замутить такую вот кашу, то ничего хорошего не получается:
section 'SewnSect' code data import export fixups readable writeable discardable executable
Когда-то читал статью, в которой говорилось, что любая программа под МастДай теоретически может состоять только из одной секции. ЛЮБАЯ!!!
Заранее благодарю!
Вопрос отправлен: 16.11.2002, 17:50
Отправитель: Бадян (sba@litech.net)
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Приветствую Вас, Бадян!
reloc можно вообще удалять, а все остальные секции при небольшом изврате можно и в одну слепить. Я тоже тебе говорю - любая, я так делал, хотя вручную РЕ ковырять прийдется.
Ответ отправлен: 18.11.2002, 14:02
Отправитель: masquer
Вопрос № 1835 |
Здравствуйте! Подскажите, пожалуйста, как сменить цвет фона элемента диалога(label,combobox,progressbar)? Желательно с примером, потому что я пробовал с SetBkColor, что-то он не сменился. Заранее спасибо.
Вопрос отправлен: 16.11.2002, 20:34
Отправитель: Евгений
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Здравствуйте, Евгений!
а ты командой addr вошел в контекст процесса?
Ответ отправлен: 18.11.2002, 14:14
Отправитель: masquer
Отвечает Bob Johnson
Доброе время суток, Евгений!
Возможно, что никак (вот у groupbox'a - точно никак, т.к. винда представляет его только рамкой). Тут попробуй обрабатывать сообщение WM_ERASEBKGND - оно приходит главному окну, когда нужно заполнить фон - ты можешь нарисовать на заднем фоне картинку или еще что-то.
Ответ отправлен: 18.11.2002, 16:37
Отправитель: Bob Johnson
Вопрос № 1836 |
Уважаемый Bob Johnson, если можно, то пришлите мне тоже лабораторные по Ассемблеру. Мой адрес: cls@samtel.ru
Вопрос отправлен: 17.11.2002, 11:34
Отправитель: Светлана
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, Светлана!
Ok.
Ответ отправлен: 18.11.2002, 16:37
Отправитель: Bob Johnson
Вопрос № 1837 |
Ув. эксперты!
В сайсе есть команда BMSG, но я не могу ей воспользоваться. Я пишу BMSG 110114 2 по этой команде сайс должен включатся когда я закрываю окно (число 110114 я получил командой HWND, там написано имя класса, адрес процедуры обработки сообщений, имя модуля и какой-то TID, что это такое?). Ладно, дальше сайс пишет INVALID WINDOW HANDLE, помагите...
ЗЫ У меня сайс 4.01, а винда 2000, но сайс написал что винда NT 5.0
Вопрос отправлен: 17.11.2002, 15:42
Отправитель: Kiselev (kiselev@nightmail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Broken Sword
Приветствую Вас, Kiselev!
BMSG НЕ является контекстно-зависимым брейкпоинтом, поэтому, если ты ввел СУЩЕСТВУЮЩИЙ хэндл, то SI ругаться НЕ БУДЕТ ни при каких обстоятельствах! Т.ч. ищи ошибку в этом.
А TID - это Thread ID (ID потока).
Ответ отправлен: 17.11.2002, 17:36
Отправитель: Broken Sword
Отвечает ASMодей
Приветствую Вас, Kiselev!
TID - это Thread ID (идентификатор потока), а Win2000 - это
и есть Win NT 5.0
Ответ отправлен: 18.11.2002, 06:17
Отправитель: ASMодей
Вопрос № 1838 |
Hello!
Уважаемые эксперты, есть такая
вот задачка: написать прогу проверки пароля
до загрузки DOS (Windows)через прерывания BIOS.
Я так понимаю нужно переписать загрузочный сектор
и после отработки программы отдать дальнейшее исполнение коммандному процессору (сommand.com), т.е. то что должна была сделать программа загрузочного сектора. Может конечно я что не правильно выразился, извините за дилетантство.
В Общем если можно объясните мне поподробней, как будет правильно. Заранее благодарень от меня всем ответившим.
Вопрос отправлен: 17.11.2002, 16:11
Отправитель: Snaker (garry_j_p@hotmail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Добрый день, Snaker!
Тут тебе помогут доки по загрузочным вирусам.
Если надо, то мыль, скину.
Maverick@nightmail.ru
Ответ отправлен: 17.11.2002, 22:30
Отправитель: Maverick
Отвечает Ayl
Добрый день, Snaker!
Лучше оригинальному boot-сектору, потому как ты не знаешь, какая именно ОС будет грузиться.
Т.е. твои действия должны выглядить следующим образом:
1. Получаешь управление при загрузке
2. Выполняешь проверку пароля
3. Копируешь кусок кода куда-нибудь для передачи управления оригинальному бут-сектору
4. Считываешь оригинальный бут-сектор по адресу 0000h:7c00h
5. Передаешь управление оригинальному бут-сектору по этому адресу
Ответ отправлен: 18.11.2002, 11:01
Отправитель: Ayl
Отвечает Bob Johnson
Добрый день, Snaker!
В твоем варианте необходимо записать содержимое MBR (Master Boot Record) - это первый сектор диска в отдельный файл, туда (в MBR) поместить свою программу, которая запрашивает пароль и, если пароль верный, просто загрузить прежний MBR в память и передать ему управление.
Но лучше поставить пароль в BIOS, т.к. если загрузиться с дискеты и перезаписать MBR (FDISK /MBR или SYS.COM) - то весь твой труд пойдет коту под хвост (а у кота там ... ну ты знаешь).
Ответ отправлен: 18.11.2002, 16:39
Отправитель: Bob Johnson
Вопрос № 1839 |
Ув. эксперт Broken Sword!
Вы меня не так поняли, по команде HWND сайс еще выдает хэндлы окон, вот именно ОТТУДА я брал значение 110114(конешно в разных случаях будут разные хэндлы). А насчет существующих хэндлов, то я брал разные хэндлы разных элементов, сайс НИОДНОГО не признает, хотя САМ их мне выдает.
Вопрос отправлен: 17.11.2002, 18:16
Отправитель: Kiselev (kiselev@nightmail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Broken Sword
Здравствуйте, Kiselev!
Да я так и понял, просто ты скорее всего ОШИБСЯ при подстановке этого хэндла в BPMSG, а иначе - это глюк SI. Ну а если ни одного не признает - значит это точно глюк. Поставь 2.7 сайс
Ответ отправлен: 17.11.2002, 22:35
Отправитель: Broken Sword
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (42) C / C++ (29) Perl (8) Delphi (13) Pascal (21) Basic / VBA (11) Java / JavaScript (13) PHP (11) MySQL / MSSQL (9) |
Пользователю Windows 95/98/Me (31) Windows NT/2000/XP (21) "Железо" (26) Поиск информации (16) |
Администратору Windows NT/2000/XP (10) Linux / Unix (15) |
Юристу Гражданское право (7) Семейное право (2) Трудовое право (3) КоАП (2) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||