- •Запитання на тести «Архітектура еом»
- •Дайте означення плата,
- •Дайте означення чіп,
- •Дайте означення контролер,
- •Дайте означення порт,
- •Дайте означення шина
- •Дайте означення материнські плати
- •Дайте означення Процесора
- •Дайте означення Відеоадаптера
- •Дайте означення контролерів (див 3 )
- •Дайте означення функції контролерів
- •Дайте означення bios.
- •Дайте означення жорсткого диску
- •Дайте означення Носія інформації
- •Для чого застосовують Мову програмування Асемблер
- •Перевага Асемблера
- •Недоліки Асемблера
- •Дайте означення даних в асемблері
- •Командa mov в мові Асемблер
- •Командa mvi в мові Асемблер
- •Наприклад :
- •Команди множення в мові Асемблер та використання прапорців для цієї команди
- •Команди ділення в мові Асемблер та використання прапорців для цієї команди
- •Синтаксис
- •Алгоритм
- •Состояние флагов после выполнения команды
- •Описание
- •Примеры
- •Проблеми переповнення та методи боротьби з ними в мові Асемблер(зошит)
- •Команди переходів в мові Асемблер
- •Побудова циклів в мові Асемблер
- •Команди зсувів в мові Асемблер
- •Циклічні зсуви в мові Асемблер
Команди зсувів в мові Асемблер
Важливо відзначити, що у випадку множення/ділення на цілі числа рівні степені двійки (2,4,8,...,2n )можна використовувати команди зсуву n-раз вправо/вліво, попередньо встановивши біт прапорця переносу в нуль:
STC ; (CY) (1)
CMC ; (CY=0)
для множення на 2 RAL ; (CY)(A7), (A0) (CY=0), (An+1) (An);
для ділення на 2 RAR ; (CY=0)(A7), (A0) (CY), (An) (An+1).
Команди зсуву. Команди зсуву переміщують дані, що знаходяться в регістрі або пам’яті, вправо чи вліво на декілька позицій. Дане, що підлягає зсуву, може займати байт або слово. Існують 2 види зсуву: логічний і арифметичний. Логічний зсув характеризується рівноправністю знакового біта з іншими бітами. При арифм. зсуві вправо знаковий біт зберігає своє значення незмінним, а вивільнені біти заповнює знаковим розрядом. Напрям зсуву і його тип (арифм чи лог) визначаються кодом операції. Кількість бітів, на яку треба зсунути вміст першого операнда, визначається другим операндом. Якщо відбувається зсув на один біт, це записується безпосереднім операндом, рівним 1. Для зсуву на більшу кількість бітів (до 8 або 16) величину зсуву треба попередньо завантажити в регістр CL. Другим операндом в команді зсуву повинне бути ім’я цього регістра. Значення останнього виштовхнутого біта за межі байта чи слова запишеться в біт прапорця CF незалежно від зсуву впаво чи вліво. Зміна останніх прапорців відбувається за тими ж правилами, шо й при виконанні інших логічних команд. Існує 4 команди зсуву: SHR P,CL – зсув вправо лог.; SHL P,CL – вліво лог.; SAR P,CL – вправо арифм.; SAL P,CL – вліво арифм. При логічному зсуві, у звільнені біти першого операнда заносяться нулі. При арифметичному зсуві вліво у звільнені біти справа теж заносяться нулі, а при зсуві вправо у звільнені біти зліва записуються значення знакового біта операнда. Команду арифм зсуву вліво можна використовувати для збільшення вмісту першого операнда в 2 у відповідному ступені разів, якщо при цьому не виникає переповнення, а ком арифм зсуву вправо для ділення вмісту першого операнда на 2,4,8,…Остача від ділення втрачається. ЭВОТ
Циклічні зсуви в мові Асемблер
Циклічний зсув. Особливість цих команд полягає у тому, що виштовхнутий біт зліва записується на вивільне місце справа і навпаки. Існує 2 види циклічного зсуву: циклічний зсув без участі прапорця CF і циклічний зсув з його участю. Як і при звичайному зсуві, останній виштовхнутий біт заноситься в біт прапорця CF. Циклічний зсув без участі прапорця CF характеризується тим, шо виштовхнутий біт операнда заноситься у CF і в операнд на вивільне місце справа чи зліва. Якщо відбувається зсув за участю прапорця CF, то на вивільне місце справа чи зліва переноситься вміст прапорця CF, а виштовхнутий біт записується в біт прапорця CF. При циклічних зсувах знаковий біт є рівноправним з рештою бітів. Команди циклічного зсуву мають такий вигляд: ROR P,1/CL - цикл зсув вправо без CF; ROL P,1/CL - вліво без CF; RCR P,1/CL - вправо з CF; RCL P,1/CL - вліво з CF. Де 1/CL треба розуміти так: другим операндом може бути 1 або CL.
