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


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

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






Команди зсуву. Множення на константу





 

7.1 Мета роботи

 

Навчитися методом зсуву відтворювати процедуру множення операнду на константу.

 

3.2 Теоретичні відомості

SHR-логічний зсув вправо

(CF) ← (Молодший біт операнда)

(Операнд) ← (Операнд) /2.

По команді SHR виконуються зсуви в байті або слові операнда. При форматі Reg/Mem,l виконується зсув тільки на 1 розряд. Якщо заданий формат Reg/Mem,CL, то число розрядів зсуву задається вмістом регістра CL. Старші розряди результату заповнюються нулями. Якщо після зсуву знаковий біт результату зберігає своє первинне значення, то прапорець OF скидається в 0. При довільному числі зсувів (більшому 1) значення прапорця ОF не визначено. Операнди командии SHR можуть бути задані в регістрах загального призначення або комірках пам'яті. Команда змінює прапорці CF, PF, SF і ZF. Стан прапорця AF не визначено.

 

Приклад. Нехай регістр BL містить число 77Н, вміст регістру прапорців рівний F046H і виконується команда SHR BL,1. Команда виконується таким чином:

Прапорець CF Вміст регістра BL

0 0111 0111 = 77Н Початковий стан

1 0011 1011 = 3ВН Після зсуву

Після виконання команди SHR BL,1 вміст регістру BL буде рівний 3ВН, прапорець CF встановлений в 1 і в регістрі прапорців буде записано число F003H. Оскільки біт знаку в результаті операції зсуву не змінив свого первинного стану, прапорець OF скидається в 0.

Прапорці, що змінюються після операції: OF, SF, ZF, АF, PF, CF.

 

SAL/SHL-арифметичний зсув вліво/логічний зсув вліво

 

(CF) ← (Старший біт операнда)

(Операнд) ← (Операнд) * 2.

Після цих команд виконуються зсуви в байті або слові операнда. При використовуванні формату Reg/Mem, 1 виконується зсув тільки на 1 розряд. Якщо використовується формат Reg/Mem, CL, то число зсувів задається вмістом регістра CL. Молодші розряди байта або слова при зсуві заповнюються нулями. Якщо знаковий біт результуючого операнда не змінює свого значення, прапорець переповнення скидається в 0. Значення прапорця OF після зсуву на довільне число розрядів, більше 1, не визначено. Операнди команд SAL і SHL можуть бути задані в регістрах загального призначення або комірках пам'яті. Формат операндів – байт або слово. Команди впливають на прапорці CF, PF, SF і ZF. Значення прапорця AF не визначено.

Приклад. Нехай вміст регістру ВХ рівний 4231Н, регістру прапорців – F046H, тобто прапорець CF встановлений в 0, Команда SHL ВХ, 1 виконується таким чином:

 

Прапорець CF Вміст регістру ВХ

 

0 0100 0010 0011 0001 =4231H Початкове число

0 1000 0100 0110 0010 = 8462H Після зсуву

 

Після виконання команди вміст регістру прапорців дорівнює F882H, регістру ВХ – 8462Н, прапорець CF скинений в 0, а пра-порець ОF встановлений в 1, оскільки змінився стан знакового бі-та. За допомогою команди SHL можна швидко обчислювати зна-чення ступенів 2 n, де n – число розрядів зсуву. Результат остан-нього прикладу може бути отриманий прямим множенням на 2.

Прапорці, що змінюються після операції: OF, SF, ZF, АF, PF, CF.

RCL-циклічний зсув вліво з перенесенням

(Тимчасовий біт) ← (CF)

(CF) ← (Старший біт операнда)

(Операнд) ← (Операнд) * 2 + (Тимчасовий біт)

Після цієї команди виконується циклічний зсув розрядів в байті або слові операнда. При використанні формату Reg/Mem, 1 проводиться зсув тільки на 1 розряд. Якщо використовується формат Reg/Mem,CL, то число зсувів задається вмістом регістра CL. Прапорець CF також бере участь в операціях зсуву, його значення заноситься в молодший значущий біт операнда-приймача, а на його місце заноситься значення самого старшого значущого біта цього операнда. В режимі зсуву на один біт (без регістра CL) прапорець OF встановлюється в 1 в тому випадку, якщо значення прапорця CF відрізняється від самого старшого значущого біта операнда-приймача. Значення прапорця OF не визначено при зсуві на число розрядів, більше одиниці. Операнди в цій команді можуть бути задані в регістрах загального призначення або комірках пам'яті.

Прапорці, що змінюються після операції: OF, CF.


а) б)

в)

Рисунок 7.1 - Схема роботи команд зсуву: а) логічний зсув вправо; б) логічний зсув вліво; в) арифметичний зсув вправо

 

а) б)

в) г)

Рисунок 7.2 - Схема роботи команд циклічного зсуву:

Date: 2015-12-12; view: 577; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию