Студопедия

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


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

Порталы:

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



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




Слово на слово

Читайте также:
  1. Выраженном количественно-именным словосочетанием
  2. Лекция 5. РАБОТА НАД СЛОВОМ В ХОРЕ
  3. Лекция 7. Активные процессы современного словообразования
  4. Наглядность и слово в ознакомлении детей с природой.
  5. Напутственное слово председательствующего
  6. Перевод свободных словосочетаний.
  7. ПЕРЕВОД ФРАЗЕОЛОГИЧЕСКИХ И СВОБОДНЫХ СЛОВОСОЧЕТАНИЙ
  8. Правоспособность и ее составные элементы. Субъект права именовался в римском праве persona. Правоспособность обозначалась словом caput. Быть правоспособным значило caput habere.
  9. Предел числовой последовательности.

Байт на байт

Умножение

Беззнаковые и знаковые данные

Многие числовые поля не имеют знака, например, номер абонен­та, адрес памяти. Некоторые числовые поля предлагаются всегда поло­жительные, например, норма выплаты, день недели, значение числа промежуточного итога. Другие числовые поля являются знаковые, так как их содержимое может быть положительным или отрицательным. На­пример, долговой баланс покупателя, который может быть отрицатель­ным при переплатах, или алгебраическое число.

 

 

Для беззнаковых величин все биты являются битами данных и име< н> ограничения +32767 регистр может содержать числа до +65535. I 'in таковых величин левый байт является знаковым битом.

Команды ADD и SUB не делают разницы между знаковыми и без-iпиковыми величинами, они просто складывают и вычитают биты.

В следующем примере сложения двух двоичных чисел, первое •ми- мо содержит единичный левый бит.

Для беззнакового числа биты представляют положительное число .'•!'>. идя знакового — отрицательное число -7:

Беззнаковое Знаковое

1111 1001 249 -7

+ + + +

0000 0010 2 +2

1111 1011 251 -5

Двоичное представление результата сложения одинаково для без-шлкового и знакового числа.

Однако, биты представляют +251 для беззнакового числа и -5 для такового. Таким образом, числовое содержимое поля может интерпре-i пронаться по разному.

Состояние «перенос» возникает в том случае, когда имеется т-ренос в знаковый разряд.

Состояние «переполнение» возникает в том случае, когда перенос и шаковый разряд не создает переноса из разрядной сетки или перенос и I разрядной сетки происходит без переноса в знаковый разряд.

При возникновении переноса при сложении беззнаковых чисел, |н- (ультат получается неправильный.

При возникновении переполнения при сложении знаковых чи->ел, результат получается неправильный.

При операциях сложения и вычитания может одновременно воз­никнуть и переполнение, и перенос.

 

Операция умножения для беззнаковых данных выполняется ко­мандой MUL, а для знаковых — IMUL (Integer Multiplication — умно­жение целых чисел).

Ответственность за контроль над форматом обрабатываемых чи­сел и за выбор подходящей команды умножения лежит на самом про­граммисте. Существуют две основные операции умножения:

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

Множимое находится в регистре АХ, а множитель — в слове памя­ти или в регистре. После умножения произведение находится и двойном слове, для которого требуется два регистра: старшая (левая) часть произ­ведения находится в регистре DX, а младшая (правая) часть в регистре АХ. Операция игнорирует и стирает любые данные, которые находились в регистре DX.

В единственном операнде команд MUL и IMUL указывается мно­житель. Рассмотрим следующую команду:

MUL MULTR

В случае, если поле MULTR определено как байт (DB), то опера­ция предполагает умножение содержимого AL на значение байта из поля MULTR. В случае, если поле MULTR определено как слово (DW), то операция предполагает умножение содержимого АХ на значение слова из поля MULTR. В случае, если множитель находится в регистре, то дли­на регистра определяет тип операции, как это показано ниже:

MUL CL ;Байт-множитель: множимое в AL. произвед. в АХ MUL ВХ ;Слово-множитель:множимое в АХ, произвед. в DX:AX

Беззнаковое умножение: Команда MUL

Команда MUL (MULtiplication — умножение) умножает беззнако­вые числа.

 

Знаковое умножение: Команда IMUL

Команда IMUL (Integer MULtiplication — умножение целых чи­сел) умножает знаковые числа.

Команда MUL рассматривает шест.80 как +128, а команда IMUL — как -128. В результате умножения -128 на +64 получается -8192 или шест.ЕООО.

Если множимое и множитель имеет одинаковый знаковый бит, то команды MUL и IMUL генерируют одинаковый результат. Но, если со­множители имеют разные знаковые биты, то команда MUL вырабатыва­ет положительный результат умножения, а команда IMUL — отрица­тельный.


<== предыдущая страница | следующая страница ==>
Переполнения | Умножение двойного слова на двойное слово

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




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