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

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


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

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

Выпуск № 777
от 31.10.2004, 22:40

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


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

bocha
Статус: Профессиональный
Общий рейтинг: 120.68
[Подробней >>]
DSota
Статус: Доверительный
Общий рейтинг: 120.19
[Подробней >>]
Evils_Interrupt
Статус: Доверительный
Общий рейтинг: 122.09
[Подробней >>]
 
_vt
Статус: Профессиональный
Общий рейтинг: 118.24
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 116.12
[Подробней >>]
Василевский Александр
Статус: Опытный
Общий рейтинг: 116.54
[Подробней >>]
 
Стас
Статус: Профессиональный
Общий рейтинг: 122.51
[Подробней >>]
maxim
Статус: Профессиональный
Общий рейтинг: 130.38
[Подробней >>]
PavPS
Статус: Опытный
Общий рейтинг: 110.56
[Подробней >>]


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

Вопрос № 5916. Hellow, Everybody! Народ, ме очень нужна ваша помощь. Надеюсь на ваше содействие. Мне нужно написть прогу , к-рая имитировала бы действие транслятора.(язык программирования Pascal) Смысл задачи состоит в том, что в файле находиться текст простейшей... (ответов: 3)
Вопрос № 5918. Где можно найти игформацию о winmm.dll (функции, их использование) поподробнее?... (ответов: 1)
Вопрос № 5919. доброе время суток всем! посоветуйте серьезную книгу о реестре windows спасибо alex......... (ответов: 1)
Вопрос № 5920. CSEG segment org 100h start: mov cx,3 Label_1: mov ah,9 mov dx,offset String int 21h loop Label_1 mov ah,10h int 16h int 20h String db 'Нажмите любую клавишу!!!Бараны!!!$' CSEG ends end start Программа выдает ошибку в 10 строчке: Near jump or call to... (ответов: 5)
Вопрос № 5921. Hello. Не подскажите ли вы где можно достать подобную информацию по програмированию SVGA на Асемблере. Заранее спасибо.... (ответов: 1)
Вопрос № 5924. Спасибо всем кто мне помог с определением размера файла! У меня не вопрос. Я тут такую вещь обнаружил, что при открытии файла (3Dh int 21h) в ax возвращается такое же число, как и при перемещении указателя на конец файла...... (ответов: 3)
Вопрос № 5925. Ооооу. Да. При чтении файла в буфер, извините. И еще, если кому интересно см. приложение. Эта программа (моя) "сжимает" ассемблерные тексты.... (ответов: 1)
Вопрос № 5928. Насчет считанных байт понял. Теперь вопрос такой: После использования 4202h int 21h для определения размера файла его не получается прочитать в буфер, хотя файл остается открытым, поэтому определение размера файла идет уже после чтения (в прилагаемом... (ответов: 3)
Вопрос № 5929. Как посмотреть вот этот код в исходном виде :020000040000FA :020000000528D1 :080008004A2983160030810033 :1000100090308B00083085000130860083129701F4 :1000200081018C018D018E018F019001910192015E :10003000930199019A019B019C019D019E019F01E1 :10004000A0019... (ответов: 2)
Вопрос № 5931. Для эксперта Стаса. >B) другой вариант такой, готовишь буффер размером от 1 байта до 65535 байт (например для COM программы CS+100 - теоритически должен быть пустой сегмент сразу после твоего) и считываешь файл порциями равными размеру буффера, обраб... (ответов: 1)
Вопрос № 5932. Здравствуйте! Пишу на Masm32. У меня такой вопрос: мне нужно выводить на экран сообщением некую фиксированную запись(её я сохраняю в .data/ db"", 0), но в этом проблемы нет, а есть она в том, что в конце этой записи нужно добавить значение ... (ответов: 3)
Вопрос № 5933. char macro str local m1 jmp m1 string db \'Строка &str недоступна\',13,10,\'$\' m1: mov ah,9h lea dx,string int 21h ; вроде должно выводить на экран string endm ; нормально Но вместо того,чтобы вывести на экран эту строку, ... (ответов: 1)

Вопросов: 12, ответов: 25


 Вопрос № 5916

Hellow, Everybody!
Народ, ме очень нужна ваша помощь. Надеюсь на ваше содействие. Мне нужно написть прогу , к-рая имитировала бы действие транслятора.(язык программирования Pascal)
Смысл задачи состоит в том, что в файле находиться текст простейшей какой-нибудь задачки(само собой на Paskal'e) и вот уже сама прога должна распознать эту задачу и вывести след. таблицыЖ имён, констант и маш. кодов. Саму прогу написать-то я напишу, а вот прблема -то состоит в том, что я не совсем соображаю как там это всё происходит, то бишь сам алгоритм трансляции. Говорят, что где-то в Ассемблере при трансляции образуется файл, где эти самые таблицы и видны. Подскажите, please, где это.
Если бы кто-нибудь хотя бы объяснил мне что ли как там всё происходит или просто дали бы ссылку на инфу об этом, то я была бы очень признательна.
Заранее Огромное Спасибо.



Вопрос отправлен: 24.10.2004, 12:10
Отправитель: Tiana

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

Отвечает bocha

Доброе время суток, Tiana!
посмотрите
http://www.rema.44.ru/resurs/study/compiler1/Compiler1.htm
т.ж. можно посмотреть исходники gcc, и да поможет Вам ya.ru

Ответ отправлен: 24.10.2004, 12:45
Отправитель: bocha


Отвечает DSota

Приветствую Вас, Tiana!
На самом деле, алгоритм трансляции простой:
Просто можно содать процедуру, которая обрабатывает паскалевскую процедуру(1)
или функцию, то есть четко делит ее на части "Var...begin...end", и две
отдельные процедуры, одна из них обрабатывает то, что после var и может
понимать переменные, константы, и может запускать рекурсивно процедуру(1),
если встретила слово "Procedure" или "Function". А вторая обрабатывает то,
что между "Begin" и "end" - и конечно может рекурсивно вызывать себя и
проверять на тип и инициализированность переменной - она и пишет таблицы кодов.
В ассемблере эти таблицы (конечно если это те таблицы, о которых я думаю,
я думаю о Листинге программы :)) )
можно получить набрав "TASM /c /la [имя файла.asm] [имя файла листинга]"
для точного определения кодов можно посомтреть в TEch help.
Конечно можно и легче для к аждой процедуры написать ее на ассемблере,
получить код и им и пользоваться...


Ответ отправлен: 25.10.2004, 09:53
Отправитель: DSota


Отвечает Evils_Interrupt

Добрый день, Tiana!
Напиши мне на int20h@yandex.ru изложи задачу яснее!

Ответ отправлен: 24.10.2004, 15:47
Отправитель: Evils_Interrupt


 Вопрос № 5918

Где можно найти игформацию о winmm.dll (функции, их использование) поподробнее?



Вопрос отправлен: 24.10.2004, 17:58
Отправитель: Serёga

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

Отвечает _vt

Здравствуйте, Serёga!
MSDN - Platform SDK - Graphics and Multimedia Services - Windows Audio - MCI. Тут все описано.
* Origin : In Gates we trust !!! :)


Ответ отправлен: 24.10.2004, 22:32
Отправитель: _vt


 Вопрос № 5919

доброе время суток всем!
посоветуйте серьезную книгу о реестре windows
спасибо
alex......



Вопрос отправлен: 24.10.2004, 21:40
Отправитель: alex (mansionhouse@rambler.ru)

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

Отвечает _vt

Добрый день, alex!
msdn.microsoft.com
* Origin : In Gates we trust !!! :)


Ответ отправлен: 26.10.2004, 21:46
Отправитель: _vt


 Вопрос № 5920

CSEG segment
org 100h
start:
mov cx,3
Label_1:
mov ah,9
mov dx,offset String
int 21h
loop Label_1
mov ah,10h
int 16h
int 20h
String db 'Нажмите любую клавишу!!!Бараны!!!$'
CSEG ends
end start
Программа выдает ошибку в 10 строчке:
Near jump or call to different CS


Приложение:


Вопрос отправлен: 24.10.2004, 22:52
Отправитель: Леха (IRINA-DEVSTVENNICA@YANDEX.RU)

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

Отвечает Ayl

Приветствую Вас, Леха!
После CSEG segment напиши строку ASSUME cs:CSEG.
У тебя cs не привязан к сегменту кода и компилятор не понимает, как ему jmp транслировать.

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


Отвечает Василевский Александр

Доброе время суток, Леха!
Попробуйте поставить вставить следующее:
CSEG SEGMENT
ASSUME CS: CSEG, DS: CSEG (*)
ORG ...
Строчка (*) укажет компилятору, что создаётся сегмент кода.


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


Отвечает DSota

Здравствуйте, Леха!
После
Cseg segment
Напиши
ASSUME CS:CSEG
Для сообщения Ассемблеру о том, что регистр Cs будет указывать на сегмент Cseg.

Приложение:

Ответ отправлен: 25.10.2004, 09:22
Отправитель: DSota


Отвечает Evils_Interrupt

Доброе время суток, Леха!


Ответ отправлен: 25.10.2004, 00:19
Отправитель: Evils_Interrupt


Отвечает Стас

Добрый день, Леха!
Поставь первой строчкой
assume cs:cseg
так ты дашь знать компилятору чему будет равен CS.

Ответ отправлен: 25.10.2004, 04:26
Отправитель: Стас


 Вопрос № 5921

Hello.
Не подскажите ли вы где можно достать подобную информацию по програмированию SVGA на Асемблере.
Заранее спасибо.



Вопрос отправлен: 25.10.2004, 14:01
Отправитель: Invert

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

Отвечает maxim

Здравствуйте, Invert!
на сайте Пирогова или Юрова


Ответ отправлен: 25.10.2004, 18:36
Отправитель: maxim


 Вопрос № 5924

Спасибо всем кто мне помог с определением размера файла! У меня не вопрос.
Я тут такую вещь обнаружил, что при открытии файла (3Dh int 21h) в ax возвращается такое же число, как и при перемещении указателя на конец файла...



Вопрос отправлен: 26.10.2004, 13:58
Отправитель: Serega

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

Отвечает Стас

Здравствуйте, Serega!
После открытия файла функцией 3dh 21 прерывания, в AX возвращается номер файла, номер по которому происходят все дальнейшие действия с файлом. Но не в коем случае не указатель на позицию в файле (DX:AX) как при (42h int 21h).


Ответ отправлен: 26.10.2004, 19:29
Отправитель: Стас


Отвечает Василевский Александр

Добрый день, Serega!
Вы не правы. Функция 3Dh возвращает в AX дескриптор (идентификатор) файла. Подумайте сами, если бы функция 3Dh возвращала в AX размер файла, то все файлы были бы ограничены размером в 64Кб. Скроее всего тут просто совпадение. Попробуйте пооткрывать различные файлы с разными размерами (больше и меньше 64Кб). Вы сами увидите, что это просто совпадение.


Ответ отправлен: 27.10.2004, 08:58
Отправитель: Василевский Александр


Отвечает DSota

Приветствую Вас, Serega!
Совпадение... В АХ в этих двух случаях возвращаються разные вещи...


Ответ отправлен: 26.10.2004, 14:24
Отправитель: DSota


 Вопрос № 5925

Ооооу. Да. При чтении файла в буфер, извините.
И еще, если кому интересно см. приложение.
Эта программа (моя) "сжимает" ассемблерные тексты.


Приложение:


Вопрос отправлен: 26.10.2004, 21:28
Отправитель: Serega

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

Отвечает Стас

Здравствуйте, Serega!
1) Опять ты ошибся! После чтении файла в буффер в AX возвращяется количество !действительно! считанных байт. Если ты читаешь 50 байт из файла, а файл размером 500, то AX будет равен 50, а не 500. И наоборот, если читаешь 500 (в твоем случае FFFF) а файл размером 50 - то получишь 50 !действительно! считанных байт.
2) несколько замечаний по проге: твоя программа не "сжимает" ассемблерные тексты, а удаляет комментарии и пробелы. Что согласись не одно и тоже.
Кроме того прога сильно сырая - a) во некоторых реализациях ассемблера строки с текстом (после db) могут начинаться(и должны заканчиваться) с ЛЮБОГО символа! А не только с кавычек как у тебя. Следовательно стоит мне поставить в таком тексте точку с запятой и оп-ля пол текста потерял...
b) Зря ты считашь что прога на ассемблере не может превышать размер в ffffh байт. И абсолютно игнорируешь DX после определения размера файла.
c) момент
stosb
lods b
cmp al,22h
jnz Save_mess
игнорирует тот факт что буффер(и файл) может кончится.
Стоит мне написать чтото типа db 'Say "HELLO!$' (ОДНА открывающаяся кавычка) и скорее всего прога выскочит за буффер и будет "сжимать" там.
d) бывает что строчка заканчивается не комбинацией 0d,0a, а скажем 0a,0d, или просто 0d...
А вообщем, было интерестно... Пиши дальше. Удачи!

Ответ отправлен: 27.10.2004, 02:13
Отправитель: Стас


 Вопрос № 5928

Насчет считанных байт понял. Теперь вопрос такой:
После использования 4202h int 21h для определения размера файла его не получается прочитать в буфер, хотя файл остается открытым, поэтому определение размера файла идет уже после чтения (в прилагаемом к тому вопросу исходнике), а закрывать и открывать файл еще раз как-то нехорошо. Почему так происходит и можно-ли это исправить?
Теперь для эксперта Стаса.
1. Разобрался.
2. Поэтому и в кавычках. Прога сырая, абсолютно согласен.
a) Не знал. Приведите пример.
b) Я не считаю, что максимальный размер может быть 0FFFFh, просто в сегмент больше не поместится (вообще где-то 0fEffh, остальное на программу и стек). Есть другой вариант-напишите.
c) Согласен. Исправил.
d) Такого не встречал, во всяком случае, если подряд идут несколько ODh (0Ah), в блокноте они отображаются квадратиками, думаю, что здесь правильно.
Если есть варианты исправления этого кода-пишите



Вопрос отправлен: 27.10.2004, 12:41
Отправитель: Serega

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

Отвечает Василевский Александр

Здравствуйте, Serega!
Для определения размера файла, его указатель перемещается на конец файла. Для работы с файлом необходимо переместить его на начало файла:
MOV AX, 4200h
MOV BX, Handle
XOR CX, CX
XOR DX, DX
INT 21h
Поэтому процедура, которая получает дескриптор файла и возвращает его размер проходит в четыре этапа:
1. Получить и сохранить текущую позицию в файле
2. Получить размер файла (4202h) и сохранить во временной переменной
3. Восстановить старую позицию в файле
4. Вернуть размер файла


Ответ отправлен: 27.10.2004, 13:02
Отправитель: Василевский Александр


Отвечает Ayl

Доброе время суток, Serega!
> После использования 4202h int 21h для определения размера файла его не получается прочитать в буфер.
И правильно! Ты же с помощью функции 42 ПЕРЕСТАВЛЯЕШЬ указатель текущей позиции файла в конец файла. Поэтому любое чтение из файла после этого будет вызывать ошибку (конец файла, нет больше данных). Поэтому после того, как ты установил указатель, тебе нужно вновь поставить его в начало файла:
xor cx, cx
xor dx, dx
mov bx, [FileHandle] ; если этот код будет стоять сразу же за предыдущим вызовом 42-й функции, то эту строку можно и не указывать
mov ax, 4200h
int 21h
Теперь можно читать.


Ответ отправлен: 27.10.2004, 14:25
Отправитель: Ayl


Отвечает Стас

Приветствую Вас, Serega!
Складывается впечатления что у Вас нет нормальной доки по 21 прерыванию...
4202h int 21h перемещает указатель на конец файла(поэтому читать файл больше нельзя), а в DX:AX после (ah=42 int21)ВСЕГДА возвращается текущее положение указателя.
Для того чтобы после этого читать файл нужно переместить указатель на начало файла (CX:DX=0) (или куда тебе будет угодно) и ax=4200h int 21h.
AL = 0 - переместится от начала на CX:DX байт
AL = 1 - переместится от тек. позиции на +CX:DX байт
AL = 0 - переместится к концу файла + CX:DX байт
Нужно когда ты будешь "дописывать в файл".
>a) Не знал. Приведите пример.
К сожалению не помню о чем речь... Я же свои ответы не сохраняю...
B) другой вариант такой, готовишь буффер размером от 1 байта до 65535 байт (например для COM программы CS+100 - теоритически должен быть пустой сегмент сразу после твоего) и считываешь файл порциями равными размеру буффера, обраба тываешь, и записываешь на место. Конец файла можно отследить напр. так:
читаешь 500 байт, а считалось (AX) 200 байт.
Соответсвенно знать размер файла вообще не нужно.

Ответ отправлен: 27.10.2004, 15:59
Отправитель: Стас


 Вопрос № 5929

Как посмотреть вот этот код в исходном виде
:020000040000FA
:020000000528D1
:080008004A2983160030810033
:1000100090308B00083085000130860083129701F4
:1000200081018C018D018E018F019001910192015E
:10003000930199019A019B019C019D019E019F01E1
:10004000A001960198019401E0288C018D018E0198
:100050008F01900191019201930197119710171050
:100060001719080099019A019B019C019D019E01AD
:100070009F01A0010800971C080017119710140891
:10008000083C03194528940A080094018B131711A2
:1000900097118828971C0800971014088207582881
:1000A0005E2864286A28702876287C288228080020
:1000B000990A0A3019020318990188289A0A0A3005
:1000C0001A0203189A0188289B0A0A301B02031897
:1000D0009B0188289C0A0A301C0203189C0188286E
:1000E0009D0A0A301D0203189D0188289E0A0A30C5
:1000F0001E0203189E0188289F0A0A301F02031857
:100100009F018828A00A0A3020020318A00188282D
:1001100019088C001A088D001B088E001C088F001F
:100120001D0890001E0891001F08920020089 300EF
:1001300008008C08031DB2288D08031DB2288E0804
:10014000031DB2288F08031DB2289008031DB22892
:100150009108031DB2289208031DB2289308031DBD
:10016000B228080097150C081902031D08000D0895
:100170001A02031D08000E081B02031D08000F08C9
:100180001C02031D080010081D02031D08001108B1
:100190001E02031D080012081F02031D0800130899
:1001A0002002031D08001714080082077F340D3455
:1001B000B7349F34CD34DB34FB340F34FF34DF34B9
:1001C00095010C0814211719992037210D081421C5
:1001D00083160630860083129719FA28861C3B2066
:1001E000061D4A20861CFA281408083C0319171516
:1001F00003198B17851D2520831601308600831275
:1002000037210E08142137210F0814213721100837
:100210001421372111081421372112081421372104
:10022000130814213721E028D52096001508140260
:10023000031D2729A50A0A302502031D2829A50127
:10024000171A1712171E1716171A9716282997121A
:1002500017181512171C151615088500971E160875
:10026000971A8601971E86001512950A0800FA3023
:10027000A400A40300000000000000000000000 033
:100280000000031D392997190800980A98080319D6
:1002900097140800A1000308A2000408A30057292E
:1002A0008B10220883002308840021080900171DF1
:1002B000502909300C0203185F298C0A50298C013F
:1002C00009300D02031866298D0A50298D01093065
:1002D0000E0203186D298E0A50298E0109300F0273
:1002E000031874298F0A50298F010930100203184E
:1002F0007B29900A502990010930110203188229A4
:10030000910A502991010930120203188929920A91
:10031000502992010930130203189029930A502999
:0403200093015029CC
:02400E00F23F7F
:00000001FF
заранее благодарен



Вопрос отправлен: 27.10.2004, 13:48
Отправитель: Дмитрий

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

Отвечает Evils_Interrupt

Доброе время суток, Дмитрий!
Здрасьте берешь пишешь его как ком файл и дальше идой вручную!

Ответ отправлен: 27.10.2004, 22:50
Отправитель: Evils_Interrupt


Отвечает Стас

Добрый день, Дмитрий!
Добавить
cseg segment
assume cs:cseg,ds:cseg,es:cseg
org 100h
start:
перед тектом,
cseg ends
end Start
после текста,
отредактировать текст сделав его в виде:
db 002h,000h,000h,004h,000h,000h,0FAh
Откомпилировать и наслаждайся!
Только здается мне это какие-то данные а вовсе не текст проги... Откуда выкопал?


Ответ отправлен: 27.10.2004, 15:43
Отправитель: Стас


 Вопрос № 5931

Для эксперта Стаса.
>B) другой вариант такой, готовишь буффер размером от 1 байта до 65535 байт (например для COM программы CS+100 - теоритически должен быть пустой сегмент сразу после твоего) и считываешь файл порциями равными размеру буффера, обрабатываешь, и записываешь на место.
Приведите, пожалуйста, пример чтения, а то я плохо понял.



Вопрос отправлен: 27.10.2004, 20:38
Отправитель: Serega

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

Отвечает Стас

Приветствую Вас, Serega!
Чёто по моему мы конфу засоряем...
Напиши на trashcan2@yandex.ru разберемся...


Ответ отправлен: 27.10.2004, 23:07
Отправитель: Стас


 Вопрос № 5932

Здравствуйте! Пишу на Masm32. У меня такой вопрос: мне нужно выводить на экран сообщением некую фиксированную запись(её я сохраняю в .data/ db"", 0), но в этом проблемы нет, а есть она в том, что в конце этой записи нужно добавить значение переменной. ТАК ВОТ! КАК СОЕДИНИТЬ 2 СТРОКИ В ТЕКСТ СООБЩЕНИЯ! Заранее благодарен!!!



Вопрос отправлен: 27.10.2004, 21:18
Отправитель: Максим

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

Отвечает PavPS

Добрый день, Максим!
Создай динамический буффер спомошью какой-нить xxxAlloc необходимого размера+како-то допуск к длине строки значения переменной и текста. Ну и записывай сначала строку, а потом дописавай значение. Допиши в конце 0, да и всё. Так де можно поступить и со статическим буффером. Не db "",0 а db 200 dup(0)., а то писать то некууда будет.

Ответ отправлен: 27.10.2004, 21:32
Отправитель: PavPS


Отвечает Стас

Добрый день, Максим!
Пишешь строку типа:
db "Bla bla bla = %d",0
и с помощью wsprintf в какой либо временный буффер формируешь, оттуда и выводишь на экран.

Ответ отправлен: 27.10.2004, 23:03
Отправитель: Стас


Отвечает bocha

Приветствую Вас, Максим!


Приложение:

Ответ отправлен: 28.10.2004, 01:12
Отправитель: bocha


 Вопрос № 5933

char macro str
local m1
jmp m1
string db \'Строка &str недоступна\',13,10,\'$\'
m1:
mov ah,9h
lea dx,string
int 21h ; вроде должно выводить на экран string
endm ; нормально
Но вместо того,чтобы вывести на экран эту строку, появляется что-то левое. В чем дело ?



Вопрос отправлен: 27.10.2004, 23:34
Отправитель: Khanc

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

Отвечает Василевский Александр

Доброе время суток, Khanc!
Каким компилятором Вы пользуетесь (зачем ружны символы '\')? Эти символы являются специальными только в C/C++. В Assembler'е они не действуют. Программа в приложении была транслирована TASM'ом 2.0. В результате запуска COM-файл выдал:
String "Assembler" not resolved.
Вроде работает как нужно.


Приложение:

Ответ отправлен: 28.10.2004, 09:04
Отправитель: Василевский Александр



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

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

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

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (24)
C / C++ (15)
Perl (6)
Builder / Delphi (16)
Pascal (18)
Basic / VBA (7)
Java / JavaScript (6)
PHP (14)
Криптография (7)
WinAPI (16)
Радиоэлектроника (12)
Пользователю
Windows 95/98/Me (39)
Windows NT/2000/XP (59)
"Железо" (36)
Поиск информации (19)
Администратору
Windows NT/2000/XP (35)
Linux / Unix (15)
Юристу
Гражданское право (7)
Семейное право (4)
Трудовое право (6)
КоАП (4)

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





http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq
Отписаться

В избранное