Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен по архитектуре ЭВМ (v2.0 beta).docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
735.19 Кб
Скачать

63. Регистры процессора 8086 – 80816. Регистры данных, регистры –указатели, сегментные регистры.

Регистры общего назначения — это регистры данных, каждый из которых помимо хранения операндов и результатов операций имеет еще и свое специфическое назначение:

регистр AX (accumulator) — умножение, деление, обмен с устройствами ввода/вывода (команды ввода и вывода);

регистр BX (base) — базовый регистр в вычислениях адреса, часто указывает на начальный адрес (называемый базой) структуры в памяти;

регистр CX (count) — счетчик циклов, определяет количество повторов некоторой оперции;

регистр DX (data) — определение адреса ввода/вывода, так же может содержать данные, передаваемые для обработки в подпрограммы.

Регистры-указатели BP и SP используются для работы со стеком. BP (Base Pointer) позволяет работать с переменными в стеке. Его также можно использовать в других целях. SP (Stack Pointer) указывает на вершину стека. Он используется командами, которые работают со стеком.

Сегментные регистры CS (Code Segment), DS (Data Segment), SS (Stack Segment) и ES (Enhanced Segment) предназначены для обеспечения сегментной адресации. Код находится в сегменте кода, данные — в сегменте данных, стек — в сегменте стека и есть еще дополнительный сегмент данных. Реальный физический адрес получется путём сдвига содержимого сегментного регистра на 4 бита влево и прибавления к нему смещения (относительного адреса внутри сегмента).

Все внутренние регистры процессора Intel 8086 являются 16-битными:

64. Команды в ассемблере: загрузка, сложение, вычитание, inc, dec. Привести примеры.

Команда загрузки - mov

Пример:

MOV al, 10; , где al - регистр, 10 - значение {Загрузка числа 10 в регистр al}

=> 10

Команда сложения - add

Пример:

//Сначала загрузка, затем действие с регистром

mov al, 15;

ADD al, 10; , где al - регистр, к значению которого хотим прибавить число, 10 - число, которое хотим прибавить { Сложение значения регистра и числа 10}

=> 25

Команда вычитания - sub

Пример:

//Аналогично сложению

mov al, 15;

SUB al, 5; , al - регистр, от значения которого производится вычитание, 5 - значение, вычитаемое из регистра { вычитание 5 из значения регистра)

=> 10

Команда inc - прибавляет единицу к значению регистра

Пример:

mov ah, 15;

INC ah

=> 16

Команда dec - вычитает единицу из значения регистра

Пример:

mov ah, 15;

DEC ah

=> 14