→ Для вступления в общество новичков и профессионалов программирования, пожалуйста нажмите здесь ...

Форум программистов: C++, Basic, Delphi, Pascal, JavaScript
Логин: Пароль:
Запомнить?  
@Mail.ru



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Книга: Пpогpаммиpование на Turbo Assembler 3.0 (pус) 
Автор Сообщение
Администратор
Аватара пользователя

Регистрация: 03.11.2007
Сообщения: 559
Откуда: Украина
Специальность:

Репутация: 6 [ ? ]
Сообщение Книга: Пpогpаммиpование на Turbo Assembler 3.0 (pус)
Турбо Ассемблер 3.0/tasm/#1-2 = 1 =

Введение........................................................7
Требования к программному и аппаратному обеспечению.............8
Поддержка DPMI..................................................8
О данной документации...........................................9
Руководство пользователя........................................9
Соглашения по обозначениям.....................................11
Как обратиться за помощью к фирме Borland......................12
Ресурсы вашего пакета..........................................13
Возможности фирмы Borland......................................13
ЧАСТЬ 1. ИСПОЛЬЗОВАНИЕ ТУРБО АССЕМБЛЕРА............................15
Глава 1. Начало работы на Турбо Ассемблере.......................16
Установка Турбо Ассемблера в системе...........................16
Текстовые справочные файлы.....................................17
Файл README....................................................17
Файл HELPME!.TSM...............................................18
Файл H2ASH.TSM.................................................18
Файл TCREF.TSM.................................................18
Оперативный справочник.........................................18
Ваша первая программа на Турбо Ассемблере......................19
Ассемблирование вашей первой программы.........................21
Компоновка программы...........................................23
Запуск вашей первой программы..................................23
Что происходит?................................................23
Модификация вашей первой программы на Турбо Ассемблере.........25
Вывод информации на устройство печати..........................27
Ваша вторая программа на Турбо Ассемблере......................28
Запуск программы REVERSE.ASM...................................30
Литература по языку Ассемблера.................................30
Глава 2. Использование директив и параметров.....................32
Запуск Турбо Ассемблера из DOS.................................32
Параметры командной строки.....................................37
Параметр /A....................................................37
Параметр /B....................................................38
Параметр /C....................................................38
Параметр /D....................................................38
Параметр /E....................................................39
Параметр /H или /?.............................................40
Параметр /I....................................................40
Параметр /J....................................................41
Параметр /KH...................................................41
Параметр /L....................................................42
Параметр /LA...................................................42
Параметр /M....................................................43
Параметр /ML...................................................43
Параметр /MU...................................................44
Параметр /MV#..................................................45
Параметр /MX...................................................45
Параметр /N....................................................46
Параметр /O....................................................46
Параметр /OP...................................................46
Параметр /P....................................................46
Параметр /Q....................................................47
Параметр /R....................................................47


Турбо Ассемблер 3.0/tasm/#1-2 = 2 =

Параметр /S....................................................48
Параметр /T....................................................48
Параметр /V....................................................49
Параметр /W....................................................49
Параметр /X....................................................50
Параметр /Z....................................................51
Параметр /ZD...................................................51
Параметр /ZI...................................................52
Параметр /ZN...................................................52
Косвенные командные файлы......................................53
Файлы конфигурации.............................................53
Глава 3. Общие принципы программирования.........................55
Режим Ideal Турбо Ассемблера...................................55
Для чего используется режим Ideal?.............................56
Переключение в режим Ideal и выход из него.....................56
Отличия режима Ideal и режима MASM.............................58
Выражения и операнды...........................................59
Операции.......................................................60
Подавление корректировок.......................................60
Операнд инструкции BOUND.......................................60
Сегменты и группы..............................................61
Доступ к данным в сегменте, принадлежащем группе...............61
Комментарии в программах.......................................63
Комментарии в конце строки.....................................63
Директива COMMENT..............................................64
Продолжение строки.............................................64
Использование включаемых файлов................................65
Предопределенные идентификаторы................................66
Присваивание идентификаторам значений..........................67
Общая структура модуля.........................................68
Директива VERSION..............................................68
Директива NAME.................................................69
Директива END..................................................69
Вывод сообщения в процессе ассемблирования.....................70
Вывод предупреждающих сообщений................................70
Вывод нескольких сообщений об ошибках..........................72
Глава 4. Объектно-ориентированное программирование...............73
Терминология...................................................73
Для чего в Турбо Ассемблере используются объекты?..............74
Что такое объект?..............................................74
Пример объекта.................................................75
Описание объектов..............................................76
Описание процедуры методa......................................80
Таблица виртуальных методов....................................81
Инициализация таблицы виртуальных методов......................82
Вызов метода объекта...........................................82
Вызов статического метода......................................82
Вызов виртуального метода......................................83
Вызов виртуальных методов "предков"............................86
Кое-что еще о вызове методов...................................87
Создание экземпляра объекта....................................88
Программирование с объектами...................................88
Пример из области программирования.............................89


Турбо Ассемблер 3.0/tasm/#1-2 = 3 =

Глава 5. Использование выражений и значений идентификаторов......91
Константы......................................................91
Числовые константы.............................................91
Изменение используемого по умолчанию основания.................92
Строковые константы............................................93
Идентификаторы.................................................93
Имена идентификаторов..........................................93
Типы идентификаторов...........................................94
Адресные подтипы данных........................................94
Описание сложного адресного подтипа............................96
Выражения......................................................97
Точность в выражениях..........................................98
Константы в выражениях.........................................98
Идентификаторы в выражениях....................................98
Регистры.......................................................99
Стандартные значения идентификаторов..........................100
Значения простых идентификаторов..............................100
Унарная операция LENGTH.......................................102
Унарная операция WIDTH........................................105
Унарная операция MASK.........................................106
Общие арифметические операции.................................106
Простые арифметические операции...............................107
Логические арифметические операции............................108
Поразрядные операции сдвига...................................108
Операции сравнения............................................109
Задание адресного подтипа выражения...........................110
Получение типа выражения......................................111
Переопределение сегментной части адресного выражения..........112
Получение сегмента и смещения адресного выражения.............112
Создание адресного выражения, использующего счетчик
инструкций...................................................113
Определение характеристик выражения...........................113
Ссылки на структуры, объединения и смещения элементов в
таблице......................................................114
Описание содержимого адреса...................................115
Подразумеваемое сложение......................................115
Получение значения старшего или младшего байта выражения......115
Задание 16- или 32-разрядных выражений........................116
Глава 6. Директивы выбора процессора и идентификаторы
процессора...................................................118
Директивы процессоров iAPx86..................................118
Предопределенные идентификаторы...............................120
Идентификатор @Cpu............................................121
Идентификатор @WordSize.......................................123
Директивы сопроцессора 8087...................................123
Директивы эмуляции сопроцессора...............................124
Глава 7. Использование моделей памяти программы и
сегментации..................................................126
Директива MODEL...............................................127
Идентификаторы, генерируемые директивой MODEL.................133
Идентификатор @Model..........................................133
Идентификатор @32Bit..........................................133
Идентификатор @CodeSize.......................................133


Турбо Ассемблер 3.0/tasm/#1-2 = 4 =

Идентификатор @DataSize.......................................133
Идентификатор @Interface......................................134
Упрощенные сегментные директивы...............................135
Идентификаторы, создаваемые упрощенными директивами
сегментации..................................................138
Директива STARTUPCODE.........................................139
Идентификатор @Startup........................................139
Директива EXITCODE............................................139
Определение общих сегментов и групп...........................139
Директива SEGMENT.............................................140
Атрибут комбинирования сегментов..............................141
Атрибут класса сегмента.......................................142
Атрибут выравнивания сегмента.................................142
Атрибут размера сегмента......................................144
Атрибут доступа к сегменту....................................145
Директива ENDS................................................145
Директива GROUP...............................................146
Директива ASSUME..............................................146
Переопределение сегмента......................................147
Изменение упорядочивания сегментов в модуле...................149
Директива .ALPHA..............................................149
Директива .SEQ................................................149
Директива DOSSEG: упорядочивание сегментов в порядке DOS......149
Изменение размера стека.......................................150
Глава 8. Определение типов данных...............................151
Определение перечислимых типов данных.........................151
Определение записей с битовыми полями.........................152
Определение структур и объединений............................154
Открытие определения структуры или объединения................155
Задание элементов структуры и объединения.....................156
Определение меток элементов структур с помощью директивы
LABEL........................................................157
Выравнивание элементов структуры..............................157
Закрытие определения структуры или объединения................158
Вложенные структуры и объединения.............................158
Включение одной именованной структуры в другую................160
Использование имен структур в выражениях......................162
Определение таблиц............................................162
Переопределение элементов таблицы.............................165
Определение именованного типа.................................165
Определение объекта...........................................165
Директива TBLPTR..............................................167
Идентификаторы, определяемые расширенной директивой STRUC.....168
Глава 9. Задание и использование счетчика адреса................169
Идентификатор счетчика адреса $...............................169
Директивы счетчика адреса $...................................169
Директива ORG.................................................170
Директивы EVEN и EVENDATA.....................................172
Директива ALIGN...............................................173
Определение меток.............................................173
Операция :....................................................173
Директива LABEL...............................................175
Директива ::..................................................176


Турбо Ассемблер 3.0/tasm/#1-2 = 5 =

Глава 10. Описание процедур.....................................177
Синтаксис определения процедур................................177
Описание процедур NEAR или FAR................................178
Описание языка процедуры......................................180
Задание модификатора языка....................................183
Определения аргументов и локальных переменных.................184
Синтаксис директив ARG и LOCAL................................186
Область действия аргументов и имен локальных переменных.......188
Сохранение регистров..........................................189
Вложенные процедуры и правила области действия................189
Описание процедур методов для объектов........................191
Глава 11. Управление областью действия идентификаторов..........193
Переопределяемые идентификаторы...............................193
Область действия в границах блока.............................194
Директивы LOCALS и NOLOCALS...................................195
Область действия в границах блока в MASM......................195
Локальные метки в стиле MASM..................................196
Глава 12. Определение данных....................................197
Простые директивы определения данных..........................198
Создание экземпляра структуры или объединения.................202
Инициализация экземпляра структуры или объединения............203
Создание экземпляра записи....................................207
Инициализация экземпляров записи..............................207
Создание экземпляра данных перечислимого типа.................208
Инициализация экземпляра перечислимого типа данных............209
Создание экземпляра таблицы...................................209
Инициализация экземпляров таблицы.............................209
Создание и инициализация экземпляра именованного типа
данных.......................................................210
Создание экземпляра объекта...................................211
Создание экземпляра таблицы виртуальных методов объекта.......211
Соглашения по вызовам, использующиеся в Паскале...............110
Вызов Borland C++ из Турбо Ассемблера.........................111
Компоновка с кодом инициализации С++..........................112
Задание сегмента..............................................112
Выполнение вызова.............................................112
Вызов из Турбо Ассемблера функции Borland C++.................114
Глава 13. Расширенные инструкции..................................9
Эффективная генерация кода: директивы SMART и NOSMART...........9
Расширенные инструкции перехода................................10
Дополнительные инструкции цикла процессора 80386...............11
Дополнительные инструкции ENTER и LEAVE........................11
Дополнительные инструкции возврата.............................11
Расширенные инструкции PUSH и POP..............................12
Инструкции PUSH и POP с несколькими операндами.................13
Использование в инструкциях PUSH и POP указателей..............13
Занесение в стек константа (процессор 8086)....................13
Расширенные инструкции сдвига..................................15
Принудительное переопределение сегментов: инструкции SEGxx.....15
Дополнительные инструкции работы с флагами.....................16
Дополнительные инструкции работы с битами полей................17
Инструкция GETFIELD............................................19
Дополнительная быстрая инструкции непосредственного
умножения.....................................................19
Расширение необходимых инструкций для процессора 80386.........20
Вызов процедур с кадрами стека.................................22
Вызываемые процедуры, содержащие RETURNS.......................23
Вызов процедур методов для объектов: CALL...METHOD.............23
Остаточная рекурсия для методов объектов: инструкция
JMP...METHOD..................................................25
Дополнительные инструкции для объектного программирования......25
Глава 14. Использование макрокоманд..............................26
Текстовые макрокоманды.........................................26
Определение текстовых макрокоманд с помощью директивы EQU......26
Директивы макрокоманд работы с текстовыми строками.............27
Директива CATSTR...............................................28
Директива SUBSTR...............................................28
Директива INSTR................................................28
Директива SIZESTR..............................................28
Примеры макрокоманд работы с текстом...........................29
Макрокоманды, состоящие из нескольких строк....................29
Тело макрокоманды, состоящей из нескольких строк...............29
Использование в макрокомандах символа &........................30
Включение комментариев в тело макрокоманды.....................31
Локальные формальные аргументы.................................31
Директива EXITM................................................33
Директива GOTO и макроидентификаторы перехода..................33
Общие макрокоманды, состоящие из нескольких строк..............34
Вызов общей макрокоманды, состоящей из нескольких строк........36
Литеральные строки в угловых скобках...........................37
Символ !.......................................................37
Символ вычисления выражения %..................................38
Переопределение общей макрокоманды, состоящей из нескольких
строк.........................................................38
Удаление общей макрокоманды: директива PURGE...................38
Определение вложенных и рекурсивных макрокоманд................39
Счетчик повторения макрокоманды................................40
Директива WHILE................................................41
Макрокоманды повторения строк..................................41
Непосредственная макродиректива %..............................42


Турбо Ассемблер 3.0/tasm/#2-2 = 2 =

Включение расширения макрокоманды в файл листинга..............43
Глава 15. Использование условных директив........................44
Синтаксис условных директив....................................44
Директива условного ассемблирования IFxxx......................45
Директивы условного ассемблирования ELSEIFxxx..................47
Директивы генерации сообщений об ошибке ERRxx..................48
Описания конкретных директив...................................49
Безусловные директивы генерации сообщений об ошибке............49
Условные директивы с выражениями...............................49
Условные директивы с идентификатором...........................50
Условные директивы с текстовыми строками.......................52
Условия выполнения прохода Ассемблером.........................56
Включение условных директив в файл листинга....................56
Глава 16. Интерфейс с компоновщиком..............................58
Описание внешних идентификаторов...............................58
Соглашения для конкретного языка...............................58
Описание общедоступных идентификаторов.........................58
Описание идентификаторов библиотеки............................59
Определение внешних идентификаторов............................60
Описание глобальных идентификаторов............................60
Определение общих переменных...................................60
Включение библиотеки...........................................62
Глава 17. Генерация листинга.....................................63
Формат листинга................................................63
Общие директивы управления листингом...........................64
Директивы листинга включаемых файлов...........................65
Директивы вывода блоков условного ассемблирования..............66
Директивы вывода в файл листинга макрокоманд...................67
Директивы вывода листинга перекрестных ссылок..................67
Параметры изменения формата листинга...........................69
Глава 18. Интерфейс Турбо Ассемблера и Borland C++...............73
Вызов из Borland C++ функций Турбо Ассемблера..................74
Основные моменты в интерфейсе Турбо Ассемблера и Borland
C++...........................................................76
Компоновка ассемблерных модулей с С++..........................77
Использование Extern "C" для упрощения компоновки..............78
Модели памяти и сегменты.......................................79
Упрощенные директивы определения сегментов и Borland C++.......79
Старые директивы определения сегментов и Borland C++...........80
Значения по умолчанию: когда необходимо загружать сегменты?....83
Общедоступные и внешние идентификаторы.........................86
Подчеркивания и язык Си........................................86
Различимость строчных и прописные символов в
идентификаторах...............................................88
Типы меток.....................................................88
Внешние дальние идентификаторы.................................90
Командная строка компоновщика..................................91
Взаимодействие между Турбо Ассемблером и Borland C++...........93
Передача параметров............................................93
Сохранение регистров..........................................101
Возврат значений..............................................102
Вызов функции Турбо Ассемблера из Borland C++.................104
Написание на языке Ассемблера функций-элементов С++...........108


Турбо Ассемблер 3.0/tasm/#2-2 = 3 =

Соглашения по вызовам, использующиеся в Паскале...............110
Вызов Borland C++ из Турбо Ассемблера.........................111
Компоновка с кодом инициализации С++..........................112
Задание сегмента..............................................112
Выполнение вызова.............................................112
Вызов из Турбо Ассемблера функции Borland C++.................114
Глава 19. Интерфейс Турбо Ассемблера с Турбо Паскалем...........117
Совместное с Турбо Паскалем использование данных..............118
Директива компилятора $L и внешние подпрограммы...............118
Директива PUBLIC..............................................119
Директива EXTRN...............................................119
Ограничения при использовании объектов типа EXTRN.............122
Использование корректировок сегментов.........................123
Устранение неиспользуемого кода...............................125
Соглашения Турбо Паскаля по передаче параметров...............125
Параметры-значения............................................125
Скалярные типы................................................125
Вещественные значения.........................................126
Типы Single, Double, Extended и Comp и типы сопроцессора
8087.........................................................126
Указатели.....................................................126
Строки........................................................126
Записи и массивы..............................................126
Множества.....................................................127
Параметры-переменные..........................................127
Обеспечение стека.............................................127
Доступ к параметрам...........................................128
Использование для адресации к стеку регистра BP...............128
Директива ARG.................................................129
Турбо Паскаль и директива .MODEL..............................130
Использование другого базового или индексного регистра........131
Результаты функции в Турбо Паскале............................131
Выделение пространства для локальных данных...................132
Выделение статической памяти..................................132
Выделение временной памяти....................................133
Примеры подпрограмм на Ассемблере для Турбо Паскаля...........135
Подпрограмма шестнадцатиричного преобразования общего
назначения...................................................135
Пример обмена содержимого двух переменных.....................138
Пример анализа операционной среды DOS.........................141
Часть 2. ПРИЛОЖЕНИЯ.............................................147
Приложение A. Замечания по программированию.....................148
Упрощенные директивы определения сегмента.....................148
Программы DOS.................................................150
Замечания по программам формата EXE...........................151
Замечания по программам формата COM...........................152
Программы Windows.............................................153
Замечания по динамически компонуемым библиотекам Windows......153
Замечания по прикладным программам Windows....................154
Приложение B. Обзор синтаксических правил Турбо Ассемблера......156
Лексическая грамматика........................................156
Грамматика выражений в режиме MASM............................158
Грамматика выражений в режиме Ideal...........................160


Турбо Ассемблер 3.0/tasm/#2-2 = 4 =

Старшинство ключевых слов.....................................162
Старшинство операций в режиме Ideal...........................162
Старшинство операций в режиме MASM............................162
Ключевые слова и предопределенные идентификаторы..............163
Ключевые слова директив.......................................163
Приложение C. Вопросы совместимости.............................168
Одно- и двухпроходные режимы ассемблирования..................169
Переменные операционной среды.................................170
Формат фирмы Microsoft для двоичных чисел с плавающей
точкой.......................................................170
Приложение D. Утилиты Турбо Ассемблера..........................171
Утилита-преобразователь H2ASH.................................171
Приложение E. Сообщения об ошибках..............................174
Информационные сообщения......................................174
Предупреждающие сообщения и сообщения об ошибках..............176
32-bit segment not allowed without .386.......................176
Argument needs type override..................................176
Argument to operation or instruction has illegal size.........177
Arithmetic overflow...........................................177
ASSUME must be segment register...............................177
Bad keyword in SEGMENT statement..............................177
Can't add relative quantities.................................177
Can't address with currently ASSUMEd segment registers........178
Can't convert to pointer......................................178
Can't emulate 8087 instruction................................178
Can't make variable public....................................179
Can't override ES segment.....................................179
Can't subtract dissimilar relative quantities.................179
Can't use macro name in expression............................179
Can't use this outside macro..................................179
Code or data emission to undeclared segment...................180
Constant assumed to mean Immediate const......................180
Constant too large............................................180
CS not correctly assumed......................................180
CS override in protected mode.................................181
CS unreachable from current segment...........................181
Declaration needs name........................................181
Directive ignored in Turbo Pascal model.......................181
Directive not allowed inside structure definition.............182
Duplicate dummy arguments:_...................................182
ELSE or ENDIF without IF......................................182
Expecting METHOD keyword......................................183
Expecting offset quantity.....................................183
Expecting offset or pointer quantity..........................183
Expecting pointer type........................................183
Expecting record field name...................................183
Expecting register ID.........................................183
Expecting scalar type.........................................183
Expecting segment or group quantity...........................184
Extra characters on line......................................184
Forward reference needs override..............................184
Global type doesn't match symbol type.........................184
ID not member of structure....................................185


Турбо Ассемблер 3.0/tasm/#2-2 = 5 =

Illegal forward reference.....................................185
Illegal immediate.............................................185
Illegal indexing mode.........................................186
Illegal instruction...........................................186
Illegal instruction for currently selected processor(s).......186
Illegal local argument........................................186
Illegal local symbol prefix...................................186
Illegal mаcro argument........................................187
Illegal memory reference......................................187
Illegal number................................................187
Illegal origin address........................................187
Illegal override in structure.................................187
Illegal override register.....................................188
Illegal radix.................................................188
Illegal register for instruction..............................188
Illegal register multiplier...................................188
Illegal segment address.......................................188
Illegal use of constant.......................................189
Illegal use of register.......................................189
Illegal use of segment register...............................189
Illegal USES register.........................................189
Illegal version ID............................................189
Illegal warning ID............................................189
Instruction can be compacted with override....................190
Invalid model type............................................190
Invalid operand(s) to instruction.............................190
Labels can't start with numeric characters....................190
Line too long - truncated.....................................190
Location counter overflow.....................................190
Method call requires object name..............................191
Missing argument list.........................................191
Missing argument or <.........................................191
Missing argument size variable................................191
Missing COMM ID...............................................191
Missing dummy argument........................................192
Missing end quote.............................................192
Missing macro ID..............................................192
Missing module name...........................................192
Missing or illegal language ID................................192
Missing or illegal type specifier.............................193
Missing table member ID.......................................193
Missing term in list..........................................193
Missing text macro............................................193
Model must be specified first.................................193
Module is pass-dependant - compatibility pass was done........193
Name must come first..........................................194
Near jump or call to different CS.............................194
Need address or register......................................194
Need angle brackets for structure fill........................194
Need colon....................................................194
Need expression...............................................195
Need file name after INCLUDE..................................195
Need left parenthesis.........................................195


Турбо Ассемблер 3.0/tasm/#2-2 = 6 =

Need method name..............................................195
Need pointer expression.......................................195
Need quoted string............................................195
Need register in expression...................................196
Need right angle bracket......................................196
Need right curly bracket......................................196
Need right parenthesis........................................196
Need right square bracket.....................................196
Need stack argument...........................................197
Need structure member name....................................197
Not expecting group or segment quantity.......................197
One non-null field allowed per union expansion................197
Only one startup sequence allowed.............................198
Open conditional..............................................198
Open procedure................................................198
Open segment..................................................198
Open structure definition.....................................198
Operand types do not match....................................199
Operation illegal for static table member.....................199
Pass-dependant construction encountered.......................199
Pointer expression needs brackets.............................199
Positive count expecting......................................200
Record field too large........................................200
Record member not found.......................................200
Recursive definition not allowed for EQU......................200
Register must be AL or AX.....................................200
Register must be DX...........................................200
Relative jump out of range by __ bytes........................201
Relative quantity illegal.....................................201
Reserved word used as symbol..................................201
Rotate count must be constant or CL...........................201
Rotate count out of range.....................................201
Segment alignment not strict enough...........................202
Segment attributes illegally redefined........................202
Segment name is superfluous...................................202
String too long...............................................202
Symbol already defined:__.....................................203
Symbol already different kind.................................203
Symbol has no width or mask...................................203
Symbol is not a segment or already part of a group............203
Text macro expansion exceeds maximum line length..............203
Too few operands to instruction...............................203
Too many errors or warnings...................................204
Too many initial values.......................................204
Too many register multipliers in expression...................204
Too many registers in expression..............................204
Too many USES registers.......................................204
Trailling null value assumed..................................205
Undefined symbol..............................................205
Unexpected end of file (no END directive).....................205
Unknown character.............................................205
Unmatched ENDP:_..............................................205
Unmatched ENDS:_..............................................205


Турбо Ассемблер 3.0/tasm/#2-2 = 7 =

User-generated error..........................................206
Value out of range............................................206
Сообщения о фатальных ошибках.................................207
Bad switch....................................................207
Can't find @file __...........................................207
Сan't locate file __..........................................207
Error writing to listing file.................................207
Error writing to object file..................................207
File not found................................................207
File was changed or deleted while assembly in progress........208
Insufficient memory to process command line...................208
Internal error................................................208
Invalid command line..........................................208
Invalid number after _........................................208
Out of hash space.............................................208
Out of memory.................................................209
Out of string space...........................................209
Too many errors found.........................................209
Unexpected end of file (no END directive).....................209


У вас нет необходимых прав для просмотра вложений в этом сообщении.


06.12.2009 9:53
Профиль ICQ
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 


Кто сейчас на конференции

Зарегистрированные пользователи: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
cron
© 2013 «Форум программистов Украины»