Реферат: Лабораторные работы по системному ПО

Деление слова на байт. Делимое находится в регистре АХ, а делитель в байте памяти или однобайтном регистре. Для деления остаток получается в регистре АН, а частное - в AL.

Деление двойного слова на слово. Делимое находится в регистровой паре DX:AX, а делитель - в слове памяти или в регистре. После деления остаток получается в регистре DX, а частное в регистре - АХ.

Данные, вводимые с клавиатуры, имеют ASCII - формат, например, буквы SAM имеют в памяти шестнадцатеричное представление 53414DH. С помощью следующих ассемблерных команд можно выполнять арифметические операции непосредственно над числами в ASSCII - формате:

ААА - коррекция для сложения ASCII кода;

AAD - коррекция для деления ASCII кода;

ААМ - коррекция для умножения ASCII кода;

AAS - коррекция для вычитания ASCII кода.

Эти команды кодируются без операндов и выполняют автоматическую коррекцию в регистре АХ. Коррекция необходима, так как ASCII – код представляет так называемый распакованный десятичный формат, в то время как компьютер выполняет арифметические операции в двоичном формате.

Например, сложение и коррекция кодируются следующими командами:

ADD AL, BL ; сложить числа в регистрах AL и-BL

ААА ; коррекция для сложения ASCII- кодов.

Если сжать число в ASCII - формате, сохраняя только правые цифры каждого байта, то получим BCD - формат (двоично - десятичный формат). Можно выполнять сложение и вычитание в BCD - формате. Для этого служат две корректирующие команды:

DAA - десятичная коррекция для сложения;

DAS - десятичная коррекция для вычитания.

Во многих прикладных программах используется табличная организация данных, например, имена, описания, размеры. Определение и использование таблиц включает одну новую команду ассемблера XLAT. Таким образом использование таблиц - это дело техники и применение знаний, полученных ранее. Для облегчения табличного поиска большинство таблиц определяются систематично, т.е. элементы таблиц имеют одинаковый формат, одинаковую длину и восходящую или нисходящую последовательность элементов. Пример описания таблицы:

MONTAB DB 'JAN', 'FEB', 'MAR', ..., 'DEC'.

Команда XLAT транслирует содержимое одного байта в другое предопределенное значение. С помощью команды XLAT можно проверить корректность содержимого элементов данных. Команда XLAT предполагает адрес таблицы в регистре ВХ, а транслируемый байт (например, поля ASCHO) - в регистре AL. Следующие команды выполняют подготовку и трансляцию байта:

LEA ВХ, XLTBL

MOV AL, ASCHO

XLAT.

Команда XLAT использует значение в регистре AL в качестве относительного адреса в таблице, т.е. складывает адрес в ВХ и смещение в AL.

Содержание задания

1. Имеются следующие данные:

DATAX DW 0148H

DW 2316H

DATAY DW 0237H

DW 4052H

Закодируйте команды для сложения:

а) слово DATAX со словом DATAY;

б) двойного слова, начинающегося по адресу DATAX , на слово DATAY.

2. Поле UNPAK содержит 01040705 в распакованном десятичном формате. Напишите цикл, который преобразует это содержимое в ASCII - формат, т.е. 31343735.

3. Поле ASCA содержит значение 313733 в ASCII - формате, а другое поле ASCB содержит 35. Напишите программу, перемножающую эти числа в ASCII - формате и записывающую произведение в поле ASCPRO.

4. Определите 3 отдельные связанные таблицы, содержащие следующие данные:

К-во Просмотров: 409
Бесплатно скачать Реферат: Лабораторные работы по системному ПО