Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laborator2.doc
Скачиваний:
10
Добавлен:
12.04.2015
Размер:
215.55 Кб
Скачать

9

Лабораторная работа №2

ИЗУЧЕНИЕ АРИФМЕТИЧЕСКИХ КОМАНД.

1.1 Цель лабораторной работы:

Изучение ситуаций переноса(заема) и/или переполнения в командах сложения, вычитания, умножения, деления. Изучение особенностей знаковой и беззнаковой интерпретации данных. Изучение синтаксиса команд умножения и деления.

1.2 Задание

  1. Написать программу, демонстрирующую ситуации переноса(заема), переполнения на ариф. командах (см. таблицу вариантов); подобрать операнды и выполнить знаковое и беззнаковое умножение и деление с целью демонстрации различий между знаковыми и беззнаковыми командами.

  2. Получите файл листинга программы .LST.

  3. Выпишите машинные коды команд : ADD,ADC,SUB,SBB,MUL,IMUL.,DIV,IDIV.

1.3 Содержание отчета

  • титульный лист;

  • задание;

  • текст программы в виде распечатанного .LSTфайла с комментариями;

  • результаты работы программы (.CRFфайл, состояния регистров, дампы (dump) памяти;

  • машинные коды требуемых команд.

2. Основные понятия

2.1 Программная модель МП – реальный режим (рис.1)

Рис.1

Универсальные регистры

Любой универсальный регистр может рассматриваться, как 32-разрядный (ЕАХ) или как 16-разрядный (АХ) или как пара 8-разрядных (AHиAL).

Регистр (Е)АХ – накопитель (аккумулятор). Он оптимизирован для выполнения ряда арифметических и логических операций (например,MUL,IMUL).

Регистр (Е)ВХ – база. Он предназначен для хранения смещения относительно сегментного регистра (по умолчанию в DS).

Регистр (Е)СХ - счетчик. В нем находится количество повторений тела цикла.

Регистр (Е)DXиспользуется в операциях умножения и деления, а также является единственным регистром, в котором может быть представлен адрес порта в командах ввода/вывода.

Кроме закрепленных функций, универсальные регистры используются как операнды в прочих командах, не “чувствительных” к типу регистра.

Регистры-указатели

Регистр (Е)ВР-база. Аналогично (Е)ВХ, он предназначен для хранения смещения относительно сегментного регистра стека (регистрSS).

Регистры (Е)SI и (Е)DI - индексные. Они содержат смещения относительно начала выбранных сегментов данных и используются в командах над цепочками данных.

Регистр (Е)SР - указатель стека. В нем содержится смещение относительно сегмента стека.Значение (E)SP трактуется как беззнаковое.

Служебные регистры

Регистр (Е)IР - счетчик команд. Он содержит адрес (смещение)следующей выполняемой командыв сегменте кода, определяемом регистром (E)CS. Каждое выполнение команды процессора вызывает увеличение содержимого счетчика (E)IP на длину текущей команды в байтах. Исключение составляют команды передачи управления, для которых (E)IP=<адрес>.Значение (E)IP трактуется как знаковое число, представимое в Д.К.

В регистре флагов хранятся данные о состоянии процессора, а также о результатах выполнения некоторых команд. Из 16 разрядов этого регистра только девять имеют фиксированную интерпретацию:

OF– Overflow (разряд переполнения);

DF– Direction (разряд направления);

IF– Interrupt (разряд прерывания);

TF– Trap (разряд ловушки);

SF– Sign (знаковый разряд);

ZF– Zero (разряд нуля);

AF– Auxiliary (разряд переноса тетрады);

РF– Parity (разряд четности);

CF– Carry (разряд переноса).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]