| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
ры:
ЪДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Регистр і Значение і
ГДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і CS,DS,ES,SS і Содержит адрес параграфа в PSP программы. і
і і і
і IP і Устанавливается в значение 100h. і
і і і
і SP і Устанавливается в 0FFFEh (последнее слово і
і і в сегменте программы. і
АДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
Если вы не хотите размещать стек в конце сегмента программы,
то нужно установить новый стек. Для такого стека используйте неи-
нициализированный сегмент данных (UDATASEG).
Хотя программы COM должны определяться с моделью памяти
TINY, с помощью директив CODESEG, DATASEG и UDATASEG можно разде-
лить код данные и неинициализированные данные.
Турбо Ассемблер 3.0/tasm/#2-2 = 153 =
Как и в случае программ EXE, когда вы загружаете программу
COM, Турбо Ассемблер выделяет для ее завершения всю оставшуюся
память. При возврате памяти в DOS убедитесь, что вы не освободи-
ли непреднамеренно неинициализированные данные.
Данные вопросы иллюстрируются файлом-примером COMPROPG.ASM,
который можно найти на дистрибутивных дисках Турбо Ассемблера.
Чтобы сформировать программу COM, используйте утилиту MAKE.
В формирующем файле MAEKFILE следует указать все модули, с кото-
рыми компонуется программа, например:
COMPROG.COM: COMPROG.OBJ
TLINK COMPROG;
COMPROG.OBJ: COMPROG.ASM
TASM COMPROG
Программы Windows
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Турбо Ассемблер можно использовать для создания прикладных
программ Windows. Windows может работать либо в реальном режиме
(на всех процессорах 8086) или в защищенном режиме (на процессоре
80286 и старше). Таким образом программа, написанная для Windows,
может работать в защищенном режиме. С помощью директив CODESEG,
DATASEG и UDATASEG следует аккуратно разделить код и данные и ис-
пользовать директиву WARN PRO, чтобы отмечать любые проблемы с
доступом, которые могут возникать во время ассемблирования. Нако-
нец, в программах защищенного режима не следует пытаться устанав-
ливать сегментные регистры в вычисленные значения параграфов сег-
мента. Значениями сегментов в защищенном режиме не являются
адреса параграфов. Вместо этого используются дескрипторы, которые
не имеют смысла в прикладной программе.
Кроме Турбо Ассемблера и Турбо отладчика для создания эффек-
тивных прикладных программ Windows требуются другие средства. В
частности, вы должны располагать компилятором Borland C++ (либо
Microsoft C 2.6 и Windows Software Dewelopment Kit). Прикладные
программы Windows обычно требуют наличия утилиты-компилятора ре-
сурсов (RC) этих пакетов. Должны быть также доступны стандартные
библиотеки. В Windows также необходим компоновщик (например,
TLINK) и утилита построения программ (например, MAKE).
Данное приложение содержит простейшие рекомендации по созда-
нию прикладных программ Windows и динамически компонуемых библио-
тек (DLL). Более полное описание прикладных программ Windows мож-
но найти в "Руководстве пользователя по С++" и соответствующей
документации по Windows.
Замечания по динамически компонуемым библиотекам Windows
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Динамически компонуемая библиотека (DLL) представляет собой
Турбо Ассемблер 3.0/tasm/#2-2 = 154 =
группу процедур, которую вы можете вызывать из прикладных прог-
рамм Windows. Библиотеки DLL расширяют интерфейс прикладных прог-
рамм Windows.
Библиотеки DLL выполняют множество функций. Например, вы мо-
жете в DLL неинтерактивные программы DOS. С помощью DLL можно
добавить новые средства работы с экраном.
На дистрибутивном диске Турбо Ассемблера можно найти пример
программы с именем DLLPROG.ASM, который иллюстрирует DLL.
Для построения DLL можно использовать утилиту MAKE. Формиру-
ющий файл должен включать в себя все модули, которые должны ком-
поноваться с DLL, например:
dllprog.dll: dllprog.obj dllprog.def
TLINK dllprog,,,,dllprog
RC dllprog.dll
dllprog.obj: dllprog.asm
TASM dllprog
Данный процесс построения требует наличия следующего файла
определений компоновщика DLLPROG.DEF:
LIBRARY DLLPROG
EXETYPE WINDOWS
CODE PRELOAD MOVEABLE DISCARDABLE ; CODE применяется к
; сегментам _TEXT или
; в классе CODE
DATA PRELOAD MOVEABLE SINGLE ; DATE применяется ко
; всем сегментам в
; группе DGROUP и в
; классе DATA
; (должен быть
; SINGLE для всех DLL
HEAPSIZE 0
Замечания по прикладным программам Windows
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Прикладная программа Windows во многом аналогична DLL с
единственной процедурой с именем WinMain. Windows вызывает
WinMain для запуска процедуры. Прикладная программа имеет обычно
стандартную структуру, которая позволяет ей взаимодействовать с
графической операционной средой Windows.
Пример прикладной программы Windows можно найти в файле
WINPROC.ASM на дистрибутивных дисках Турбо Ассемблера. В данном
примере для вывода сообщения на экран используются функциональные
возможности, обеспечиваемые предыдущим примером DLL.
Турбо Ассемблер 3.0/tasm/#2-2 = 155 =
Для построения прикладной программы Wiondows можно использо-
вать утилиту MAKE. При этом в формирующем файле следует указать
все модули, компонуемые с данной прикладной программой:
winproc.exe: winprog.obj winprog.def winprogg.res
TLINK winprog,,,,winprog
RC winprog.res
winproc.res:winproc.rc
RC -r winproc.rc
winproc.obj: winprog.asm winprog.inc
TASM winprog
Этот процесс построения требует использования следующего
файла определений компоновщика WINPROG.DEF:
NAME WINPROG
EXETYPE WINDOWS
CODE MOVEABLE DISCARDABLE
DATA MOVEABLE MULTIPLE DISCARDABLE
STACKSIZE 5120 ; минимум для прикладных
; программ Windows
;-----------------------------------------------------------
; Определить импортируемые функции. (Это не обязательно, ес-
; ли вы выполняете компоновку с библиотекой импорта типа
; IMPORT.LIB или LIBW.LIB.)
;-----------------------------------------------------------
IMPORTS DLLPROG.SetHello
Турбо Ассемблер 3.0/tasm/#2-2 = 156 =
Приложение B. Обзор синтаксических правил Турбо Ассемблера
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
В этом приложении для описания синтаксиса выражений Турбо
Ассемблера, используется модифицированная форма Бекуса-Наура
(BNF). Символ ::= описывает синтаксический результат. Далее во
всех разделах многоточие (...) означает, что предшествующий эле-
мент может быть повторен любое число раз. В данном приложении
описываются также ключевые слова и их старшинство.
Лексическая грамматика
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
допустимая_строка ::=
пропуск допустимая_строка
знак_пунктуации допустимая_строка
числовая_строка допустимая_строка
идентификатор_строки допустимая_строка
нуль
пропуск ::=
символ_пробела пропуск
символ_пробела
символ_пробела ::=
все управляющие символы, символы > 128, ' '
идентификатор_строки ::=
идентификатор_символа идентификатор_строки_2
|
adfun.ru
|
|
|
|