Страница: 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