Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Интересное:
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
I. Сложение с использованием флага переноса.
Рассмотренная ранее инструкция сложения ADD выполняет простое сложение двух беззнаковых кодов. Инструкция ADC складывает три числа: два операнда из регистров общего назначения, как и раньше, плюс значение бита флага переноса из регистра флагов.
Задание.
а) Выполните сложение FFFFh и 1.
б) Затем выполните инструкцию: ADC BX, AX
В результате сложения 1 и 0, в регистре BX будет число 2. (надо пояснить, что останется в регистрах после первой операции).
II. Вычитание с использованием флага переноса.
При выполнении инструкции SBB из разности операндов вычитается значение флага переноса.
Задание.
а) Выполните сложение FFFFh и 1.
б) Затем выполните инструкцию: SBB BX, AX
Флаг нуля.
Занесите в регистры BX и AX два равных числа, теперь инструкцией SUB произведите вычитание одного числа из другого, в результате чего должен быть установлен флаг нуля Z=1 (Zero Flag).
Флаг знака.
Данный флаг позволяет узнать знак числа. Если вычесть из нуля единицу, то результат будет FFFFh, при этом устанавливается флаг знака S=1 (Sign Flag).
Флаг переполнения.
Флаг переполнения устанавливается в той ситуации, когда этого не должно было произойти. Занесите в регистр AX число 7000h, а в BX 6000h и выполните инструкцию сложения, в результате AX будет содержать число D000h или-12288. Это ошибка, так как результат переполняет слово и является отрицательным, поэтому микропроцессор устанавливает флаг переполнения О=1(Overflow Flag)
Контрольные вопросы
1. Каковы задача и содержание этапа отладки программ?
2. Типы программ-отладчиков и особенности их работы.
3. Понятие регистра микропроцессора и машинного слова.
4. Какая инструкция позволяет выполнять сложение целых чисел? Где размещаются операнды и результат?
5. Какова последовательность выполнения инструкции сложения чисел в среде программы Turbo Debugger?
6. Какая инструкция позволяет выполнять вычитание целых чисел? Где размещаются операнды и результат?
7. В каком виде микропроцессор представляет отрицательные числа? Как будет представлен результат выполнения операции 5h – 8h?
8. Поясните особенности представления и именования двухбайтовых регистров общего назначения в виде совокупности двух однобайтовых.
9. Какими особенностями обладает инструкция умножения целых чисел? Где размещаются операнды и результат?
10. Какими особенностями обладает инструкция деления целых чисел? Где размещаются операнды и результат?
11. Поясните, что означает термин "переполнение". Как выяснить, что при выполнении операции произошло переполнение?
12. Что такое флаг, и для чего он нужен?
13. С помощью какой инструкции, и каким образом происходит сложение с учетом флага переноса?
14. С помощью какой инструкции, и каким образом происходит вычитание с учетом флага переноса?
15. Объясните назначение флагов переноса и нуля?
16. Объясните назначение флагов переполнения и знака?
Начальные сведения о языке Ассемблер
Аппаратная поддержка языка
При выполнении программы, микропроцессор взаимодействует с оперативной памятью, где хранятся исполняемая программа и данные, а так же с периферийными устройствами.
Программируемая структура процессора
Для организации вычислений микропроцессор i8086 имеет в своём составе 14 шестнадцатиразрядных регистров, которые обеспечивают выполнение программы:
| Регистры общего назначения | Сегментные регистры | Специальные регистры | |||||
| AH | AL | AX | CS | SP | Указатель стека | ||
| BH | BL | BX | DS | BP | Указатель базы стека | ||
| CH | CL | CX | ES | IP | Указатель инструкций | ||
| DH | DL | DX | SS | FLAGS | Регистр флагов | ||
| SI | |||||||
| DI |
Регистры общего назначения:
AX(AH, AL), BX(BH, BL), CX(CH, CL), DX(DH, DL) делятся программно на пары однобайтных регистров и могут использоваться для хранения данных. Разбиение на однобайтные регистры позволяет увеличить общее число регистров;
SP, BP – указатель и база стека, соответственно, обеспечивают доступ к данным в стеке, могут использоваться для хранения данных, но делать это не рекомендуется, так как при этом возможно нарушение адресации в стеке, особенно при использовании SP.
SI, DI – шестнадцатиразрядные регистры для хранения данных.
CS, DS, ES, SS – хранят адреса сегментов в памяти, не могут использоваться для хранения данных.
IP – регистр инструкций – хранит адрес (смещение) следующей исполняемой команды.
FLAGS – регистр флагов содержит набор битовых флагов, определяющий текущее состояние процессора и результат выполнения предыдущей команды (таблица 2.1).
| Таблица 2.1 | ||
| Регистр флагов процессора | ||
| Флаг | Название | Назначение |
| О | Переполнение | Переполнение при выполнении арифметических операций |
| D | Направление | Направление пересылки данных при выполнении строковых команд |
| I | Прерывание | Разрешает/Запрещает внешние прерывания |
| T | Пошаговый режим | Останов после выполнения каждой команды(используется отладчиками) |
| S | Знак | Знак результата выполненной команды(0 – плюс, 1 – минус) |
| Z | Ноль | Значение результата выполненной команды(0 – ненулевой, 1 – нулевой) |
| A | Внешний перенос | Используется для специальных арифметических операций |
| P | Контроль чётности | Число единиц в операнде(0 – нечётное, 1 – нечётное) |
| C | Перенос | Содержит перенос из старшего бита при выполнении арифметических операциях |
Структура памяти
Память, с которой взаимодействует процессор при обработке программ, называется Оперативным Запоминающим Устройством (ОЗУ) или Random Access Memory (RAM). Она состоит из набора однобайтных ячеек, обращение к которым происходит по их номерам (физическим адресам). Число ячеек зависит от ширины шины адреса и составляет для процессора i8086 (ширина шины адреса равна 20) 220 – ячеек (1Мбайт). Для современных процессоров с шириной шины адреса 32 объём ОЗУ может доходить до 4 Гбайт.
Данные можно читать или сохранять в ОЗУ байтами, указывая номер требуемой ячейки или словами (2 байта), указывая адрес младшей ячейки памяти и вводя специальный префикс.
Сегментация памяти
Для обращения к памяти процессор предварительно помещает адрес ячейки в один из своих регистров, но для процессора i8086, очевидно нельзя в шестнадцатиразрядном регистре хранить двадцатиразрядный адрес. Поэтому применяют так называемую сегментацию памяти, которая заключается в том, что истинный, физический адрес ячейки хранится в двух регистрах.
Один из них – сегментный, он хранит адрес начала блока памяти, который и называется сегментом. Если к шестнадцати разрядам сегмента мысленно справа дописать четыре двоичных нуля(16+4=20), то получим физический адрес начала сегмента в ОЗУ. Второй регистр хранит величину смещения адреса требуемой ячейки от начала сегмента. Адрес ячейки памяти записывается в виде двойного слова (4 байта): <сегмент>:<смещение>.
Сегмент всегда начинается с ячейки, номер которой заканчивается на 4 двоичных (или один шестнадцатеричный) нуля. Минимальная длина сегмента 16 байтов (параграф). Максимальная длина определяется длиной регистра, хранящего смещение и равна 216(64 Кбайта).
Пара регистров CS:IP(<сегмент>:<смещение>) определяют адрес следующей команды программы.
Для адресации данных используются сегментные регистры DS и ES, а в качестве регистров, хранящих смещение, используются регистры общего назначения BX, SI, DI. Для работы с сегментом стека используют сегментный регистр SS и регистр BP.
|
|
|
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!