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

Страница: 3/6

REPNE SCAS В.

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

1.Замените в строке STRING символ & на символ пробела

STRLEN EQIU 15: длина поля STRING

STRING DB ‘THE TIVE & IS NOW’

2. Имеются следующие определения:

DATASG SEGMENT PARA

CONAME DB 'SPASE EXPLORES INS'

PRLINE DB20DUP(")

Используя команды обработки строк, выполнить:

а) пересылку данных из CONAME в PRLINE слева направо;

б) пересылку данных из CONAME в PRLINE справа налево;

в) загрузку третьего и четвертого байтов области CONAME в регистр АХ;

г) сохранение содержимого регистра АХ в области по адресу PRLINE +5;

д) сравнение данных в области CONAME и PRLINE;

е) сканирование области CONAME и поиск в ней символа " пробел ".

Если символ будет найден, то переслать его в регистр ВН.

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

Изучение обработки двоичных данных, данных в форматах ASCII и BCD, таблиц.

Цель работы: Дать сведения об операциях сложения, вычитания, умножения и деления двоичных чисел, рассмотреть ASCII и BCD - форматы данных и дать сведения между этими форматами и двоичным форматом. Раскрыть требования для определения таблиц, организации поиска в таблице в таблицах и сортировки элементов таблицы.

Общие сведения.

Несмотря на то, что мы привыкли к десятичной арифметике, компьютер работает только с двоичной арифметикой. Команды ADD и SUB выполняют сложение и вычитание байтов или слов, содержащих двоичные данные. Вычитание осуществляется в компьютере по методу сложения с двоичным дополнением:

для второго операнда устанавливаются обратные значения битов и прибавляется 1, а затем происходит сложение с первым операндом.

Операция умножения для без знаковых данных выполняется командой MUL, a знаковых - IMUL. Существуют две основные операции умножения, умножение байта на байт. Множимое находится в регистре AL, а множитель в байте памяти или в однобайтовом регистре. После умножения произведение находится в регистре АХ.

Умножение слова на слово. Множимое находится в регистре АХ, а множитель - в слове памяти или в регистре. После умножения произведение образуется в двойном слове, левая часть произведения - в регистре DX, правая часть - в регистре АХ. В единственном операнде команд MUL и INMUL указывается множитель.

Операция деления для без знаковых данных выполняется командой DIV, а знаковых - INDIV. Существуют две основные операции деления:

Деление слова на байт. Делимое находится в регистре АХ, а делитель в байте памяти или однобайтном регистре. Для деления остаток получается в регистре АН, а частное - в 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.

Реферат опубликован: 17/02/2008