Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 723
от 14.05.2004, 16:20
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 5271 Отправлено ответов: 14514 Активность: 275.3 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Pawel Статус: Профессиональный Общий рейтинг: 155.49 [Подробней >>] |
_vt Статус: Профессиональный Общий рейтинг: 118.48 [Подробней >>] |
Foamplast Статус: Профессиональный Общий рейтинг: 150.59 URL: мой личный сайт [Подробней >>] |
Dragoon Статус: Начальный Общий рейтинг: 109.7 [Подробней >>] |
ASMодей Статус: Профессиональный Общий рейтинг: 111.72 [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 105.52 URL: Savage Metal Club - жизнь в стиле рок-н-ролл Телефон: +7 901 710 3146 [Подробней >>] |
Dark_Lord Статус: Профессиональный Общий рейтинг: 109.71 [Подробней >>] |
Стас Статус: Начальный Общий рейтинг: 120 [Подробней >>] |
Евгений Иванов Статус: Профессиональный Общий рейтинг: 133.42 URL: Super Assembler Software Телефон: НСС +7 831 3107039 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 116.6 [Подробней >>] |
Acid Burn Статус: Доверительный Общий рейтинг: 127.65 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 5246. Программа-редактор для Ассемблера. Всем изучающим язык будет полезен. http://www.avtlab.ru/asmedit.h... (ответов: 2)
Вопрос № 5247. Добрый день, Если кто-нибудь знает как мне удалить файл, если эта программа запущена? Наверно как.то... (ответов: 2)
Вопрос № 5248. Привет Где можно взять(купить, скачать) туториал, книгу о организации памяти в Win32 Горю желанием и... (ответов: 5)
Вопрос № 5249. Здравствуйте уважаемые эксперты.... Подскажите где достать хороший подробный справочник по WIN 32 AP... (ответов: 4)
Вопрос № 5250. Чем отличаются функции GlobalAlloc и LocalAlloc? И правда ли что они выделяют блок памяти кратный 4к... (ответов: 5)
Вопрос № 5251. Здравствуйте уважаемые эксперты! 1. Я хочу чтобы запрос который я послал с браузера вернулся к нему... (ответов: 1)
Вопрос № 5252. Будьте добры помогите написать следующую часть программы, нужно обрабатывать нажатие Ctrl, если нажа... (ответов: 4)
Вопрос № 5253. Здравствуйте. Я начинающий программист на Assembler'е под DOS. Под Windows пишу более менее. Но к с... (ответов: 5)
Вопросов: 8, ответов: 28
Вопрос № 5246 |
Программа-редактор для Ассемблера.
Всем изучающим язык будет полезен.
http://www.avtlab.ru/asmedit.htm
Вопрос отправлен: 09.05.2004, 12:40
Отправитель: EI
[Следующий вопрос >>] [Список вопросов]
Отвечает Pawel
Здравствуйте, EI!
С синтаксисом FASM он работает плохо.
В основном это ешё один MASM редактор.
Ответ отправлен: 10.05.2004, 21:14
Отправитель: Pawel
Отвечает _vt
Здравствуйте, EI!
Давно известный и не очень удобный редактор.
E-Man : Life begins at 1000Mhz!
Ответ отправлен: 11.05.2004, 04:10
Отправитель: _vt
Вопрос № 5247 |
Добрый день, Если кто-нибудь знает как мне удалить файл, если эта программа запущена? Наверно как.то надо поличить SE_TAKE_OWNERSHIP_NAME или ...?
Вопрос отправлен: 09.05.2004, 15:49
Отправитель: Andrei
[Следующий вопрос >>] [Список вопросов]
Отвечает Pawel
Здравствуйте, Andrei!
Win запрешает ред. файлов запущенных программ.
Какая версия Win?
Ответ отправлен: 10.05.2004, 21:24
Отправитель: Pawel
Отвечает Foamplast
Добрый день, Andrei!
Убить однозначно.
Ответ отправлен: 11.05.2004, 22:08
Отправитель: Foamplast
Вопрос № 5248 |
Привет
Где можно взять(купить, скачать) туториал, книгу о организации памяти в Win32
Горю желанием изучить Win32 на низком уровне но все туториалы в Inetе пока ещё слишком сложны для меня
(честно говоря я не знаток в Win)
Меня постоянно терзает вопрос об организ памяти И
о виртуальных адресных пространствах для каждого процесса,
что процессы не могут залесть в чужое адр простр и т п,
вобщем о разделении адр простр между процессами их изолированности
Заранее ОГРОМНОЕ спасибо ответившим, потому что я ничего на эту тему не могу найти
Вопрос отправлен: 09.05.2004, 22:18
Отправитель: troxa (mrtroxa@yandex.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Pawel
Добрый день, troxa!
На http:www.wasm.ru вроде были.
Ответ отправлен: 10.05.2004, 21:24
Отправитель: Pawel
Отвечает Dragoon
Доброе время суток, troxa!
Почитай туториалы Iczelion'а. Там многое классно расписано.
Лежат они здесь:
http:\www.wasm.ru
Ответ отправлен: 10.05.2004, 11:48
Отправитель: Dragoon
Отвечает _vt
Доброе время суток, troxa!
Лучше чем Рихтер, тебе никто про организацию памяти не расскажет. Качай его книгу.У меня есть в электронном виде такая:
Windows для профессионалов: создание эффективных Win32 приложений с учетом специфики 64-разрядной версии Windows/Пер, англ - 4-е изд.
Насколько я знаю, уже есть 5-е издание.
E-Man : Life begins at 1000Mhz!
Ответ отправлен: 11.05.2004, 04:10
Отправитель: _vt
Отвечает ASMодей
Здравствуйте, troxa!
Почитай книгу Рихтера "Windows для профессионалов" и/или книгу
D.Solomon, M.Russinovich "Inside Windows 2000"
В первой книге описаны общие принципы, а во второй - подробности.
А вообще работа Windows с памятью основана на защищенном режиме работы
процессора, поэтому нелишней будет и документация по процессорам Intel 80386
и выше.
Ответ отправлен: 11.05.2004, 15:38
Отправитель: ASMодей
Отвечает Foamplast
Здравствуйте, troxa!
Странно, информации должно быть дофига. Рекомендую следующие книги:
- Зубков С.В. "Assembler для DOS, Windows и UNIX"
- Э. Танненбаум "Современные операционные системы"
- David A. Solomon and Mark E. Russinovich "Inside Microsoft Windows 2000"
Ответ отправлен: 11.05.2004, 22:09
Отправитель: Foamplast
Вопрос № 5249 |
Здравствуйте уважаемые эксперты....
Подскажите где достать хороший подробный справочник по WIN 32 API, а то в инете все какие-то маленькие, я где-то прочитал что полный весит около 20 мегов, а это все килобайт по 200...
спасибо!!!
Вопрос отправлен: 09.05.2004, 23:39
Отправитель: felicson
[Следующий вопрос >>] [Список вопросов]
Отвечает Pawel
Добрый день, felicson!
В Microsoft :)
Просто содержание разных справочников часто не совпадает.
Я например пользуюсь Api_nt, "Русская спpавка по Windows API", "The Undocumented Functions Microsoft Windows NT/2000"
"WinApiHelp"
Ответ отправлен: 10.05.2004, 21:29
Отправитель: Pawel
Отвечает Gibbel
Добрый день, felicson!
на сайте MSDN.
P.S.: люди, может хватит отправлять вопросы в первую попавшуюся рассылку. Ведь есть же рассылка по WinAPI.
Ответ отправлен: 12.05.2004, 11:11
Отправитель: Gibbel
Отвечает _vt
Приветствую Вас, felicson!
В комплекте с Borland С++Builder и Borland Delphi есть win32.hlp - на 20Мб - вполне подробный справочник. Одна беда - он старый: в нем описывается только API Windows95/NT4. Оптимальным вариантом будет найти у себя в городе Visual Studio.NET на 6-7 дисках - там есть всё. Из всёго этого, чисто справочником по API является Platform SDK, который можно бесплатно скачать на microsoft.com - занимает под 400Мб.
E-Man : Life begins at 1000Mhz!
Ответ отправлен: 11.05.2004, 04:11
Отправитель: _vt
Отвечает Foamplast
Здравствуйте, felicson!
Дезинформация, однозначно. Полный весит 470 Мб, а самый полный - около 2 Гб. Первый можно бесплатно скачать с http://www.microsoft.com/msdownload/platformsdk/sdkupdate/, а второй купить на базаре, ибо легальный будет стоить, как несколько компьютеров.
Ответ отправлен: 11.05.2004, 22:09
Отправитель: Foamplast
Вопрос № 5250 |
Чем отличаются функции GlobalAlloc и LocalAlloc?
И правда ли что они выделяют блок памяти кратный 4к.
Pushkoff
Вопрос отправлен: 10.05.2004, 00:34
Отправитель: Pushkoff
[Следующий вопрос >>] [Список вопросов]
Отвечает Dark_Lord
Здравствуйте, Pushkoff!
Ничем!
Зависит от версии Windows, обычно кратный 64к
Ответ отправлен: 10.05.2004, 18:44
Отправитель: Dark_Lord
Отвечает Pawel
Доброе время суток, Pushkoff!
1)Ничем.
2)Да, но это может зависеть от версии.
Ответ отправлен: 10.05.2004, 21:34
Отправитель: Pawel
Отвечает Dragoon
Здравствуйте, Pushkoff!
1)Ничем.
Под Windows плоская модель памяти и каждый сегмент размером 4 гб.
2) Правда.
Ответ отправлен: 10.05.2004, 11:49
Отправитель: Dragoon
Отвечает _vt
Доброе время суток, Pushkoff!
Выдержки из MSDN и мои комментарии:
The GlobalAlloc function allocates the specified number of bytes from the heap. Win32 memory management does not
provide a separate local heap and global heap.
Т.е. в Win32 API нет разницы между GlobalAlloc и LocalAlloc - они сохранены для совместимости с Win 3.1
Note The global functions are slower than other memory management functions and do not provide as many features. Therefore, new applications should use the heap functions.
Следовательно, в современном API используются такие функции - HeapCreate, HeapAlloc, HeapDestroy и пр.
Memory allocated with this function is guaranteed to be aligned on an 8-byte boundary.
Да, они выделяют блок памяти, кратный 8 байтам = 4 кбайтам.
E-Man : Life begins at 1000Mhz!
Ответ отправлен: 11.05.2004, 04:11
Отправитель: _vt
Отвечает Foamplast
Доброе время суток, Pushkoff!
Они отличаются от HeapAlloc() тем, что безнадёжно устарели. Современным программам следует использовать функции GetProcessHeap() (или HeapCreate() - HeapDestroy() для растущей кучи), HeapAlloc() и HeapFree(). К тому же, это удобнее.
P.S. Видимо, когда-то при динозаврах одна из этих функций выделяла память из локальной кучи, а вторая - из глобальной. Сейчас это аболютно всё равно.
Ответ отправлен: 11.05.2004, 22:09
Отправитель: Foamplast
Вопрос № 5251 |
Здравствуйте уважаемые эксперты!
1. Я хочу чтобы запрос который я послал с браузера вернулся к нему обратно ввиде странички, а не как файл..............я так понимаю этот запрос надо оформить в виде html кода.........а я незнаю как добавить к полученным данным пару тегов?
2. И еще запрос не хочет на консоль выводиться...........
3. И еще в win2k под IE мой сервер не пашет а из оперы свободно почему?
Приложение:
Вопрос отправлен: 10.05.2004, 01:45
Отправитель: Dr
[Следующий вопрос >>] [Список вопросов]
Отвечает Foamplast
Здравствуйте, Dr!
Сделайте надлежащую обработку ошибок. У Вас приложение вываливается по GPF.
Ответ отправлен: 13.05.2004, 23:35
Отправитель: Foamplast
Вопрос № 5252 |
Будьте добры помогите написать следующую часть программы, нужно обрабатывать нажатие Ctrl, если нажато в нечетный раз, то все нажатые клавиши например q заменяется на й,
w заменяется на ц, e на у, r на к, т.е. что-то похожее на драйвер русской клавиатуры, если Ctrl нажат в четный раз переходим к старому обработчику INT 9. Заранее благодарен за помощь.Вот, что я смог написать, а обработчик незнаю даже с чего начать.
Приложение:
Вопрос отправлен: 10.05.2004, 11:36
Отправитель: Саша (zevskl@tut.by)
[Следующий вопрос >>] [Список вопросов]
Отвечает Стас
Добрый день, Саша!
С Ctrl нужно быть осторожней. Ведь может быть что человек хочет нажать Ctrl-Break скажем. Из этого следует, что нужно в момент нажатия Ctrl поставить флаг, уйти на обработку настоящего INT9. В следующий заход в Int9 проверить, что это отпускается Ctrl, только тогда поставить флаг переключения раскладки и снова бежать на настоящий INT9.
А если при входе в свой INT9 выясняется, что нажата(отпущена) не Ctrl, обнуляем флаг нажатой Ctrl.
Получаем код нажатой клавиши. Проверить чтобы это была одна из буквенных клавиш, если это не так отдать управление настоящему INT9.
Иначе записать в буффер клавиатуры (0:41a(голова буферра),0:41c(хвост)) подменненный код исходя из флага раскладки клавиатуры. И проигнорировать настоящий INT9.
Примерно так.
Обращайся если что.
Ответ отправлен: 10.05.2004, 13:50
Отправитель: Стас
Отвечает Евгений Иванов
Здравствуйте, Саша!
Тебе нужно запускать старый обработчик всегда.
Но потом, после него, проверять, и если нажата клавиif Ctrl, то в буфере клавиатуры (а стандартный обработчик там оставил коды нажатой клавиши) менять то, что тебе нужно. Ясно?
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 10.05.2004, 15:33
Отправитель: Евгений Иванов
Отвечает Pawel
Доброе время суток, Саша!
Ставишь свой обработчик, но запоминаешь старый.
Когда проверишь код клавиши в буфере то выполняешь свои действия и если нужно переходишь на старый обработчик.
Ответ отправлен: 10.05.2004, 21:39
Отправитель: Pawel
Отвечает Ayl
Приветствую Вас, Саша!
Я бы делал так.
Читаем порт 60h. Если нажат Ctrl - изменяем флаг (кстати, это можно делать одной командой:
xor [U1], 1 - тогда при четных нажатиях в U1 будет 0, при нечетных - 1 (вначале в U1 надо записать 0)
). Выходим, очищая контроллер клавиатуры.
Если же нажато что-то другое, запоминаем указатель хвоста буфера клавиатуры (ячейка 0040:001C) и вызываем старый обработчик 9-го прерывания. Чтобы не заморачиваться с конвертацией скен-кодов в символы. 9-ку вызываем через call. После чего проверяем флаг нажатий Ctrl, и если он установлен, то считываем значение из буфера клавиатуры по запомненному указателю хвоста (смещение в сегменте 0040) и перекодируем его в русскую раскладку. Результат оставляем в той же ячейке.
Буфер клавиатуры - это циклическая очередь из 16-ти слов. Тебя будут интересовать младшие байты каждого слова.
Ответ отправлен: 11.05.2004, 17:44
Отправитель: Ayl
Вопрос № 5253 |
Здравствуйте.
Я начинающий программист на Assembler'е под DOS. Под Windows пишу более менее.
Но к сожалению в университете мы проходим dos'овский ассемблер. Для экзамена "автоматом" дали 4 задания, 3 из которых я сделал. А как сделать 4-ое не знаю. Поэтому решил спросить у вас.
Итак, необходимо написать программу, которая бы при включенном индикаторе NumLock печатала русскими буквами, при выключенном - английскими буквами.
Заранее огромное спасибо!
Вопрос отправлен: 10.05.2004, 16:19
Отправитель: ProLamer
[Следующий вопрос >>] [Список вопросов]
Отвечает Стас
Здравствуйте, ProLamer!
Писать саму прогу не буду, а действовать надо примерно так.
Вешаешь на 9 прерывание свой обработчик, работающий ПОСЛЕ основного, который если по адресу 0:417 5 бит равен=1 (test 0:417h,20h)- NumLock горит - заменяешь код в буффере клавиатуры (0:41a начало, 0:41с конец) на свой.
Например английская буква "а" имеет код "61 1E", меняешь на "E4 00". Всё!
Ответ отправлен: 10.05.2004, 21:58
Отправитель: Стас
Отвечает Pawel
Приветствую Вас, ProLamer!
Ставишь свой обработчик для int клавы.
В котором проверяешь состояния num loock переключаешь раскладку и переходишь на старый обработчик.
Ответ отправлен: 10.05.2004, 21:41
Отправитель: Pawel
Отвечает Ayl
Здравствуйте, ProLamer!
Очень просто. Индикатор NumLock определяется установкой/сбросом бита 5 байта по адресу 0040:0017.
Т.о. тебе нужно проверять этот бит и при необходимости производить перекодировку. Насколько я понял, тебе даже не нужно перехватывать прерывания. Т.е. ты вызываешь функцию чтения клавиши через int 16h (0 или 10h) и после этого проверяешь статус NumLock. И перекодируешь.
Ответ отправлен: 11.05.2004, 17:49
Отправитель: Ayl
Отвечает Foamplast
Добрый день, ProLamer!
Здесь есть существенная разница, должна ли программа делать это внутри себя или же модифицировать ввод других программ. В первом случае просто необходимо при вводе символа узнавать, не нажата ли NumLock, и ,соответственно, печатать одни символы, либо другие. А вот во втором придётся писать резидентную программу, перехватывающую прерывание клавиатуры и заполняющую системную очередь символов. Таких примеров должно быть немерено в сети. Советую ресурс ya.ru.
Ответ отправлен: 11.05.2004, 22:09
Отправитель: Foamplast
Отвечает Acid Burn
Здравствуйте, ProLamer!
Ставишь свой обработчик прерывания клавиатуры на INT 9h,в котором описываешь проверку бита нужной клавиши (по адресу 40:17 - байт состояния клавиатуры). И при нужном значении бита №5 (1 - numlock нажат) заменяешь скан код символов
Ответ отправлен: 11.05.2004, 23:08
Отправитель: Acid Burn
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (25) C / C++ (14) Perl (4) Builder / Delphi (19) Pascal (20) Basic / VBA (4) Java / JavaScript (4) PHP (12) Криптография (8) WinAPI (10) Радиоэлектроника (5) |
Пользователю Windows 95/98/Me (36) Windows NT/2000/XP (53) "Железо" (28) Поиск информации (14) |
Администратору Windows NT/2000/XP (27) Linux / Unix (9) |
Юристу Гражданское право (10) Семейное право (7) Трудовое право (9) КоАП (6) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||