Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Деление в ASCII-формате

Читайте также:
  1. I. ОПРЕДЕЛЕНИЕ БИОТЕХНОЛОГИИ КАК НАУКИ И ЕЕ ПРЕДМЕТА ИЗУЧЕНИЯ.
  2. II. Деление клетки
  3. II. РАСПРЕДЕЛЕНИЕ ЛЕКАРСТВЕННЫХ СРЕДСТВ В ОРГАНИЗМЕ. БИОЛОГИЧЕСКИЕ БАРЬЕРЫ. ДЕПОНИРОВАНИЕ
  4. IV. Распределение часов курса по темам и видам работ
  5. Res mancipi et res nec mancipi. Старое и главное деление цивильного права вещей на res mancipi и res nec mancipi сохранилось до начала империи.
  6. Административно-территориальное устройство субъекта РФ и внутреннее территориальное деление муниципального образования
  7. Административное деление Франции
  8. Алгоритм описания многолетней динамики заболеваемости (распределение годовых показателей заболеваемости)
  9. Биномиальное распределение
  10. Биномиальное распределение

Умножение в ASCII-формате

Вычитание в ASCII-формате

Команда AAS (ASCII Adjust for Subtraction — коррекция для вычи­тания ASCII-кодов) выполняется аналогично команде ААА. Команда AAS проверяет правую шест, цифру (четыре бита) в регистре AL. В случае, если эта цифра лежит между А и F или флаг AF равен 1, то из ре­гистра AL вычитается 6, а из регистра АН вычитается 1, флаги AF и CF устанавливаются в 1. Во всех случаях команда AAS устанавливает в 0 ле­вую шест.цифру в регистре AL.

Команда ААМ (ASCII Adjust for Multiplication — коррекция для умножения ASCII-кодов) выполняет корректировку результата умноже­ния ASCII-кодов в регистре АХ. Однако, шест, цифры должны быть очи­щены от троек и полученные данные уже не будут являться действитель­ными ASCII-кодами. Например, число в ASCII-формате 31323334 имеет распакованное десятичное представление 01020304. Кроме этого, надо помнить, что коррекция осуществляется только для одного байта за одно выполнение, поэтому можно умножать только одно-байтовые поля; для более длинных полей необходима организация цикла.

Команда ААМ делит содержимое регистра AL на 10 (шест.ОА) и за­писывает частное в регистр АН, а остаток в AL. Предположим, что в ре­гистре AL содержится шест.35, а в регистре CL — шест.39. Следующие команды умножают содержимое регистра AL на содержимое CL и преоб­разуют результат в ASCII-формат:

АХ: AND CL.OFH преобразовать CL в 09 AND AL.OFH преобразовать AL в 05 0005 MUL CL ;Умножить AL на CL 002D ААМ преобразовать в распак.дес. 0405 OR AX.3030H преобразовать в ASCII-ф-т 3435

Команда MUL генерирует 45 (шест.002О) в регистре АХ, после че­го команда ААМ делит это значение на 10, записывая частное 04 в ре-

гистр АН и остаток 05 в регистр AL. Команда OR преобразует затем рас­пакованное десятичное число в ASCII-формат.

Команда AAD (ASCII Adjust for Division — коррекция для деления Л5СП-кодов) выполняет корректировку ASCII-кода делимого до непо­средственного деления. Однако, прежде необходимо очистить левые тройки ASCII-кодов для получения распакованного десятичного форма­та. Команда AAD может оперировать с двухбайтовыми делимыми в реги­стре АХ. Предположим, что регистр АХ содержит делимое 3238 в ASCII-формате и регистр CL содержит делитель 37 также в ASCII-формате. Следующие команды выполняют коррекцию для последующего деле­ния:

АХ: AND CL.OFH преобразовать CL в распак.дес.

AND AX,OFOFH преобразовать АХ в распак.дес. 0208

AAD преобразовать в двоичный 001С

DIV CL разделить на 7 0004

Команда AAD умножает содержимое АН на 10 (шест.ОА), прибав­ляет результат 20 (шест. 14) к регистру AL и очищает регистр АН. Значе­ние 001С есть шест, представление десятичного числа 28. Делитель мо­жет быть только однобайтовый от 01 до 09.


<== предыдущая страница | следующая страница ==>
Преобразование знака | Сдвиг и округление

Дата добавления: 2014-03-11; просмотров: 380; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.002 сек.