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

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


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

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

Выпуск № 719
от 05.05.2004, 13:20

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


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

Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 133.18
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 116.58
[Подробней >>]
Foamplast
Статус: Профессиональный
Общий рейтинг: 146.59
URL: мой личный сайт
[Подробней >>]
 
Pawel
Статус: Профессиональный
Общий рейтинг: 158.42
[Подробней >>]
_vt
Статус: Профессиональный
Общий рейтинг: 118.01
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 111.73
[Подробней >>]


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

Вопрос № 5199. Всем привет! Дополнительно к вопросу 5193 уточняю, что приложение 16-разрядное, т.е. EAX, EBX ... не... (ответов: 3)
Вопрос № 5200. Всем привет! И еще одно дополнение к вопросам 5193 и 5199. Благодаря любезному Ayl как работать с 32... (ответов: 4)
Вопрос № 5201. мда... один пишет правильно другой - не правильно, ну да ладно пищу для размышлений получил :) но по... (ответов: 3)
Вопрос № 5202. Уважаемые эксперты! У меня тут неувязочка есть - два окна: одно родительское, а другое дочернее. До... (ответов: 2)
Вопрос № 5203. Кто может указать направление поиска для реализации взаимодействия моей проги на ассемблере с сервер... (ответов: 3)
Вопрос № 5204. как на Ассемблере реализовать динамические структруры данных, в частности двоичное дерево поиска, ка... (ответов: 2)
Вопрос № 5205. Здравствуйте! Я почти закончил игру в формате com "Быстрый счет" программа работает,но ко... (ответов: 4)
Вопрос № 5206. Добрый день, уважаемые эксперты. Прошу прощения за оффтопик. я недавно подписался на расслку rusfaq.... (ответов: 2)
Вопрос № 5207. Здравствуйте эксперты! Не иожете ли помочь: У меня есть ОКНО с кнопками и полями редактирования спра... (ответов: 3)

Вопросов: 9, ответов: 26


 Вопрос № 5199

Всем привет!
Дополнительно к вопросу 5193 уточняю, что приложение 16-разрядное, т.е. EAX, EBX ... нет. Каким образом из отдельных четырех байт в памяти - byte1, byte2, byte3, byte4 получить одно двойное слово? Есть число FA1DE5C8h, соответственно, в byte1-FAh, в byte2-1Dh, в byte3-E5h, в byte4-С8h. Можно ли их поместить в одно двойное слово - dword-FA1DE5C8h? Дальше как перегнать в код ASCII мне понятно.
Спасибо.



Вопрос отправлен: 29.04.2004, 14:43
Отправитель: aplet (aplet_ai@mail.ru)

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

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

Доброе время суток, aplet!
Бери его тёпленьким :))
Что за чушь ты порешь?!
Байты есть байты, а слова есть слова.
Назови обезьяну коровой, она всё равно останется обезьяной.
Так и в программировании.
Просто не важно, что ты думаешь.
Машина тупая и она понимает только команды программиста.
Не пытайся её обмануть ;)
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 29.04.2004, 23:30
Отправитель: Евгений Иванов


Отвечает Ayl

Добрый день, aplet!
А тебе не пофигу ли, 16-разрядное у тебя приложение, или 32-разрядное. Я же не прошу тебя делать АДРЕСАЦИЮ через 32-разрядные регистры! Я просто ИСПОЛЬЗУЮ 32-разрядные регистры для выполнения расчетов, что позволяет система команд процессоров 80386+.
Если ты сомневаешься, что в реальном режиме и для 16-разрядных приложений можно использовать любые регистры (в т.ч. и 32-разрядные) - то зря. Может, ты еще думаешь, что в 32-разрядных приложениях нельзя использовать 16-разрядные регистры? Это не так, поверь мне.
Кстати, если ты откроешь справочник по системе команд процессора Intel 80386+, то встретишь там два префикса - 66h и 67h. Первый указывает процессору изменить для текущей команды размер операндов (с 16 разрядных (ax, bx etc) на 32 разрядные (eax, ebx etc) и обратно), а второй - размер адресации. Так что в твоей проге во всех строчках, где будут использоваться 32-разрядные операнды, будет стоять префикс 66h. Что немного увеличит длину программы и уменьшит скорость исполнения, но это не будет заметно.
И еще. Если ты внимательно посмотришь на код, который я привел, то увидишь, что я использую для записи в память 16-разрядную адресацию (через регистр si), т.е. это программа именно для реального режима (и ДОС при использовании 21-го прерывания для вывода строки).
И маленькая поправка к примеру. После деления к регистру DL нужно прибавить значение 30h для получения ASCII-кода цифры. Прошу прощения за ошибку.


Ответ отправлен: 29.04.2004, 18:08
Отправитель: Ayl


Отвечает Foamplast

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

Вы так всех запутаете. Двойное слово - это совокупность 4 байт в памяти. То есть если у Вас есть "отдельные четыре байта в памяти", то это и есть двойное слово. Вы сами сказали, что машина - 16-разрядная. Соответственно термин "двойное слово" не совсем уместен. Интересно, что Вам понятно про "перегонку" в ASCII, если в регистре 16 бит.




Ответ отправлен: 02.05.2004, 03:04
Отправитель: Foamplast


 Вопрос № 5200

Всем привет!
И еще одно дополнение к вопросам 5193 и 5199. Благодаря любезному Ayl как работать с 32-х разрядными числами я разобрался. Но вопрос все равно остается - МОЖНО ЛИ И, ЕСЛИ ДА, ТО КАК, РАБОТАТЬ С ЧИСЛАМИ, РАЗРЯДНОСТЬ КОТОРЫХ ПРЕВЫШАЕТ РАЗРЯДНОСТЬ РЕГИСТРОВ? Реальная проблема - через порт LPT принимаю побайтно числа различной разрядностью, до 32-х включительно разобрались как работать. А вот если принимается, например, 64-х разрядное число по частям в виде 8 байт от внешнего таймера, с которыми необходимо провести арифметические операции и затем вывести число в десятичном виде в ASCII кодах в текстовый файл.
Пример. Имеем 64-х разрядное число, которое принято через LPT по частям в виде восьми байт: byte1,byte2,byte3,byte4,byte5,byte6,byte7,byte8, далее необходимо это число разделить на 5, а результат деления (разрядность которого также больше разрядности регистров) уже преобразовать в дестятичный вид и в ASCII-коды.
Итак, можно ли и если да,то как объединить восемь байт FAh,C9h,56h,C1h,7Dh,92h,DCh,F1h в одно учетверенное слово - FAC956C17D92DCF1h и потом разделить его на 5. Округление не допускается.
Спасибо.
Александр



Вопрос отправлен: 29.04.2004, 21:54
Отправитель: aplet (aplet_ai@mail.ru)

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

Отвечает Foamplast

Приветствую Вас, aplet!

Для работы с 64-разрядными числами необходим процессор AMD Anthlon 64, а для работы с 128-разрядными - использование мультимедийных регистров Athlon64 или Itanium :)

Приёмы работы с числами, разрядность которых превышает разрядность регистров, называются "длинной" арифметикой. Арифметику Вы когда-то уже изучали! Это было в 1-3 классах начальной школы. Вспомните:















+12345
34821

 47166







-65423
23546

 41877












 x3256
 1245

 16280
 130240
 651200
 3256000

 4053720










-169 
 5
15  33
 
  
 -19  
15  
 
  
 4  


Рисунок: длинная арифметика

Аналогии здесь следующие: числа на рисунке - "длинные" числа. Цифры - "родные" слова машины (у Вас 16 бит, как Вы сообщали). Сначала реализуются функции сложения и вычитания, затем подфункция умножения числа на цифру и, на основе всего этого, функции умножения и деления. То есть длинное сложение состоит в сложении слов с учётом переноса, начиная с младшего (реализуется с помощью команд ADD и ADC). Длинное вычитание состоит в вычитании слов с учётом заёма, начиная с младшего слова (реализуется с помощью команд SUB и SBB). Длинное умножение состоит в последовательном умножении первого множителя на цифры второго со сдвигом, начиная с младшей цифры и сдвигая каждый раз произведение на разряд. Умножение числа на цифру состоит в последовательном умножении всех цифр множителя на данную цифру и сложении произведений со сдвигом. Наиболее сложным представляется деление. Самый очевидный метод (не учат в школе) - последовательные вычитания делителя. Это черевато большими (1-2 сек) задержками даже на современных ПК. Метод деления столбиком подходит только для случаев, когда делитель умещается в "родном" слове машины (реализуется с помощью команды DIV, которая на большинстве машин специально для этого делит 2 слова на одно: DX:AX на CX, EDX:EAX на ECX, RDX:RAX на RCX и т.п.).


Алгоритмы выполнения операций можно найти в любом учебнике по арифметике. Также эта тема полностью освещена в книге Д.Э. Кнута "Искусство программирования", второй том. Там можно найти описания алгоритмов, их доказательства, анализ и примеры на ассемблере.




Ответ отправлен: 02.05.2004, 03:04
Отправитель: Foamplast


Отвечает Ayl

Добрый день, aplet!
Ну, в принципе, все можно сделать. Но только в случае 64-разрядных чисел придется писать собственные процедуры деления и умножения. Сложение и вычитание - без проблем с помощью пар команд add+adc и sub+sbb:

my_big_num1 dw 8 dup (?)
my_big_num2 dw 8 dup (?)
result dw 9 dup (?)
; сложим
lea si, my_big_num1
lea bx, my_big_num2
lea di, result
mov cx, 8
clc
@@loop:
lodsw ; ax = ds:[si], si += 2
adc ax, [bx]
stosw ; ds:[di] = ax, si += 2
inc bx
inc bx ; команда inc не затрагивает флаг переноса!
loop @@loop
mov ax, 0
jnc @@exit
inc ax
@@exit:
stosw

Ответ отправлен: 30.04.2004, 19:49
Отправитель: Ayl


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

Добрый день, aplet!
Умножаешь каждые числа на соответствующие коэффициенты.
Затем делишь с помощью сопроцессора.
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 30.04.2004, 06:56
Отправитель: Евгений Иванов


Отвечает Pawel

Доброе время суток, aplet!
В принципе можно, но предётся их дробить.

Ответ отправлен: 03.05.2004, 20:05
Отправитель: Pawel


 Вопрос № 5201

мда...
один пишет правильно другой - не правильно, ну да ладно пищу для размышлений получил :)
но постепенно я прихожу к осознанию главного вопроса который мне спать мешает, я даже не знаю как его сформулировать точно. ну вот например учили меня в школе как автиомобиль устроен, но от этого я же не научился на нем ездить. так же и тут: ну читал я что есть GDT, ну читал я что есть такие регистры CR(x), но толку то от этого :( . мож кто скажет где можно что-нибудь такое разэтакое, чтобы была система какая-то, чтобы последжовательно обьяснялось для чего все это, как с этим работать (ну как у Абеля (блин опять я про него)), т.е. как это все на практике применять?
спасибо



Вопрос отправлен: 30.04.2004, 08:46
Отправитель: очень хочу научиться

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

Отвечает _vt

Приветствую Вас, очень хочу научиться!
Ну, например, для этого есть рассылка Broken Sword-а. Ее выпуски есть на wasm.ru.
E-Man : Life begins at 1000Mhz!


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


Отвечает Foamplast

Добрый день, очень хочу научиться!
  • "который мне спать мешает" - можно заканчивать любые работы, связанные с вычислительной техникой, а также чтение книг по таким вопросам за 3-4 часа до сна. Оставшееся время можно уделять общению с друзьями и прогулкам на свежем воздухе. Это ключ к пониманию защищённого режима процессоров i80x86, а также режимов Long Mode (AMD Athlon64) и Itanium Mode (Itanium).

  • Советую прочитать книгу Зубкова "Assembler для DOS, Windows и UNIX". Там про защищённый режим i80x86 всё разжёвано и есть примеры.

  • Есть классная книга "Современные операционыые системы" Э. Таненбаума, там всё понятно написано. Она поможет именно "въехать" в устройство ОС вообще. Также там подробно рассматривается Windows 2000 и Linux.
  • Можно посмотреть исходники различных ОС, особенно небольших, проще будет: MINIX или MenuetOS.

  • Главный источник информации - руководства по эксплуатации процессоров. Т.е. если необходимо уяснить суть каких-либо операций, производимых под процессором Pentium, то можно сходить на intel.com и найти там документ IA-32 Intel Architecture Software Developer's Manual Volume 3: System Programming Guide - он расскажет как раз о работе с ГТД и тому подобными вещами. Соответственно, первые два тома посвящены пользовательскому программированию. Информация о процессорах Ahtlon, как можно догадаться, есть на сайте AMD. Ну а информация о Transmeta должна быть на их сайте, наверное.

    Найти нужное помогут номера документов:
    i80x86
    IA-32 Intel Architecture Software Developer's Volume 1: Manual Basic Architecture 253665
    IA-32 Intel Architecture Software Developer's Volume 2: Manual Instruction Set Reference A-M 253666
    IA-32 Intel Architecture Software Developer's Volume 3: Manual Instruction Set Reference N-Z 253667
    IA-32 Intel Architecture Software Developer's Volume 4: Manual System Programming Guide 253668
    IA-32 Intel Architecture Optimization 248966-010

    Itanium
    Intel Itanium Architecture Software Developer's Manual Volume 1: Application Architecture 245317-004
    Intel Itanium Architecture Software Developer's Manual Volume 2: System Architecture 245318-004
    Intel Itanium Architecture Software Developer's Manual Volume 3: Instruction Set Reference 245319-004
    Intel Itanium 2 Processor Reference Manual 251110-002

    Athlon 64
    AMD64 Architecture Programmer's Manual Volume 1: Application Programming 24592
    AMD64 Architecture Programmer's Manual Volume 2: System Programming 24593
    AMD64 Architecture Programmer's Manual Volume 3: General-Purpose and System Instructions 24594
    AMD64 Architecture Programmer's Manual Volume 4: 128-Bit Media Instructions 26568
    AMD64 Architecture Programmer's Manual Volume 5: 64-Bit Media and x87 Floating-Point Instructions 26569



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


Отвечает Pawel

Добрый день, очень хочу научиться!
Посмотрите на WASM.RU? там есть очень даже неплохая подборка материалов.

Ответ отправлен: 03.05.2004, 20:06
Отправитель: Pawel


 Вопрос № 5202

Уважаемые эксперты! У меня тут неувязочка есть -
два окна: одно родительское, а другое дочернее.
Дочернее в роли поля для игры( я там рисую фигуры
в ответ на WM_PAINT ).
Так вот, когда запускаю прогу, то дочернее окно
ПЕРЕРИСОВЫВАЕТСЯ через пару секунд и СТИРАЕТСЯ ВСЕ ЧТО ТАМ
ЗА ЭТИ ПАРУ СЕКУНД ОТРИСОВАЛОСЬ!!!... К тому же,
когда я разворачиваю окно на весь экран, все также стирается...
Не подскажете способ избавиться от всего этого?
Род. окно - диалоговое, дочернее - регистрирую новый класс.
Заранее спасибо.



Вопрос отправлен: 30.04.2004, 12:57
Отправитель: Dragoon

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

Отвечает Foamplast

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

Тому может быть несколько причин: неправильная обработка сообщений, отсутствие стилей класса дочернего окна CS_HREDRAW | CS_VREDRAW и т.п. В общем, проверь стили и поток сообщений окну, если ничего странного не заметишь, присылай сюда исходник или ссылку на него.




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


Отвечает _vt

Здравствуйте, Dragoon!
Давай код программы. Скорее всего, неправильно обрабатываешь WM_PAINT.
E-Man : Life begins at 1000Mhz!


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


 Вопрос № 5203

Кто может указать направление поиска для реализации взаимодействия моей проги на ассемблере с сервером sql ?
С уважением, Илья
mis421@list.ru



Вопрос отправлен: 30.04.2004, 16:56
Отправитель: Ilya

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

Отвечает Foamplast

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

Для MySQL

Во-первых (так делают PHP и т.п.): есть библиотека mysqlclient, которую можно прилинковать к программе и использовать функции из этой библиотеки.

Во-вторых: можно установить драйвер MyODBC и обращаться к MySQL через ODBC или ADO из любой программы: написанной на Visual Basic, C, Delphi, из Microsoft Word и Microsoft Access ну и, конечно же, из программы, написанной на асме.

Для других SQL

Опять же, может быть есть поддержка ODBC либо какая-нибудь библиотека. Это можно узнать в описании конкретного SQL-сервера.




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


Отвечает Pawel

Здравствуйте, Ilya!
Смотри доку по SQL...

Ответ отправлен: 03.05.2004, 20:13
Отправитель: Pawel


Отвечает _vt

Доброе время суток, Ilya!
Сначала найди "реализацию взаимодействия" любого другого языка с сервером sql, а для ассемблера я тебе подскажу. ;-)
E-Man : Life begins at 1000Mhz!


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


 Вопрос № 5204

как на Ассемблере реализовать динамические структруры данных, в частности двоичное дерево поиска, как при этом организуется куча, хотелось бы также увидеть процедуры добавления нового элемента в дерево поиска



Вопрос отправлен: 30.04.2004, 17:50
Отправитель: Дмитрий

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

Отвечает Foamplast

Доброе время суток, Дмитрий!

Лучше книги Дональда Кнута "Искусство Программирования" по этой теме я не видел. Там и теория, и доказательства алгоритмов (!), и примеры на ассемблере.




Ответ отправлен: 04.05.2004, 08:31
Отправитель: Foamplast


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

Добрый день, Дмитрий!
В любой ОС есть средства для работы с памятью. Вот их и используй.
И не надо заморачиваться с тем как работает куча, ОС все сделает за тебя.
Алгоритм добавления элемента в дерево будет следующий: выделяешь участок
памяти нужного размера, формируешь в этой памяти структуру элемента дерева
(инициализируешь поля структуры) и добавляешь этот элемент в дерево, как
указатель.


Ответ отправлен: 03.05.2004, 21:31
Отправитель: ASMодей


 Вопрос № 5205

Здравствуйте!
Я почти закончил игру в формате com "Быстрый счет" программа работает,но когда я добавил обработчик int09h
появилась проблема:
после выхода программы в ms-dos и вывода с: asmin сначала виснет окно ms-dos(не реагирует на ввод)
а потом может и зависнуть windows.Отлаживал в отладчике -программа как положено доходит до команды
ret,попадает на int20h.
Хотя я восстановил предыдущий обработчик прерывания,но тем не менее система виснет.
Подскажите,пожалуйста в чем может быть дело?
С ув.
Роберт


Приложение:


Вопрос отправлен: 30.04.2004, 22:18
Отправитель: Robert

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

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

Доброе время суток, Robert!
Не совсем понятно где расположены переменные flag3 и chisloigroka. Если
в однов и том же сегменте, то перед командой
mov chisloigroka,ax
тоже должна стоять связка
push cs
pop ds
иначе ты запишешь AX неизвестно куда.


Ответ отправлен: 03.05.2004, 21:33
Отправитель: ASMодей


Отвечает Pawel

Здравствуйте, Robert!
Используй вместо int09h Int16h(ah=10h).


Ответ отправлен: 03.05.2004, 20:15
Отправитель: Pawel


Отвечает _vt

Добрый день, Robert!
Спрашивается, а зачем тебе обработчик int09? Если тебе нужно анализировать нажатые одиночные клавиши, то для этого есть функция 10h прерывания 16h.
E-Man : Life begins at 1000Mhz!


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


Отвечает Ayl

Приветствую Вас, Robert!
1. См. ответ эксперта _vt - действительно, 9-е прерывание тебе вообще не нужно.
2. По приведенному куску кода сказать ничего по поводу зависания нельзя. Пришлите весь код программы.


Ответ отправлен: 02.05.2004, 18:16
Отправитель: Ayl


 Вопрос № 5206

Добрый день, уважаемые эксперты.
Прошу прощения за оффтопик.
я недавно подписался на расслку rusfaq.ru по С++.
там мало вопросов, некоторые вопросы скорее из области ассемблера.
а тут, в АСМ-е много вопросов, которые касаются АСМ-а только косвенно.
(например, виндовс-программирование, которое можно делать и в С++).
а ещё вроде были вопросы именно по С++.
Может быть следует немного реорганизовать эти две рассылки?



Вопрос отправлен: 01.05.2004, 09:29
Отправитель: soflot (soflot@ukr.net)

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

Отвечает Pawel

Приветствую Вас, soflot!
Действительно в рассылку по Асм идёт большое количество ОБЩИХ вопросов по программированию... с этим ничего уже не поделать.

Ответ отправлен: 03.05.2004, 20:17
Отправитель: Pawel


Отвечает _vt

Добрый день, soflot!
В эту рассылку задают общие вопросы программирования, т.к. большинство экспертов зарегистрированы именно здесь. Есть рассылки по C++, Delphi/Builder, WinAPI, в которых рассматриваются специфичные вопросы. Но зачастую читатели задают даже специфичные вопросы именно сюда. Вывод - надо реорганизовать читателей. :-)
E-Man : Life begins at 1000Mhz!


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


 Вопрос № 5207

Здравствуйте эксперты!
Не иожете ли помочь: У меня есть ОКНО с кнопками и полями редактирования справа. А слева-поле для вывода графика ф-ии
И вот проблема: в ответ на WM_PAINT кнопки и поля оказываются какбы вдавленными. Если же по ним пройтись и понажимать то всё OK! Но почему так происходит? (hDC получаю ф-ией GetDC)



Вопрос отправлен: 01.05.2004, 13:17
Отправитель: varyag

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

Отвечает Pawel

Добрый день, varyag!
В 6-м байте :)
Выложи код прораммы!

Ответ отправлен: 03.05.2004, 20:23
Отправитель: Pawel


Отвечает Foamplast

Добрый день, varyag!
Получайте hDC с помощью BeginPaint(), по завершении рисования вызывайте EndPaint() и обязательно возвращайте 0 из функции в ответ на WM_PAINT!


Ответ отправлен: 05.05.2004, 08:49
Отправитель: Foamplast


Отвечает _vt

Приветствую Вас, varyag!
Код программы в студию! :-)
E-Man : Life begins at 1000Mhz!


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



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

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

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

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (23)
C / C++ (15)
Perl (3)
Builder / Delphi (20)
Pascal (18)
Basic / VBA (4)
Java / JavaScript (5)
PHP (12)
Криптография (8)
WinAPI (10)
Радиоэлектроника (6)
Пользователю
Windows 95/98/Me (31)
Windows NT/2000/XP (48)
"Железо" (26)
Поиск информации (14)
Администратору
Windows NT/2000/XP (25)
Linux / Unix (8)
Юристу
Гражданское право (10)
Семейное право (7)
Трудовое право (9)
КоАП (6)

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




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


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


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


В избранное