|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
ПРАКТИЧНА РОБОТА №10Тема: Арифметичні команди та переміщення даних. Мета: Вивчити арифметичні команди та команди переміщення даних. Задачі: Робота з командами: MOV, ADD, SUB, INC, DEC, MUL, DIV. Обладнання для виконання роботи: 1. Методичні вказівки що до виконання лабораторної роботи; 2. Персональний комп’ютер; 3. Відповідне програмне забезпечення (Windows 98, Microsoft Office 2000, XP, 2003, MS Excel, емулятор типу Emu8086 v2.57). Теоретичні основи: Команда переміщення даних MOV - походить від слова «move» (переміщати), насправді не переміщає, а копіює значення з джерела в приймач: MOV приймач, джерело Приклади: mov ах,[number]; заносим значение переменной number в регистр АХ; mov [number],bx; загрузить значение регистра ВХ в переменную number; mov bx,сx; занести в регистр ВХ значение регистра СХ; mov al, 1; занести в регистр AL значение 1; mov word [number], 1; сохранить 16-битное значение 1 в переменную "number'' Арифметичні команди Складання (ADD) і віднімання (SUB). Команда ADD вимагає двох операндів, як і команда MOV: ADD о1, о2 Команда ADD складає обоє операнда і записує результат в о1, попереднє значення якого втрачається. Так само працює команда віднімання — SUB: SUB o1, о2 Наприклад: Що станеться, якщо спочатку занести в AL (8-розрядний регістр) найбільше допустиме значення (255), а потім додати до нього 8? mov al, 255; заносимо в AL значення 255, тобто 0xFF add al, 8; додаємо 8 У результаті в регістрі AL мі набудемо значення 7. Але адже ми чекали 0x107 (263 в десятковому вигляді). Що сталося? У регістрі AL може поміститися лише 8-розрядне число (максимальне значення — 255). Дев'ятий, «втрачений», біт прихований в регістрі ознак, а саме в прапорі CF — ознака перенесення. Ознака перенесення використовується в арифметичних командах при роботі з великими діапазонами чисел, чим можуть підтримувати регістри. Корисні для цього команди ADC (Add With Carry — складання з перенесенням) і SBB (Subtract With Borrow — віднімання з позикою): ADC о1, о2;о1 = о1 + о2 + CF SBB о1, о2;о1 - о1 -- о2 - CF Ці команди працюють так само, як ADD і SUB, але відповідно додають або віднімають прапор перенесення CF. Ці команди призначені для инкрементирования і декрементирования: Команда INC додає, а DEC віднімає одиницю з єдиного операнда. Допустимі типи операнда — такі ж, як в команд ADD і SUB, а формат команд такий: INC о 1; о1 = о1 + 1 DEC о 1; о1 = о1 - 1 Операції множення і ділення мають свою специфіку. В результаті множення двох чисел ми можемо отримати число, діапазон якого в два рази перевищуватиме діапазон операндів. Ділення цілих чисел — це операція цілочисельна, тому в результаті утворюються два значення: частное і залишок. З метою спрощення реалізації команд множення і ділення ці команди спроектовані так, що один з операндів і результат знаходяться у фіксованому регістрі, а другий операнд вказується програмістом. Подібно до команд ADD і SUB, команди MUL, DIV, змінюють регістр ознак. Приклад№1 Пара DX:AX містить значення 0xFFFF (АХ = 0xFFFF, DX = 0). Додамо 8 до цієї пари і запишемо результат назад в DX:AX: mov ах, 0xffff;АХ = OxFFFF mov dx, 0;добавляем О с переносом к DX add ах, 8;АХ = АХ + 8 adс dx, 0;DX = 0 Приклад№2: помножити значення, збережені в регістрах ВН і CL, результат зберегти в регістр АХ: mov al, bh; AL = ВН — сначала заноситися в AL второй операн д mul сl; АХ = AL * CL — умножаємо его на CL Результат буде збережений в регістрі АХ. Приклад№3: обчислити діаметр по радіусу, збереженому в 8-бітовій змінній radiusl, результат записати в 16-бітову змінну diameterl: mov al, 2; AL = 2 mul byt e [radiusl ]; AX = radiu s * 2 mov [diameterl], ах; diamete r < - AX Приклад№4: розділити 13 на 2, частное зберегти в BL, а залишок в — ВН: mov ах, 1З; АХ - 13 mov сl, 2; CL - 2 div сl; ділимо на CL mov bx, ах; очікуваний результа т знаходиться в АХ, копіюємо у ВХ Література: 1. Белов А. В. Самоучитель по микропроцессорной технике. СПб., Наука и техника. 2003 – 224с. 2. Мікропроцесорна техніка. Підручник /Якименко Ю. І, Терещенко Т. О. таінші/ - 2-ге вид., переробл. та доповн. – К.: ІВЦ «Видавництво «Політехніка»», 2004. – 440 с. 3. Микропроцессорные системы. Под ред. Д. В. Пузанкова. СПб., Политехника. 2002 – 935с. 4. Юров В. Assembler: Практикум. — СПб.: Питер, 2001. Техніка безпеки: Студенти та курсанти, які виконують практичні роботи у лабораторіях, згідно з розкладом занять, повинні виконувати привила техніки безпеки, а саме: 1. заходити у лабораторію тільки з дозволу викладача або завідуючого лабораторією; 2. не приносити до лабораторії легко палких та отруйних речовин; 3. без дозволу викладача або завідуючого лабораторією не вмикати ЄОМ та інші електричні прилади; 4. чітко та своєчасно виконувати накази викладача або завідуючого лабораторією; 5. у разі будь-якого інциденту, негайно доповісти викладачу або завідуючому лабораторією. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |