
Лабораторная работа №2
ИЗУЧЕНИЕ АРИФМЕТИЧЕСКИХ КОМАНД.
1.1 Цель лабораторной работы:
Изучение ситуаций переноса(заема) и/или переполнения в командах сложения, вычитания, умножения, деления. Изучение особенностей знаковой и беззнаковой интерпретации данных. Изучение синтаксиса команд умножения и деления.
1.2 Задание
Написать программу, демонстрирующую ситуации переноса(заема), переполнения на ариф. командах (см. таблицу вариантов); подобрать операнды и выполнить знаковое и беззнаковое умножение и деление с целью демонстрации различий между знаковыми и беззнаковыми командами.
Получите файл листинга программы .LST.
Выпишите машинные коды команд : 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 (разряд переноса).