Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Юрий Владимирович самый уважаемы человек =)экза...doc
Скачиваний:
5
Добавлен:
12.09.2019
Размер:
1.41 Mб
Скачать

22. Флаг нуля zf

Используется для индикации равен­ства нулю результата операций с байтами или сло­вами.

В этом случае флаг ZF становится рав­ным I. Флаг находится в шестом разряде регистра флагов.

23. Флаг знака sf

Используется для индикации состояния, при котором старший бит результата однобайтовой или двухбайтовой операции равен 1.

Поскольку числа в системах, базирующихся на микро­процессоре 8088, представляются в стандартном до­полнительном коде, флаг знака указывает знак ре­зультата операции.

Если флаг SF установлен в 1, то это значит, что результат  -  отрицательное число.

Если флаг SF равен 0, результат  -  положительное число.

Флаг знака SF расположен в седьмом разряде регистра флагов.

24 Флаг переполнения (OF) сигнализирует выход за допустимый диапазон результата арифметических операций над знаковыми операндами. Его значение определяется как (X XOR Y), где X суть перенос за разрядную сетку (то есть то, что заносится во флаг CF), а Y суть перенос в старший разряд. Таким образом, флаг OF предназначен для обнаружения переполнения при работе исключительно со знаковыми операндами — для беззнаковых эту работу выполняет флаг CF.

25. Флаг четности.

Флаг четности PF показывает, четно или нечетно число единиц результата. Определение четности - это метод контроля значения данных. Бит четности - это дополнительный бит, который контролирует значение других битов данных. Программа может использовать флаг четности для того, чтобы определить, должен ли быть установлен этот дополнительный бит. При чтении и записи в память IBM PC использует четность для контроля хранимых значений, но этот контроль четности полностью выполняется аппаратурой и не влияет на флаг четности.

Флаг четности устанавливается равным 1, если результат операции имеет четное число единиц, и устанавливается равным 0, если число единиц результата нечетно. При обычных арифметических и логических действиях флаг четности используется мало.

26. Флаг полупереносу.

AF – флаг полупереноса. Устанавливается в 1, если в результате предыдущей операции произошёл перенос или заём из третьего бита в четвёртый. Этот флаг используется автоматически командами двоично-десятичной коррекции. Например, после двух команд: mov eax, 15; inc eax; флаг AF будет равен единице. После последовательности команд: mov eax, 16; dec eax; флаг AF также будет равен единице

27. Флаг трассировки.

TF Trap Flag Флаг трассировки (или флаг ловушки). Он был предусмотрен для работы отладчиков в пошаговом выполнении, которые не используют защищённый режим. Если этот флаг установить в 1, то после выполнения каждой программной команды управление временно передаётся отладчику (вызывается прерывание 1).

28. Флаг напрямку.

DF Direction Flag Флаг направления. Контролирует поведение команд обработки строк. Если установлен в 1, то строки обрабатываются в сторону уменьшения адресов, если сброшен в 0, то наоборот.

29. Флаг переривание.

IF Interrupt Enable Flag Флаг разрешения прерываний. Если сбросить этот флаг в 0, то процессор перестанет обрабатывать прерывания от внешних устройств. Обычно его сбрасывают на короткое время для выполнения критических участков программы.

30 Модель памяти Tiny. Для этой модели создается один сегмент кода и один сегмент данных, причем суммарный размер этих сегментов не должен превышать 64 Кбайт. Эта модель памяти используется при создании загрузочных модулей с расширением имени com. Вы не можете использовать эту модель памяти при создании приложений Windows.

Tiny

Эта модель памяти используется в тех случаях, когда абсолютным критерием достоинства программы является размер ее загрузочного кода Как вы уже поняли, это минимальная из моделей памяти. Все четыре сегментных регистра (CS, DS, SS и ES) устанавливаются на один и тот же адрес, что дает общий размер кода, данных и стека, равный 64К. Используются исключительно ближние указатели. Программы с моделью памяти tuny могут быть преобразованы к формату .COM при компоновке с опцией /t.

31.Модель памяти Small. Для этой модели создается один сегмент кода и один сегмент данных, причем суммарный размер этих сегментов не должен превышать 128 Кбайт. Размер массивов данных, созданных с использованием этой модели, не должен превышать 64 Кбайт. Все указатели являются ближними. Эта модель памяти пригодна для приложений Windows. Все примеры приложений, приведенные в нашей книге, созданы с использованием модели памяти Small.

Small

Эта модель хорошо подходит для небольших прикладных программ. Сегменты кода и данных расположены отдельно друг от друга и не перекрываются, что позволяет иметь 64К кода программы и 64К данных и стека. Используются только ближние указатели.

32.Модель памяти Large. В этой модели памяти создается несколько сегментов кода и несколько сегментов данных. Размер массива данных по-прежнему не должен превышать 64 Кбайт. Для вызова функций и адресации данных используются 32-разрядные адреса в формате <селектор:смещение>.

Large

Модели large и huge применяются только в очень больших программах. Дальние указатели используются как для кода, так и для данных, что дает предельный размер 1 Мб для обоих.

 

33.Модель памяти Huge. Эта модель памяти во всем аналогична модели Large, но допускает работу с массивами неограниченного размера.

Huge

Дальние указатели используются как для кода, так и для данных. Turbo C++ обычно ограничивает размер статических данных 64К; модель памяти huge отменяет это ограничение, позволяя статическим данным занимать более 64К. Для выбора любой из этих моделей памяти вы должны либо воспользоваться соответствующей опцией меню интегрированной среды, либо ввести опцию при запуске компилятора командной строки.

34.Модель памяти Compact. При использовании этой модели памяти можно создать только один сегмент кода, но несколько сегментов данных. Размер массива данных не должен превышать 64 Кбайт. Для вызова функций, определенных внутри приложения, используется только компонента смещения. Для адресации данных применяются 32-разрядные адреса.

Compact

Лучше всего использовать в тех случаях, когда размер кода невелик, но требуется адресация большого объема данных. Ситуация, противоположная относительно модели Medium: дальние указатели используются для данных, но не для кода. Следовательно, код здесь ограничен 64К, а предельный размер данных - 1 Мб.