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

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


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

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

Выпуск № 460
от 05.01.2003, 15:40

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


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

Sensey
Статус: Профессиональный
Общий рейтинг: 121.61
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 д.
[Подробней >>]
Maverick
Статус: Профессиональный
Общий рейтинг: 139.5
URL: Задачи по ассемблеру
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
LIFO
Статус: Профессиональный
Общий рейтинг: 119.89
URL: наш сайт
Телефон: 8 01710 24758
[Подробней >>]
 
Traish
Статус: Опытный
Общий рейтинг: 127.8
[Подробней >>]
kvINT
Статус: Профессиональный
Общий рейтинг: 105.96
Телефон: (34316)2-31-45
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 127.45
URL: моя рассылка по Protected Mode
[Подробней >>]
 
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.2
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 147.27
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 117.4
[Подробней >>]
 
Blad
Статус: Начальный
Общий рейтинг: 102.25
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.21
URL: Страничка обо мне и моих друзьях
[Подробней >>]
keleb-glin
Статус: Опытный
Общий рейтинг: 111.3
[Подробней >>]
 
ASMодей
Статус: Профессиональный
Общий рейтинг: 118.44
[Подробней >>]
Portnov
Статус: Профессиональный
Общий рейтинг: 114.72
URL: Мой сайтик...
[Подробней >>]


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

Вопрос № 2304. Здравствуйте, Эксперты!!! 1) Подскажите, пожалуйста, как на Асме сделать задержку (типа Delay в Pasc... (ответов: 5)
Вопрос № 2306. С Новым Годом! Вопросы такие: 1.) lea dx,[bp+offset COMmask] Как я понял, берем COMmask,... (ответов: 6)
Вопрос № 2307. С НОВЫМ ГУДОМ, эксперты и подписчики, и всего-всего вам. Удачи!... (ответов: 2)
Вопрос № 2308. ПОМОГИТЕ! В результате взаимодействия одной dll c моей программой её ( dll ) данные ( что в .data ) ... (ответов: 2)
Вопрос № 2309. С Новым Годом! Всех!!!! Поставил SoftICE 4.05(Driver Studio 2.0 кажется) на Windows 98SE Rus Выбрал ... (ответов: 3)
Вопрос № 2310. Hi ! Нашел в Интернете файл с расширением fnt файл шрифтов (int 1Fh). Файл шрифтов, проб... (ответов: 3)
Вопрос № 2311. Приветствую, товарищи эксперты! Занимаюсь я значит мазахизмом, то есть пытаюсь писать проги в машинн... (ответов: 3)
Вопрос № 2312. Здравствуйте эксперты. Вопросик такой: нужно сделать так, что-бы при нажатии опред. клавиши флаг tf ... (ответов: 5)

Вопросов: 8, ответов: 29


 Вопрос № 2304

Здравствуйте, Эксперты!!!
1) Подскажите, пожалуйста, как на Асме сделать задержку (типа Delay в Pascal-е);
2) Может мне кто-нить скинуть на мыло библиотеки Paskal-я (System, CRT, Graph и т.д.) на Асме (если таковые существуют) или дать URL (Начал изучать Assembler и жутко захотелось узнать, как выглядят команды Pascal-я на Асме).
Заранее спасибо, Sinus (sinus@nm.ru).
P.S.: С наступающим Новым Годом!!!



Вопрос отправлен: 31.12.2002, 02:26
Отправитель: Sinus

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

Отвечает Sensey

Доброе время суток, Sinus!
1. Можно через таймер, а можно немного проще - через счетчик в БИОСе по адресу 40h:6Ch - с точностью 1\18 сек
2. Поставь IDA Pro (все равно надо ее учить) - дизасемблируй прогу на Паскале и смотри.
ЗЫ Аналогично!


Ответ отправлен: 02.01.2003, 12:03
Отправитель: Sensey


Отвечает Maverick

Приветствую Вас, Sinus!
Можешь сделать холостой цикл или используй прерывание.
mov cx,0ffh
loop $

Ответ отправлен: 31.12.2002, 16:40
Отправитель: Maverick


Отвечает LIFO

Приветствую Вас, Sinus!
mov cx,3000
aa:
loop aa
Или ah=86h int 15h


Ответ отправлен: 31.12.2002, 12:24
Отправитель: LIFO


Отвечает Traish

Добрый день, Sinus!
1. Если пишешь под DOS, можно использовать функцию 86h преывания 15h.
2. Не знаю, существует ли такие библиотеки. Если хочешь узнать, во что компилятор превращает команды паскаля - напиши программу и дизассемблируй ее.
Ну, и с наступающим, ессно.


Ответ отправлен: 31.12.2002, 08:40
Отправитель: Traish


Отвечает kvINT

Добрый день, Sinus!
Пример из Юрова:
макрос задержки - на входе значение задержки в мкс
delay macro time
local ext,iter
push cx
mov cx,time
ext:
push cx
mov cx,5000
iter:
loop iter
pop cx
loop ext
pop cx
endm
Вызывается так delay 1 - задержка на 1 мкс
На самом деле будет не 1 - зависит от процессора, пример сделан для Pentium

Ответ отправлен: 03.01.2003, 02:20
Отправитель: kvINT


 Вопрос № 2306

С Новым Годом!
Вопросы такие:
1.) lea dx,[bp+offset COMmask]
Как я понял, берем COMmask, с помощью offset получаем смещение, складываем адрес с адресом в bp и получаем значение по этому адресу с помощью []. Потом загружаем в dx адрес этого значения.
Не проще ли так:
mov dx,bp+offset COMmask
2.)Как это работает:
carrier: db 0E9h,0,0 ; jmp start
start: mov bр, sр ; Противоотладочное получение дельта-смещения!
int 0003h ; Int для брикпоинтов
next: mov bp, ss:[bp-6]
sub bp, offset next
3.)
lea si, [bp+offset origdir]
mov byte ptr [si], ''
Ведь так мы затрем первый байт origdir!
За сим откланиваюсь,
DyC.



Вопрос отправлен: 31.12.2002, 16:04
Отправитель: DyC (dyc@nm.ru)

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

Отвечает Broken Sword

Здравствуйте, DyC!
1. Нет, не проще. Более того, mov dx,bp+offset COMmask - TASM вообще не понимает (это illegal use of constant), еще как-то можно сделать: mov dx,offset [COMmask+bp], но и это не то же самое, что lea dx,[bp+offset COMmask]. lea - загрузить АДРЕС, а mov (даже хоть и offset) в данном случае загрузит СОДЕРЖИМОЕ памяти по адресу [bp]+offset.
2. Это вообще непонятно откуда выдранный кусок... основано может быть хотя бы на том факте, что у данная прога сама перехватывает int 3h.
3. Что-то мы затрем, но точно не origdir. Первая строка равносильна:
lea SI, [BP] + offset origdir, т.е. помещаем в SI число, получаемое путем сложения смещения origdir и слова по адресу BP.
и вообще, где ты понаходил эти вопросы?

Ответ отправлен: 31.12.2002, 19:22
Отправитель: Broken Sword


Отвечает Bob Johnson

Добрый день, DyC!
1. Берется смещение COMmask и складывается со значением в bp. Вот это число и загружается в dx. Никакого значения по этому адресу не считывается (просто это тут не нужно). а [] оставлены для единства представления. А вот mov dx, bp + offset вообще не существует, т.к. mov может загружать только конечные числа. Поэтому и существует lea.


Ответ отправлен: 01.01.2003, 21:05
Отправитель: Bob Johnson


Отвечает Traish

Доброе время суток, DyC!
1. Нет, не проще, потому что если бы "bp" было константой, то трансятор вычислил бы сумму и заменил бы эту инструкцию инструкцией mov dx, _значение_, но bp, как известно, - регистр.
2. Собственно, зачем тут int 3 непонятно - или ты повесил свой обработчик на вектор 3, или для остановки отладчиков в ламерских руках (гм...). Ну, а насчет ss:[sp-06] - тут хранится ip иструкции, который ты получаешь инструкцией
mov bp, ss:[bp-6].
3. Скорее всего, если ты правильно вычислил дельта-оффсет.


Ответ отправлен: 02.01.2003, 15:51
Отправитель: Traish


Отвечает Maverick

Приветствую Вас, DyC!
1.BP это дельта смещение виря в данном случае и по второму способу Tasm тебя не поймет.
2.А ты погляди в отладчике и все поймешь.
3.НЕТ, здесь ты запишешь " по адресу из si.
Вообще гляди в отладчике, все вопросы отпадут.
Как реферат?


Ответ отправлен: 31.12.2002, 16:40
Отправитель: Maverick


Отвечает masquer

Добрый день, DyC!
1. Не проще. Во первых тогда уже так
mov dx,offset COMmask
add dx, bp, а во вторых так ты адрес а не значение получишь, и кода больше будет.
2. "Противоотладочное получение дельта-смещения!" - бред...
3. Ну, и...

Ответ отправлен: 03.01.2003, 12:28
Отправитель: masquer


Отвечает Ayl

Здравствуйте, DyC!
1. Нет, не проще. Потому что такой команды, как mov dx, bp + offset COMmask нет в природе. Тем-то и хороша команда lea, что позволяет вот такие вычисления выполнять одной командой. Иначе надо было написать вот так:
mov dx, bp
add dx, offset COMmask
2. Выдранный кусок в таком виде не несет никакой информации, пока не покажешь обработчик прерывания 3. Предполагаю, что это какая-то попытка борьбы с отладочными средствами.
3. Ничего мы не затираем, если только в bp перед выполнением этого куска не находилось значение 0. А так по идее в bp должно находиться смещение прикрепленной программы относительно начальной точки загрузки по умолчанию.

Ответ отправлен: 04.01.2003, 13:06
Отправитель: Ayl


 Вопрос № 2307

С НОВЫМ ГУДОМ, эксперты и подписчики, и всего-всего вам.
Удачи!



Вопрос отправлен: 31.12.2002, 16:18
Отправитель: Maverick (Maverick@nightmail.ru)

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

Отвечает Blad

Приветствую Вас, Maverick!
Спасибо, вас также!

Ответ отправлен: 01.01.2003, 14:27
Отправитель: Blad


Отвечает Bob Johnson

Добрый день, Maverick!
Спасибо!


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


 Вопрос № 2308

ПОМОГИТЕ!
В результате взаимодействия одной dll c моей программой её ( dll ) данные ( что в .data ) изменяются.
Потом я ставлю ловушку с обработчиком в этой dll. Так вот, когда ловушка срабатывает, и процедура-обработчик начинает выполняться, все данные оказываются ОБНУЛЕНЫ. Это точно не мой глюк. Отладчик ( SoftICE ) показывает то же самое.
Что мне делать? Как сохранить данные ( не в файл )?
И ещё. В MSDN сказано, что процедура-обработчик ловушки должна обязательно находиться в dll. А можно ли пренебречь этим и установить обработчик на процедуру внутри кода программы? И если можно, то что может произойти неприятного?



Вопрос отправлен: 31.12.2002, 17:12
Отправитель: keleb-glin (keleb-glin@xakep.ru)

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

Отвечает masquer

Приветствую Вас, keleb-glin!
Ебстественно, данные будут другими. Для ловушек (hook) данные делаются с аттрибутом shareable, т.е. для каждой копии библиотеки будет начальный набор данных. Может сразу в файл кидать, можешь MMF использовать...

Ответ отправлен: 03.01.2003, 12:31
Отправитель: masquer


Отвечает Gibbel

Доброе время суток, keleb-glin!
На будущее, приводи англоязычные названия, а то я с 10го раза понял, что речь о hookах. В общем, твой обработчик hookа выполняется в адресном пространстве перехватываемой программы. Соответственно, для доступа к своим данным необходимо использовать какой-либо метод IPC. Для примера, в твоем случае, необходимо задать секцию .data как shared, что позволит использовать одну и ту же копию данных разными процессами. Как это делается описано в том же MSDN. На русском языке IPC подробно описано в 27 томе Библиотеки Системного Программиста Фроловых (если надо, могу скинуть).

Ответ отправлен: 04.01.2003, 10:27
Отправитель: Gibbel


 Вопрос № 2309

С Новым Годом! Всех!!!!
Поставил SoftICE 4.05(Driver Studio 2.0 кажется) на Windows 98SE Rus
Выбрал как и рекомендуют Standard Display Adapter (VGA) &
Universal Video Driver. Всё работает. По Ctrl-D выскакивает окошко.
Но это окошко занимает менее 25% от всего экрана дисплея. Что так и
должно быть? Мне приходиться или напрягать зрение или подвигать лицо
поближе к экрану. Так ведь можно и зрение посадить. Моего адаптера в
списке оборудования нет. При выборе похожего происходит Out of frequence,
т.е. запредельная частота и срабатывает защита монитора. Лучше не
баловаться. Неужели менять карточку?
Если это имеет значение: карточка ATI Xpert@Play микросхема -
Mach64: RagePro



Вопрос отправлен: 01.01.2003, 05:51
Отправитель: Начинающий ламер

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

Отвечает keleb-glin

Доброе время суток, Начинающий ламер!
Лично у меня всё заработало когда я в настройке монитора убрал галку с Universal Video Driver и вывернул настройки монитора по разрешению на максимум ( стоял Standart Video Driver ).

Хочу извиниться за неправильный ответ на вопрос 2312. Там я посоветовал использовать lahf и sahf, но в данном случае это невозможно, т.к. tf не входит в набор флагов, сохраняемых таким образом, поэтому способ, предложенный Vladimir'ом правилен.


Ответ отправлен: 02.01.2003, 15:53
Отправитель: keleb-glin


Отвечает Broken Sword

Здравствуйте, Начинающий ламер!
в настройках (в Video) выставь "использовать универсальный
видеодрайвер" (Universal video driver). Затем, после загрузки и активации окна SI пишешь:
lines n, где n - число строк на экране (от 25 до 128)
потом пишешь:
width n, где n - число столбцов на экране (от 80 до 160)
Т.е. максимально, насколько ты можешь его растянуть - это 128x160 (ито такое возможно ТОЛЬКО в режиме универсального видеодрайвера, при примен. специфического разрешение меньше)
Да, используй Ctrl+Alt+Стрелка для перемещения экрана отладчика в требуемом направлении.
Кстати, все команды по открытию/закрытию окон в окне отладчика (wd, ws и т.д.) также в качестве параметра могут принимать размер окна, например, wd 8 - открыть/закрыть окно данных и установить его размер в 8 строк. Т.е. размер общего окна отладчика также измениться.
Чтоб каждый раз не писать lines и width пропиши эти команды в строку инициализации (Softice initialization - General)

Ответ отправлен: 01.01.2003, 13:33
Отправитель: Broken Sword


Отвечает masquer

Здравствуйте, Начинающий ламер!
Воспользуйся советом Broken Sword-a и меньшее разрешение поставь...

Ответ отправлен: 03.01.2003, 12:33
Отправитель: masquer


 Вопрос № 2310

Hi !
Нашел в Интернете файл с расширением fnt файл шрифтов (int 1Fh). Файл шрифтов, проблема в том, что этот файл английских шрифтов. Соответственно если я хочу написать с помощью этого файла что-нибудь, то вижу каракули вместо русских букв. Как я могу с помощью ассемблера вытащить с моего компьютера такой же файл, но с русскими шрифтами? Может у кого-нибудь есть готовая программа? Теоретически я понимаю, что вся эта графика находится на прерывании int 1Fh, но как оттуда вытащить всю графику в отдельный файл?
Просьба готовые файлы русских шрифтов не слать, так как, во-первых, мне интересен сам процесс, а во-вторых, если мне понадобится, файлы арабские кто мне поможет?
Best regards
Alex Burzak.


Приложение:


Вопрос отправлен: 01.01.2003, 13:38
Отправитель: alexneta (alexneta@aport2000.ru)

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

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

Здравствуйте, alexneta!
Очень просто: выполни функцию 35h прерывания INT 21h и в регистрах
ES:BX у тебя окажется адрес этой области памяти. Далее просто
запиши оттуда в файл 1024 байта.


Ответ отправлен: 01.01.2003, 20:00
Отправитель: ASMодей


Отвечает Sensey

Приветствую Вас, alexneta!
Дополню Asmoдея:
Только на этом прерывании фонты для CGA, а для VGA - 43h


Ответ отправлен: 02.01.2003, 12:37
Отправитель: Sensey


Отвечает Gibbel

Приветствую Вас, alexneta!
На вопрос тебе уже ответили...
Куда слать арабские шрифты???

Ответ отправлен: 04.01.2003, 10:52
Отправитель: Gibbel


 Вопрос № 2311

Приветствую, товарищи эксперты!
Занимаюсь я значит мазахизмом, то есть пытаюсь писать проги в машинных кодах :)
Пример:
mov bx, 0 получится BB 00 00
С этим кодом все ясно, так как в интелевской доке написано,
что код инструкции - B8+ rw
А проблема вот в чем:
Объясните мне, каким образом вычисляется машинный код операндов, например
вот в такой инструкции:
xor bx, 0 получается 83 F3 00
Почему F3 ??? И ваще, что в доке по опкодам означает /число,
вроде 80 /7 ib CMP ...




Вопрос отправлен: 01.01.2003, 14:30
Отправитель: Мазахист

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

Отвечает Portnov

Добрый день, Мазахист!
Специально для таких, как вы, написана статейка "Заклинание кода" в нескольких частях (от Алеф до Хей пока есть) by Aquila/HI-TECH. Выложена эта статейка на Wasm.ru, там на главной странице на самом видном месте ссылка. Очень неполохо пишет этот Аквила...
С уважением, Portnov.

Ответ отправлен: 02.01.2003, 17:17
Отправитель: Portnov


Отвечает Bob Johnson

Здравствуйте, Мазахист!
Формат команды может включать в себя поля MOD и SIB, которые определяют, какие регистры (или ячейки памяти) задействуются в этой команде. Вот F3 и есть поле MOD.


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


Отвечает Ayl

Здравствуйте, Мазахист!
xor bx, 0 - соответствует варианту xor r/m16, imm8. Такой команде соответствует код 83, затем идет постбайт кода операции, затем само непосредственное значение.
Постбайт кода операции записывается следующим образом:
mod 110 r/m
Здесь mod определяет режим адресации. Состоит из 2-х битов. Значение 11 соответствует режиму регистровой адресации (данные находятся в регистрах). При этом, так как поле W в первом байте кода операции (83h) равно 1 (поле W - это 0-й разряд первого байта кода операции), то используются 16-тиразрядные регистры (в предположении использования 16-тиразрядной модели). Далее, биты 3-5 постбайта представляют собой расширение кода операции и обозначают операцию xor. Поле r/m (биты 0-2 постбайта) обозначают регистр, используемый в команде. В данном случае это поле равно 011, что соответствует регистру BX.
Итак, как формируется команда:
1. xor bx, 0 соотвествует xor r/m16, imm8
2. xor r/m16, imm8 соответствует код 83, mod 110 r/m, 0
3. Регистру BX соответствует r/m = 011, режим адресации - регистровый => mod = 11
4. mod 110 r/m = 11 110 011 = 1111 0011 = F3
5. Все вместе равно - 83, F3, 00
Разбираем по кодам:
1. 83, F3, 00
2. 83 - неполная команда, требует детализации в битах 3-5 постбайта
3. Биты 3-5 постбайта равны 110, что соответствует (с учетом первого байта кода операции) команде xor r/m16, imm8
4. Режим адресации описывается значением mod в постбайте и равен 11, что означает регистровыю адресацию
5. Регистр, используемый в команде, равен BX (описывается битами 0-2 постбайта)
6. Итак, команда соответствует такой:
xor bx, imm8
7. Непосредственное значение (1 байт) равно 0. Соответственно, полностью команда записывается как xor bx, 0


Ответ отправлен: 04.01.2003, 13:38
Отправитель: Ayl


 Вопрос № 2312

Здравствуйте эксперты.
Вопросик такой: нужно сделать так, что-бы при нажатии опред. клавиши флаг tf стал равен 1. Хочу сделать что-нить вроде такого:
pushf
pop ax
or ax,1000b
Как думаете, получиться? Может у Вас есть идеи получше?
Заранее спасибо.
И еще-если есть описания ВСЕХ флагов, плиз киньте в мыло



Вопрос отправлен: 01.01.2003, 15:30
Отправитель: Vladimir

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

Отвечает Maverick

Доброе время суток, Vladimir!
Хм... вот ты в регистре это и сделаешь, а флаг не изменишь.
Есть же команды загрузки флагов в ah и наоборот.
Помоему
lahf
sahf
Описаний у меня нету, но мыло можно было и написать :)

Ответ отправлен: 01.01.2003, 15:50
Отправитель: Maverick


Отвечает Traish

Доброе время суток, Vladimir!
Ну и дальше push ax popf. После popf исключение отладки будет генерироваться после каждой инструкции, поэтому убедись, что у тебя есть его обработчик.



Ответ отправлен: 02.01.2003, 16:00
Отправитель: Traish


Отвечает keleb-glin

Здравствуйте, Vladimir!
А с чего ты взял, что не получится? Только лучьше делать не совсем так.
lahf ;сохраняет флаги в ah
;далее-твой код по изменению
sahf ;загрузить флаги из ah

Ответ отправлен: 01.01.2003, 17:06
Отправитель: keleb-glin


Отвечает Ayl

Доброе время суток, Vladimir!
Ну да, код примерно такой:
pushf
pop ax
or ax, 100h ; а не 1000b, как у тебя
push ax
popf
После этого начнет выполняться генерация прерывания 1 после каждой выполненной инструкции.
Кстати, с помощью lahf и sahf ничего не получится, потому что флаг TF при этих операциях не затрагивается.

Ответ отправлен: 04.01.2003, 13:48
Отправитель: Ayl


Отвечает LIFO

Добрый день, Vladimir!
Для этого можно исп. команды lahf потом инвертируешь нужный тебе бит и исполняешь sahf

Ответ отправлен: 05.01.2003, 12:15
Отправитель: LIFO



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

Внимание!
Форма может работать некорректно в почтовых программах "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 (37)
C / C++ (28)
Perl (4)
Delphi (21)
Pascal (23)
Basic / VBA (11)
Java / JavaScript (7)
PHP (3)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (34)
Windows NT/2000/XP (25)
"Железо" (31)
Поиск информации (16)
Администратору
Windows NT/2000/XP (10)
Linux / Unix (15)
Юристу
Гражданское право (7)
Семейное право (4)
Трудовое право (4)
КоАП (3)

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




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

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


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

В избранное