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

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


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

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

Выпуск № 639
от 18.09.2003, 11:40

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


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

Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 143.84
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 117.6
[Подробней >>]
_vt
Статус: Профессиональный
Общий рейтинг: 122.71
[Подробней >>]
 
ASMодей
Статус: Профессиональный
Общий рейтинг: 112.94
[Подробней >>]
dr_dolhpin
Статус: Доверительный
Общий рейтинг: 146.93
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.18
URL: Программирование
[Подробней >>]
 
Beeblebrox
Статус: Профессиональный
Общий рейтинг: 107.28
URL: Beeblebrox / TMA HomePage
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 107.12
URL: Savage Metal Club - жизнь в стиле рок-н-ролл
Телефон: +7 901 710 3146
[Подробней >>]
Hangatyr
Статус: Опытный
Общий рейтинг: 112.19
[Подробней >>]
 
Dark_Lord
Статус: Профессиональный
Общий рейтинг: 110.97
[Подробней >>]
Maverick
Статус: Профессиональный
Общий рейтинг: 124.5
URL: Эхоконференция по вирмейкингу
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]


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

Вопрос № 4127. Доброго времени суток, уважаемые эксперты! У меня вопрос - как правильно произносится название регис... (ответов: 3)
Вопрос № 4128. Здраствуйте уважаемые эксперты! У меня проблемы со стеком в защищенном режиме. Когда я задаю SS, то ... (ответов: 2)
Вопрос № 4129. Уважаемый Роберт, касательно вопроса 4093, точнее, вашего ответа на него. Р6 - это по Интеловской л... (ответов: 1)
Вопрос № 4130. Уважаемые эксперты! Прошу разьяснить мне, что означает порт 92h. Встретил в программе инструкцию с э... (ответов: 2)
Вопрос № 4131. Добрый день ! Мой вопрос связан более со схемотехникой, чем с программированием. Не задавал бы его с... (ответов: 1)
Вопрос № 4132. Доброго времени суток, господа! Извените собственнно не за вопрос, а скорее его отсутствие. Уж до пя... (ответов: 3)
Вопрос № 4133. Уважаемые эксперты , как на win32 на Ассемблере получить значения конкретных параметров окружения оп... (ответов: 4)
Вопрос № 4134. Привет, господа! (Кстати в рассылке по NT появилась дама - Trinity - отвечает неплохо! :)) Вопросы o... (ответов: 1)
Вопрос № 4136. Доброе время суток друзья.Возвращаясь к вопрорсу № 4119 А как мне получить сразу три окна на экране.... (ответов: 1)
Вопрос № 4137. Приветствую вас ЭксперТы. Всего несколько вопросов... 1) Есть ли среди WinAPI ф-ция для форматирован... (ответов: 2)
Вопрос № 4138. Уважаемые эксперты , как под Win32 на Ассемблере работать с файлами, открыть,создать,закрыть,писать,... (ответов: 7)

Вопросов: 11, ответов: 27


 Вопрос № 4127

Доброго времени суток, уважаемые эксперты! У меня вопрос - как правильно произносится название регистров EAX,EBX,ESI,EIP,CS,DS,AX,CX,AH,AL,BH,BL,IDT,GDT... и т.д. и как произносить CPU,PCI,ISA, а также MOV,XOR,SHR,HEX... Я читаю как еакс,ебэикс,цэикс,КЭЗЭ,ДЭЭС. Мне кажется,что не красиво звучит ИАЙПИ,ИСИАЙ,СИПИЮ или это неправильно? Пожалуста напишите как правильно эти слова произносятся и как произносятся на програмерском жаргоне, и как произносят их буржуйские программеры. Я изучаю асм самостоятельно, и не знаю, как правильно вслух прочитать исходники на асме. и еще я нашел страничку с исходниками miscellaneous.newmail.ru неужели так сложно и некрасиво пишут буржуи биосы?



Вопрос отправлен: 10.09.2003, 17:43
Отправитель: Aprog (Aprog@hotmail.ru)

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

Отвечает Евгений Иванов

Здравствуйте, Aprog!
По латински.
А вообще главное не как произносить, а как использовать!


Ответ отправлен: 13.09.2003, 21:29
Отправитель: Евгений Иванов


Отвечает Ayl

Приветствую Вас, Aprog!
Ну, насколько я понимаю, никаких правил нет. Это тоже самое, как правильно произносить иностранные фамилии. Например, наши комментаторы долгое время называли одного футболиста сб.Норвегии и Манчестер Юнайтед как Сульшер. Потом кто-то, видимо, накапал, что произношение не соответствует транскрипции, теперь его называют Солькскъяйер. И ничего, все прекрасно друг друга понимают.
Кстати, как каверкают фамилии наших людей на Западе - уму непостижимо!

Я обычно регистры называю по латинской транскрипции:
EAX - е-а-икс, EBX - е-бэ-икс, CS - цэ-эс (а не "КЭЗЭ", или что ты имел в виду под этим сочетанием?). AH - а-аш или а-хай (от A-high), AL - а-эль или а-лоу (A-low). IDT - и-дэ-тэ, GDT - же-дэ-тэ или гэ-дэ-тэ.

CPU - си-пи-у или цэ-пэ-у, PCI - пи-си-ай, ISA - просто иса.

Названия команд - либо как есть (мов, ксор, эс-аш-эр, хекс), либо расшифровывая аббревиатуру и произнося по-английски (move, subtract, add with carry и т.д.).

Как произносят буржуйские программеры - не знаю. Может, кто другой напишет.

> [...] не знаю, как правильно вслух прочитать исходники на асме [...]

Это что у тебя за литературные чтения? :-) Или ты так детям сказки на ночь читаешь:
"А сейчас, дорогие мои, я прочитаю вам код драйвера клавиатуры... Закрывайте глаза и попытайтесь представить себе эту картину. На каком адресе мы вчера закончили?" :-)


Ответ отправлен: 11.09.2003, 17:33
Отправитель: Ayl


Отвечает _vt

Добрый день, Aprog!
> не знаю, как правильно вслух прочитать исходники на асме
Интересно, а кому ты читаешь исходники?? :-)) Маме на ночь?? :-))
Лично я произношу так:
е-а-икс, е-бэ-икс, е-си, е-и-пэ(иногда е-ай-пи по аналогии с TCP/IP), це-эс, де-эс, а-икс, це-икс, а-аш, а-эль, бэ-аш, бэ-эль(ой, знакомый мотив!), и-дэ-тэ, гэ-дэ-тэ, а также це-пе-у, пи-си-ай, и-са, и вдобавок мув, ксор, шр (именно шр!:)), хекс... Не вижу принципиальной разницы как это произносить - у тебя мама ,наверное, не буржуйский программер :), а они произносят скорее по правилам транскрипции родного языка...
> неужели так сложно и некрасиво пишут буржуи биосы?
А кто еще кроме буржуев пишет биосы? :-) Если можешь - пиши сам...

*** E-Man - very useful tool for experts***


Ответ отправлен: 10.09.2003, 23:15
Отправитель: _vt


 Вопрос № 4128

Здраствуйте уважаемые эксперты!
У меня проблемы со стеком в защищенном режиме.
Когда я задаю SS, то в большинстве случаев еще работает, но когда делаю push или pop, то комп перегружается.
В приложении дескриптор сегмента стека.
Стек размещен в сегменте 400h (real mode)
Этим куском програмы я задаю базу сегмента стека:
xor eax,eax
mov ax,400h
shl eax,4
mov [gdt_ss32.base1],ax
rol eax,16
mov [gdt_ss32.base2],al
После перехода в защищенный режим задаю SS и устанавливаю ESP
mov ax,ss32_sel
mov ss,ax
mov esp,100h
Подскажите пожалуста в чем проблема?


Приложение:


Вопрос отправлен: 10.09.2003, 22:31
Отправитель: Madman (yo-ho@km.ru)

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

Отвечает ASMодей

Здравствуйте, Madman!
Возможно это происходит из-за того, что ты используешь для стека сегмент "растущий вниз" (бит 2 у atr).
Вот привожу цитату из документации по процессору i486:
Для сегмента с расширением вниз смысл поля. Границы меняется на противоположный. Если для других типов сегмента допустимыми являются значения смещения в диапазоне от 0 до значения границы (вне этого диапазона генерируется исключение общей защиты), то для сегмента с расширением вниз значения в этом диапазоне, напротив, ведут к генерации исключения. Допустимыми смещениями для сегментов с расширением вниз являются те, что для сегментов других типов вызывают особую ситуацию. Сегменты с расширением вверх должны адресоваться смещениями, меньшими или равными границе сегмента. Смещения же в сегменты с расширением вниз всегда должны превышать значение границы сегмента. Такая интерпретация границы сегмента вызывает распределение области памяти в нижней части сегмента, когда граница сегмента увеличивается, что является правильным для стековых сегментов, поскольку они растут в направлении младшего адреса. Если стек помещается в сегменте, который не меняет своего размера, то этот сегмент не обязан быть сегментом с расширением вниз.
Так что вот :)
Да, теоретически такие сегменты были спроектирован именно для использования под стек, но практически, насколько я знаю, они используются очень редко. Попробуй сбросить этот бит и проверить как будет работать.
И еще: Intel рекомендует вместо связки команд
mov ss,...
mov esp,...
использовать одну команду LSS, иначе не гарантируется, что между этими командами не случится каких-то действий (вроде прерывания). Хотя, если прерывания заблокированы, то должно работать правильно (у меня во всяком случае работает).


Ответ отправлен: 11.09.2003, 09:01
Отправитель: ASMодей


Отвечает dr_dolhpin

Приветствую Вас, Madman!
У Вас проблема с таблицей GDT:
ss32_sel equ $-gdt_0
gdt_ss32:
.limit dw 0ffffh
.base1 dw 0
.base2 db 0
.atr db 10010110b [P][DPL][S][TYPE]
.lim_atr db 11000111b
.base3 db 0
так вот, у Вас задан тип для данного
сегмента как R/W Expand-Down (0110b), а
по поводу сегментов этого типа в мануале сказано:
For expand-down segments, the segment limit has the
reverse function; the offset can range from the segment
limit to FFFFFFFFH or FFFFh, depending on the setting of the B flag. Offsets less than the segment limit generate general protection exceptions.
Из вышесказанного заключаю, что в коде:
>xor eax,eax
>mov ax,400h
>shl eax,4
>mov [gdt_ss32.base1],ax
>rol eax,16
>mov [gdt_ss32.base2],al
>После перехода в защищенный режим задаю SS и устанавливаю >ESP
>mov ax,ss32_sel
>mov ss,ax
>mov esp,100h <----- Ошибка! 100h < лимита сегмента
>Подскажите пожалуста в чем проблема?
При загрузке esp, ничего и не должно происходить,
но когда процессор пытается записать адрес
по указателю стека (ESP) происходит GPF,
но поскольку обработчика исключения с
заветным номером 13 (#GP) у вас пока нет
то процессор переходит в неведомую даль,
т.е просто reboot !!!
Вот и все !
Надеюсь я вам помог !!!
Всего хорошего !


Ответ отправлен: 11.09.2003, 08:23
Отправитель: dr_dolhpin


 Вопрос № 4129

Уважаемый Роберт,
касательно вопроса 4093, точнее, вашего ответа на него. Р6 - это по Интеловской литературе название микроархитектуры процессоров Pentium Pro и до Pentium 3.
Cледовательно, Р6+ значит "Pentium Pro и позже". Так что зря Вы на вопрошающего наехали. А Ваш Пень4 "безо всяких +", попадает в категорию "и позже, хотя и не в саму Р6". Учитывайте, что P4 как замена "Pentium 4" - термин чисто уличный, а P6 - официальное название микроархитектуры серии процессоров, согласно литературе от производителя.
Вот так.



Вопрос отправлен: 10.09.2003, 23:06
Отправитель: Саня

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

Отвечает Bob Johnson

Добрый день, Саня!
Не воспринимай все так серьезно, Саня. Лучше прокомментируй команду: push offset [dbEnumNumbers+ecx].

* EMan1.5: ---===*** The game we play ***===---


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


 Вопрос № 4130

Уважаемые эксперты!
Прошу разьяснить мне, что означает порт 92h. Встретил в программе инструкцию с этим портом, а для чего не могу понять.
Спасибо.
Александр.



Вопрос отправлен: 10.09.2003, 23:12
Отправитель: Алексадр

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

Отвечает dr_dolhpin

Доброе время суток, Алексадр!
>Уважаемые эксперты!
>Прошу разьяснить мне, что означает порт 92h. Встретил в >программе инструкцию с этим портом, а для чего не могу >понять.
>Спасибо.
>Александр.
Через этот порт обычно управляют 20-й адресной линией
(A20 Gate),т.е. в обычном состоянии она закрыта, но через этот порт ее можно открыть.... Насколько я помню этим
управляет второй бит числа записываемого в этот порт.
Например:
in al,92h //Получить состояние A20
or al,00000010b //Установить A20 Gate
out 92h,al //Записать обратно в порт
// 20 Адресная линия открыта

Надеюсь помог...
Пока...



Ответ отправлен: 11.09.2003, 08:23
Отправитель: dr_dolhpin


Отвечает _vt

Здравствуйте, Алексадр!
Относится к контроллеру клавиатуры, также используется для включения линии A20 - для обращения к памяти выше мегабайта в реальном режиме - это такой баг в PC, впоследствии ставший фичей :)

*** E-Man - very useful tool for experts***


Ответ отправлен: 11.09.2003, 00:51
Отправитель: _vt


 Вопрос № 4131

Добрый день !
Мой вопрос связан более со схемотехникой, чем с программированием. Не задавал бы его сюда, но сам не смог найти ответа.
Итак. Где можно достать микросхему PC845 или её аналог (не оптом) в пределах России, а лучше Москвы?
Микросхема представляет из себя сборку из 4-х оптопар Дарлингтона. Сама оптопара Дарлингтона представляет из себя сборку из оптопары и усилительного NPN транзистора. Собирать свою схему без этой микросхемы просто замучаюсь, да и дороже выйдет. Надеюсь на вас.
Заранее благодарю
Тигран Калайджян
2:5020/4567.24



Вопрос отправлен: 11.09.2003, 16:25
Отправитель: Tigran Kalaidjian (kalaidjian@pochtamt.ru)

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

Отвечает Bob Johnson

Добрый день, Tigran Kalaidjian!
Сходи на радиорынок, если этот компонент реально достать, там ты по крайней мере узнаешь, каким способом. Еще попробуй поискать какие-либо фирмы, которые высылают детали почтой (я когда-то давно нашел одну в Екатеринбурге, кстати очень хорошие были там цены, но как я понял, со временем она перестала высылать детали почтой).

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 13.09.2003, 01:51
Отправитель: Bob Johnson


 Вопрос № 4132

Доброго времени суток, господа!
Извените собственнно не за вопрос, а скорее его отсутствие.
Уж до пяток задел вопрос №4091... даже точнее не вопрос а ответ на него от Fantomas.
>>...
>>Для изучения Assembler под Win32 знание Си тебе вообще нафиг не нужно, оно только запудрит тебе мозги !!!
Не знаю, как именно у вас обстоит дело со временем, но явно, за нормальный проект мало кто из экспертов (imho даже сообща, в ряде случаев - тем более сообща) возьмётся!
>>Все типы (HBRUSH, HANDLE, HPEN и т.п.) храняться в памяти в одном и том же виде - DWORD...
Вообще-то там НАМНОГО более храниться в формате DWORD... и такая строка - typedef unsigned char UCHAR; - к плохому не приводит :)...
>>И ВООБЩЕ, ПУСТЬ ЗНАЮТ ВСЕ: C++ - ОДИН БОЛЬШОЙ ГЛЮК !!!
>>...
Ну ёжки, дык наверное вам не преподавали объектное программирование нормальные преподы, которые знают толк в своём деле (имеют не малый практический опыт), и/или не доступны абстрактные понятия о которых собственно пишется в классике...
К примеру, как высказались абсолютное большинство экспертов, действительно MSDN и любые толковые help'ы написаны на английском (минимум технического английского) и приведены для языка C, знать который не столь обязательно... по вышеописаным (не у меня) причинам.
(от себя могу только конкретно привести, что нужно знать для работы с MSDN'ом - вызовы функций (именно порядок записи аргументов), описание структур, всякие define, typedef, работу указателей, ну и естественно типы... вроде как и всё)
>>Пиши на f-a-n-t-o-m-a-s@ukr.net, если нужна будет помощь по каким-нибудь языкам программирования !
Вряд ли по C данный человек чем поможет...
...Он с таким отношением к языкам высокого уровня похож, на малолетку юниксиста (зачастую именно линуксиста), которого кто-там из знакомых (более крутых хаЦкеров) подбил на использование именно юникса (в частности Linux'а, и 90 с БОльшим % под X'ами)...
..мало того вдобавок гэймера, который через сотню бестолковых вопросов (типа как на opennet.ru) заставляет подняться какую-нить пупер-игру... после чего мнит себя... (На Windows она и так без проблем пускалась... молчу). Просто для каждой задачи своё решение, и кричать (оффтопик) что XXX круче YYY в любом своём разговоре - как минимум глупо!
В итоге хочется добавить автору вопроса - имей своё мнение, естественно, основанное на опыте, знаниях... НО не ярко кричащих типов... (зачастую пустословов - ну если человек не понял С++ не нужно кричать на весь мир что это *бип*)
P.S. Хотя в своё время (время нескончаемой битвы BSD и Linux) меня один такой выскочка, своим громким криком о крутизне Linux'a, заставил понять как работают устройства в данных системах (суть заключалась в наличии драйверов в Linux'е для софт модема на чипсете PCTel PCT789, и соответственно их отсутствии для BSD систем)... Где-то, конечно, в глубине души я ему благодарен (было убито два месяца...), зато теперь смотреть на таких людей спокойно не могу!
P.P.S. мой мыл lam (at) indus.ru



Вопрос отправлен: 11.09.2003, 21:06
Отправитель: lam

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

Отвечает Beeblebrox

Доброе время суток, lam!
Первое хорошее письмо за много месяцев, поэтому пусть оно попадет в рассылку.

Ответ отправлен: 12.09.2003, 09:48
Отправитель: Beeblebrox


Отвечает _vt

Добрый день, lam!
Ну раз письмо попало в рассылку...


> наверное вам не преподавали объектное программирование нормальные преподы, которые знают толк в своём деле
По этому вопросу очень хорошо высказался когда-то Bob Johnson: встретить "нормальных преподов" очень тяжело, разбираться нужно самому
> >>Для изучения Assembler под Win32 знание Си тебе вообще нафиг не нужно, оно только запудрит тебе мозги !!!
Я бы сказал по другому: для изучения программирования под Win32, знания ассемблера вообще нафиг не нужно, только мозги запудрит :-)) Только если разобраться с программированием под Win32 на С (именно на С, не на C++, а тем более не с использованием MFC,OWL,VCL и др.), можно и знания ассемблера применить... :(( Тем более что для прикладного программирования у ассемблера под Win32 нету никаких серьезных преимуществ, кто-бы там что ни говорил...
> Вряд ли по C данный человек чем поможет...
Такой человек и по asm ничем не поможет :(

*** E-Man - very useful tool for experts***


Ответ отправлен: 12.09.2003, 15:59
Отправитель: _vt


Отвечает Bob Johnson

Здравствуйте, lam!
Ну зачем же столько эмоций? С, конечно, является практически единственным языком, на котором можно долго и много писать - тут спорить бессмысленно. Но можно изучать асм и без него. Когда я учил асм для спектрума, я вообще не знал, что есть С++. Когда учил под РС - писал на паскале, а про С просто слышал. Ведь по большому счету знание С++ нужно только для изучения API функций (чтобы понять, как ее вызвать) и для выдергивания констант и структур из h файлов... Хотя я уже где-то это писал :)

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 13.09.2003, 01:53
Отправитель: Bob Johnson


 Вопрос № 4133

Уважаемые эксперты , как на win32 на Ассемблере получить значения конкретных параметров окружения операционной среды, ну типа такой строки как
SET PATH=c:windows;c:windowssystem;........
Благодарю за помощь...



Вопрос отправлен: 12.09.2003, 14:32
Отправитель: greg

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

Отвечает Gibbel

Приветствую Вас, greg!
DWORD GetEnvironmentVariable(
LPCTSTR lpName,
LPTSTR lpBuffer,
DWORD nSize
);


Ответ отправлен: 12.09.2003, 15:00
Отправитель: Gibbel


Отвечает dr_dolhpin

Приветствую Вас, greg!
Используй функцию API GetEnviromentStrings, она
возвращает указатель на блок окружения программы.
Вот ее прототип:
LPVOID GetEnvironmentStrings(VOID);
она находится в kernel32.dll
See also : MSDN
Пока !


Ответ отправлен: 12.09.2003, 15:45
Отправитель: dr_dolhpin


Отвечает _vt

Добрый день, greg!
GetEnvironmentStrings

*** E-Man - very useful tool for experts***


Ответ отправлен: 12.09.2003, 18:56
Отправитель: _vt


Отвечает Bob Johnson

Приветствую Вас, greg!
GetEnvironmentVariable и GetEnvironmentStrings.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 13.09.2003, 01:54
Отправитель: Bob Johnson


 Вопрос № 4134

Привет, господа!
(Кстати в рассылке по NT появилась дама - Trinity - отвечает неплохо! :))
Вопросы offtopic(просто некуда задать!): есть ли у кого архив старых форумов??? Поделитесь...
2 baldr: У тебя точно должны сохраниться... Вышли, pls, если можешь, в формате твоей программы O-Forum... У меня они раньше были, чисто случайно удалил:(
2 Admins: У меня почему-то совсем не получается добавить своё мнение на форумах, если раньше такое было иногда, теперь сколько не пытаюсь - не выходит... Что делать?
P.S. В рассылку отправлять совсем не надо...



Вопрос отправлен: 12.09.2003, 23:51
Отправитель: _vt (vt@tamb.ru)

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

Отвечает Bob Johnson

Приветствую Вас, _vt!
> (Кстати в рассылке по NT появилась дама - Trinity - отвечает неплохо! :))
А кто тебе сказал, что это - дама? У нас тоже была Наталья Березовец, которая оказалась неким 00A, 00B или 00F с wasm.ru. Нет, если она действительно девушка и отвечает неплохо, я бы с ней с удовольствием встретился (не подумайте ничего - только для общения).
> 2 baldr: У тебя точно должны сохраниться...
Должны быть у Tiger.
> если раньше такое было иногда, теперь сколько не пытаюсь - не выходит... Что делать?
Я для себя решение уже нашел - я перестал использовать новые форумы вообще. Мне не нравится, что там необходимо регистрироваться - форум (как и любовь) должен быть свободным. Поэтому рекомендую всем не использовать такие форумы.
Да и сам посмотри - кто там теперь общается. Раньше помню за неделю можно было набрать 100 сообщений, а теперь... только мелкие разборки на тему, что кто-то не то что-то ответил (но какие-то они даже не прикольные, читать не интересно). К тому же сообщения не пронумерованы (в смысле каждое), номер страницы вообще плохо связан с номером сообщений (на 14-й сообщения с 131 по 140...)
Мое мнение по этому вопросу просто - на форуме системы русфак должно быть только две группы - это пользователи и эксперты. Причем, если ответ отправлен экспертом, то рядом с ним должно быть указано количество (на тот момент времени!) отправленных им ответов. Но уж только не какие-то там звездочки, когда 4-х вообще и не существует.
Если модернизация самого русфака, которая вот уже второй год все планируется, будет в том же духе, я даже не знаю, что сказать - меня вполне устраивает все в том виде, как оно есть сейчас. С умеренной долей юмора можно читать все ответы. А уж если там лажа, то пусть и все видят, что эксперт облажался (ведь из-за этого на вопрос можно дать ответ только один раз?).
> P.S. В рассылку отправлять совсем не надо...
Да ладно, пусть все знают, что в NT появилась девушка!!!
Девушка из NT! Мы любим тебя!!! Приводи к нам своих подруг! :)

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 13.09.2003, 01:52
Отправитель: Bob Johnson


 Вопрос № 4136

Доброе время суток друзья.Возвращаясь к вопрорсу № 4119
А как мне получить сразу три окна на экране.
Подскажите плиз.Заранее благодареню Юрий.



Вопрос отправлен: 13.09.2003, 09:09
Отправитель: Yury (ch_y@mail.ru)

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

Отвечает Bob Johnson

Здравствуйте, Yury!
Вызвать MessageBox из трех потоков одновременно.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 13.09.2003, 16:39
Отправитель: Bob Johnson


 Вопрос № 4137

Приветствую вас ЭксперТы.
Всего несколько вопросов...
1) Есть ли среди WinAPI ф-ция для форматирования разделов HDD и как ею пользоваться.
2) Кто-нибудь, что-нибудь знает про IcmpSendEcho и IcmpSendEcho2 из ICMP.DLL. Какие параметры они принимают. А может у кого-нибудь заволялся ICMPAPI.H может вышлете, говорят он где-то в MS SDK есть.
3) Как программно определить IP-адрес DHCP и DNS серверов. Ну еще вообще-то и маска подсети нужна....
Зарание благодарен zOmegA



Вопрос отправлен: 14.09.2003, 02:44
Отправитель: zOmegA (zOmegA@inbox.kz)

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

Отвечает dr_dolhpin

Здравствуйте, zOmegA!
>Приветствую вас ЭксперТы.
>Всего несколько вопросов...
>1) Есть ли среди WinAPI ф-ция для форматирования разделов >HDD и как ею пользоваться.
нет, функций API таких нет, это все реализуется
посредством драйвера HDD.
>2) Кто-нибудь, что-нибудь знает про IcmpSendEcho и >IcmpSendEcho2 из ICMP.DLL. Какие параметры они принимают.
см. приложение (это все из MSDN)
>А может у кого-нибудь заволялся ICMPAPI.H может вышлете, >говорят он где-то в MS SDK есть.
к сожалению этого у меня нет...
>3) Как программно определить IP-адрес DHCP и DNS серверов. >Ну еще вообще-то и маска подсети нужна....
Часть из этого можно получить функцией GetNetworkParams
она находится в Iphlpapi.dll
>Зарание благодарен zOmegA
Все пока !



Приложение:

Ответ отправлен: 15.09.2003, 08:26
Отправитель: dr_dolhpin


Отвечает Bob Johnson

Добрый день, zOmegA!
Я же тебе в прошлый раз ответил (вопрос № 4110), причем со ссылками и примерами - зачем второй раз полностью аналогичный вопрос задавать?

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 15.09.2003, 23:06
Отправитель: Bob Johnson


 Вопрос № 4138

Уважаемые эксперты , как под Win32 на Ассемблере работать с файлами, открыть,создать,закрыть,писать,читать,переместить указатель,это если работа под виндой с файлами похожа на работой под досом, или есть некоторые особенности о которых я не знаю , заранее благодарен....



Вопрос отправлен: 14.09.2003, 11:37
Отправитель: greg

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

Отвечает Hangatyr

Доброе время суток, greg!
Есть несколько способов, например FileMapping:
1. С помощью CreateFile получаем хэндл файла.
2. Передаем этот хэндл в качестве аргумента функции CreateFileMapping.
3. Отображаем его (файл) в память с помощью MapViewOfFile. Теперь запись/чтение из этой области памяти эквивалентно записи/чтению файла, соответственно не нужно перемещать указатель и т.п.
Разумеется, ReadFile, WriteFile, etc никто не отменял.

Ответ отправлен: 14.09.2003, 13:30
Отправитель: Hangatyr


Отвечает Dark_Lord

Приветствую Вас, greg!
Советую скачать API Help (http://learnasm.narod.ru/download/win32.rar), 5 Мб запакованном виде, 28 в распакованном, но достаточно полно охватывает все аспекты программирования под Windows, в ней зайти в "Указатель"("Index") и набрать, например CreateFile, там будет представлена достаточно полная информация об этой функции, а в конце будут представлены линки на функции той-же темы...

Ответ отправлен: 14.09.2003, 13:46
Отправитель: Dark_Lord


Отвечает Bob Johnson

Здравствуйте, greg!
С помощью функций CreateFile, ReadFile, WriteFile, SetFilePointer, CloseHandle. Описание есть в MSDN, Win32 prog ref и в интеренете. Также на моей странице есть кое-какая документация.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 14.09.2003, 16:12
Отправитель: Bob Johnson


Отвечает _vt

Добрый день, greg!
Да нет - всё также, только в структуре W32_FIND_DATA у файла больше аттрибутов чем в DOS FCB-блоках...

*** E-Man 1.5( edition 04) - life is just a game***


Ответ отправлен: 14.09.2003, 16:57
Отправитель: _vt


Отвечает Евгений Иванов

Приветствую Вас, greg!
CreateFile
SetFilePointer
ReadFile
WriteFile
Тут такой же номерочек тебе выдаётся.
Некоторые вещи даже попроще и удобнее; например, есть готовая функция для
определения размера файла GetFileSize.


Ответ отправлен: 15.09.2003, 05:25
Отправитель: Евгений Иванов


Отвечает dr_dolhpin

Приветствую Вас, greg!
>Уважаемые эксперты , как под Win32 на Ассемблере работать >с файлами,открыть,создать,закрыть,писать,читать,переместить
>указатель,это если работа под виндой с файлами похожа на >работой под досом, или есть некоторые особенности о >которых я не знаю , заранее благодарен....
Программирование на ассемблере, под Windows, накже как и на
языках высокого уровня (C++/ObjectPascal), опирается на
прослойку API (Application Program Interface), в Windows это
Win32 API. Для работы с большинством объектов ОС Windows используются соответствующие API функции, которые реализованы в dll библиотеках системы.
От доса, вчастности работа с файлами отличается принципиально. Уже нет никаких прерываний (типа Int 21h).
Для работы с файлами нужно использовать функции :
OpenFile
CloseHandle
DeleteFile
CreateFile
это всё функции API.
Вызов реализуется посредством обычного Call, либо
посредством invoke макроопределения (зависит от типа транслятора ассемблера).
Параметры передаюстя через стек.
Результат возвращается через регистры.
Для более подробного представления о вызове
функций API обратитесь к соответствующей документации.
Она скорее всего есть в комплекте с Вашим ассемблером.
Пример вызова функции GetMessage:
push L 0 ; Параметры в стек
push L 0
push L 0
push offset msg ; Указатель на сообщение
call GetMessage ; Вызов функции
cmp ax, 0 ; обработка результата
je end_loop
это вызов функции с прототипом:
BOOL GetMessage(
LPMSG lpMsg,
HWND hWnd,
UINT wMsgFilterMin,
UINT wMsgFilterMax);
Надеюсь помог. Пока !



Ответ отправлен: 15.09.2003, 08:27
Отправитель: dr_dolhpin


Отвечает Maverick

Здравствуйте, greg!
Опять же посылаю к вирусам, а еще говорят, что вири-отстой :) На wasm.ru есть туториал по написанию вирусов под вин32, там рассмотрена подробно работа с файлами.


Ответ отправлен: 15.09.2003, 10:55
Отправитель: Maverick



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (32)
C / C++ (28)
Perl (6)
Builder / Delphi (21)
Pascal (22)
Basic / VBA (10)
Java / JavaScript (12)
PHP (11)
Криптография (9)
WinAPI (16)
Пользователю
Windows 95/98/Me (48)
Windows NT/2000/XP (61)
"Железо" (37)
Поиск информации (22)
Администратору
Windows NT/2000/XP (28)
Linux / Unix (11)
Юристу
Гражданское право (10)
Семейное право (7)
Трудовое право (8)
КоАП (6)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.


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

В избранное