Страница 2 из 56
Порядок программирования смешанных моделей памяти:
модификация типа адресации..................................345
Объявление функций как NEAR или FAR.........................348
Объявление указателей как NEAR, FAR или HUGE................351
Способ указания на данный сегмент: Offset адрес (смещение)..355
Построение простых операторов объявления....................356
Использование библиотечных файлов...........................362
Компоновка смешанных модулей................................365
Программирование с совмещением языков.......................369
Последовательности передачи параметров типа Си и Паскаль....369
Последовательность передачи параметров типа Си..............370
Последовательность передачи параметров типа Паскаль.........372
Интерфейс с языком ассемблера...............................378
Порядок вызова ассемблера из Турбо Си.......................378
Определение констант данных и переменных....................384
Определение глобальных и внешних идентификаторов............385
Порядок вызова Турбо Си из .ASM.............................388
Указатели на функции........................................388
Указатели на данные.........................................389
Создание подпрограмм на ассемблере..........................392
Передача параметров.........................................394
Управление возвращаемыми величинами.........................395
Соглашения по регистрам.....................................403
Вызов Си-функций из .ASM подпрограмм........................405
ПРОГРАММИРОВАНИЕ НА НИЗКОМ УРОВНЕ:
псевдопеременные, встроенный ассемблер и функции прерывания.409
Псевдопеременные............................................409
Использование встроенного ассемблера........................416
Команды.....................................................423
Строковые команды...........................................426
Префиксы повторения.........................................427
Команды перехода............................................427
Директивы ассемблера........................................429
Указатели встроенного ассемблера к данным и функциям........429
Встроенный ассемблер и регистровые переменные...............431
- 11,12 -
смещения и замещения размеров операндов.....................433
Использование элементов Си-структуры........................434
Использование команд перехода и меток.......................437
Функции прерываний..........................................438
Примеры программирования на низком уровне...................441
Использование библиотек программ для работы с плавающей
точкой.....................................................445
Эмуляция микросхемы 8087/80287..............................447
сопроцессора 8087/80287.....................................451
Если вы не используете плавающую точку......................453
Переменная среды 87.........................................457
Регистры и 8087/80287.......................................460
Использование matherr с плавающей точкой....................461
Предостережения и советы....................................462
Как Турбо Си использует RAM.................................462
Нужно ли вам использовать Паскаль-соглашения?...............463
Заключение..................................................464
Г Л А В А 8
-------------
ВИДЕОФУНКЦИИ ТУРБО СИ
-----------------------------------------------------------------
Турбо Си предлагает полную библиотеку графических функций,
при помощи которой вы можете изображать на экране цветные и черно
-белые графики и диаграммы.
В этой главе...
-----------------------------------------------------------------
В этой главе мы сначала немного обсудим видеорежимы и окна.
Потом мы раскажем о программировании в текстовых, а затем и гра-
фических режимах.
Новые видеофункции Турбо Си основаны на заимствовании прог-
рамм из Турбо Паскаля. Если вы еще не знакомы с управлением на
вашем ПК режимами экрана, с созданием текстовых и графических
окон и управлением ими, то уделите несколько минут на знакомство
- 13,14 -
с этой темой.
Несколько слов о видеорежимах.
-----------------------------------------------------------------
У вашего ПК имеется устройство типа видеоадаптера. Это может
быть монохромный адаптер дисплея - Monochrome Display Adapter
(MDA) для вывода на дисплей только текста, или это может быть
адаптер с возможностью вывода графики - Color Graphics Adapter
(CGA), Enhanced Graphics Adapter (EGA) или Hercules Monochrome
Graphics Adapter. Каждый адаптер можно устанавливать в различные
режимы: 80- и 40-символьный (для текстов), с разной разрешающей
способностью (для графики), цветной или черно-белый.
Режимы экрана определяются при вводе в программу одной из
соответствующих функций (textmode, initgraph или setgraphmode).
# При текстовом режиме(text mode) экран делится на ячейки
(80 или 40 колонок в ширину и 25 строк в высоту). Каждая ячейка
состоит из атрибута и символа. Символ - это выводимый на экран
ASCII символ, а атрибут показывает, как символ представлен на
дисплее (цвет, интенсивность и т.д.). Турбо Си обеспечивает пол-
ный набор подпрограмм для управления текстовым экраном, непос-
редственного вывода текста на экран и для управления атрибутами
- 15,16 -
ячейки.
# При графическом режиме(graphics mode) экран вашего ПК де-
лится на точки растра (пиксели); каждая точка растра выглядит од-
ной точкой на экране. Количество точек (разрешающая способность)
зависит от типа видеоадаптера, установленного на вашей системе, и
текущего режима адаптера. Вы можете использовать функции Турбо Си
из новой графической библиотеки для изображения графики на экра-
не: можете рисовать линии и графики, выделять геометрические фи-
гуры и управлять цветом каждой точки растра.
В текстовом режиме верхний левый угол экрана - это позиция
(1, 1), координата x возрастает слева на право, а координата y -
сверху вниз. В графическом режиме верхний левый угол - это пози-
ция (0,0), а координаты направлены таким же образом.
Несколько слов о текстовых и графических окнах
-----------------------------------------------------------------
Турбо Си обеспечивает функции для создания и управления ок-
нами на экране в текстовом и в графическом режимах. Если вы еще
не знакомы с окнами и областями просмотра, то прочитайте предла-
гаемый краткий обзор. Новые функции Турбо Си для управления текс-
товыми и графическими окнами описаны ниже в этой главе в разделах
"Программирование в текстовом режиме" и "Программирование в гра-
фическом режиме".
Что такое окно?
-----------------------------------------------------------------
Окно - это прямоугольная область, заданная на видеоэкране
вашего ПК при работе в текстовом режиме. Когда ваша программа
производит вывод на экран, вывод ограничен активным окном. Ос-
тальная часть экрана (за пределами окна) остается неизменной.
По умолчанию окно распространяется на весь экран. Ваша прог-
- 17,18 -
рамма может изменить это состояние и сделать окно меньше (с по-
мощью вызова функции window). Эта функция определяет расположение
окна в координатах экрана.
Что такое viewport (графическое окно)?
-----------------------------------------------------------------
В графическом режиме вы также можете определить прямоуголь-
ный участок на экране ПК - это область представления графической
информации или графическое окно. Когда ваша программа выдает на
экран рисунки и т.п., экраном фактически является графическое ок-
но. Остальная часть экрана (за пределами окна) остается без изме-
нений. Графическое окно задается в координатах экрана функцией
setviewport.