Студопедия

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


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

Порталы:

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



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




Преобразование знака

Читайте также:
  1. Алгоритм описания проявлений заболеваемости в группах населения, выделенных по индивидуальным признакам
  2. Аналого-цифровое преобразование
  3. АЦП с преобразованием напряжения в частоту (ПНЧ)
  4. Виды взаимосвязей между признаками
  5. Вопрос 7. Вариация альтернативного признака
  6. Графический способ преобразование координат
  7. Классификация предприятий по различным признакам
  8. МАГНИТОГИДРОДИНАМИЧЕСКОЕ ПРЕОБРАЗОВАНИЕ ЭНЕРГИИ
  9. Определение стабильности изучаемого признака.
  10. Опыты по гибридизации растений. Накопление сведений о наследуемых признаках

Деление вычитанием

В случае, если частное слишком велико, то деление можно выпол­нить с помощью циклического вычитания.

Метод заключается в том, что делитель вычитается из делимого и в этом же цикле частное увеличивается на 1.

Вычитание продолжается, пока делимое остается больше делите­ля. В следующем примере, делитель находится в регистре АХ, а делимое — в ВХ, частное вырабатывается в СХ:

SUB СХ.СХ ;Очистка частного С20:

СМР АХ,ВХ ;В случае, если делимое < делителя,

JB СЗО ; то выйти

SUB АХ,ВХ ;Вычитание делителя из делимого

INC СХ ;Инкремент частного

JMP C20 повторить цикл СЗО:

RET ;Частное в СХ, остаток в АХ

 

В конце подпрограммы регистр СХ будет содержать частное, а АХ - остаток. Пример умышленно примитивен для демонстрации данной техники деления. В случае, если частное получается в регистровой паре DX:AX, то необходимо сделать два дополнения:

1.В метке С20 сравнивать АХ и ВХ только при нулевом DX.

2.После команды SUB вставить команду SBB DX,00.

Примечание: очень большое частное и малый делитель могут вы­звать тысячи циклов.

Команда NEG обеспечивает преобразование знака двоичных чи­сел из положительного в отрицательное и наоборот. Практически коман­да NEG устанавливает противоположные значения битов и прибавляет 1. Примеры:

NEG АХ

NEG BL

NEG BINAMT ;(байт или слово в памяти)

Преобразование знака для 35-битового (или большего) числа включает больше шагов. Предположим, что регистровая пара DX:AX со­держит 32-битовое двоичное число. Так как команда NEG не может об­рабатывать два регистра одновременно, то ее использование приведет к неправильному результату. В следующем примере показано использова­ние команды МОТ:

NOT DX Инвертирование битов

NOT AX Инвертирование битов

ADD AX,1 Прибавление 1 к АХ

ADC DX,0 Прибавление переноса к DX

Остается одна незначительная проблема: над числами, представ­ленными в двоичном формате, удобно выполнять арифметические опе­рации, если сами числа определены в программе. Данные, вводимые в программу с дискового файла, могут также иметь двоичный формат. Но данные, вводимые с клавиатуры, представлены в ASCII-формате.

 

AAS (ASCII Adjust for Subtraction - коррекция для вычитания

ASCII-кода)

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

Сложение многобайтовых ASCII-чисел требует организации цик­ла, который выполняет обработку справа налево с учетом переноса.


<== предыдущая страница | следующая страница ==>
Переполнения и прерывания | Деление в ASCII-формате

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




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