Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Білети 9 і 10.doc
Скачиваний:
1
Добавлен:
18.09.2019
Размер:
2.37 Mб
Скачать
  1. Сегментные регистры:

Сегментные регистры необходимы для обращения к тому или иному сегменту памяти (например, видеобуферу). Сегментация памяти довольно сложная и объемная тема, которую также будем рассматривать в последующих выпусках. 

Новые операторы

Команда

Перевод (с англ.)

Назначение

Процессор

INC приемник

Increment инкремент

Увеличение на единицу

8086

Команда INC увеличивает на единицу регистр. Она эквивалентна команде

ADD источник, 1

только выполняется гораздо быстрее.

Примеры:

mov al,15

inc al ---> теперь AL = 16 (эквивалентна add al,1)

mov dh,39h

inc dh ---> DH = 3Ah (эквивалентна add dh,1)

mov cl,4Fh

inc cl ---> CL = 50h (эквивалентна add cl,1)

Если мы вспомним, что программа в любой момент может обратиться к одному из четырех сегментов: к текущему сегменту кода, данных, стека или к дополнительному (сегменту данных), то нас вряд ли удивит, что в состав процессора входят четыре 16-разрядных регистра, являющихся указателями адресов текущих Сегментов. Их функции строго дифференцированы, а потому каждый регистр имеет свою "профессию": CS определяет сегмент кода, DS — сегмент данных, SS — сегмент стека и ES — дополнительный сегмент (рис. 6).

Теперь для того, чтобы, к примеру, произвести выборку слова данных из стека, программе достаточно обратиться к регистрам SS и SP, сложить находящиеся в них числа по уже известному нам правилу и в качестве результата получить реальный адрес вершины стека.

  1. Керування формами в С++Builder:

Основным элементом любого приложения является форма - контейнер, в котором размещаются другие визуальные и невизуальные компоненты. С точки зрения пользователя форма - это окно, в котором он работает с приложением. Каждой новой форме, видимой в приложении, соответствует свой модуль (unit), описывающий эту форму как класс и включающий, если необходимо, какие-то дополнительные константы, переменные, функции и процедуры.

Надо задавать уникальное имя формы в свойстве Name. О наступлении случая совпадения имен выдается следующее предупреждение: "The project already contains a form or module named Form 1", которое означает "Проект уже содержит форму или модуль с именем Form1".

8.1. Включение в проект новой формы.

8.1.1. Способы включения в проект новой формы:

  • File => New Form

  • Соответствующая быстрая кнопка

8.1.2. Способы включения в проект ранее разработанных форм:

  • Project => Add to Project

  • Соответствующая быстрая кнопка

  • Копирование соответствующих файлов из одного каталога в другой, т.е. файлов: *.cpp, *.h, *.dfm.

  • Выполнить команду File => Open и затем команду File => Save As, тогда С++Builder автоматически скопирует файлы, описывающие форму.

  • Добавление формы из ДЕПОЗИТАРИЯ: выполнить команду File => New => Other, в открывшемся окне New Items на страницах Form and Dialogs можно заимствовать ряд форм для своего проекта. Форма заимствования определяется тремя радиокнопками: (1), (2), (3)

(1) Copy - копировать (2) Inherit - наследовать (3) Use - использовать

В случае совпадения имен добавляемых файлов надо перейти в окно редактора кода добавляемого приложения и сохранить конфликтующий модуль командой File => Save As в каталоге "нового" приложения, дав ему новое имя. В случае включения формы способами 8.1.2. , форма становится общей для обоих приложений, изменение которой отразиться в обоих приложениях.