Содержание
- 2. Parity Flag (PF) - контроль парності - цей прапор встановлюється в 1, якщо в молодших 8-бітових
- 3. memory: [BX], [BX+SI+7], змінна, і т.д... immediate: 5, -24, 3Fh, 10001101b, і т.д... Після операції між
- 4. TEST - Те ж саме, що АND, але тільки для прапорів. OR - логічне АБО між
- 5. Друга група: MUL, IMUL, DIV, IDIV Ці типи операндів підтримуються: REG memory REG: AX, BX, CX,
- 6. DIV - беззнаковое розподіл: якщо операнд - це байт: AL = AX / операнд AH =
- 7. NOT - інвертування кожного байта операнда. NEG - Змінює знак операнда (доповнення до двох). Зазвичай вона
- 8. Мітка може бути оголошена на окремому рядку або перед будь-якою іншою командою, наприклад: x1: MOV AX,
- 9. Звичайно, є більш простий шлях для обчислення результату з двома числами, але це хороший приклад застосування
- 10. Команди переходу, які перевіряють одиночний прапор
- 11. Як бачимо, існують команди, які виконують однакові дії. Це нормально. Вони навіть ассемблюются в однаковий машинний
- 12. Команди переходу для чисел без знаків
- 13. Зазвичай, якщо потрібно порівняти два числових значення, то використовують команду CMP (вона робить те ж саме,
- 14. Всі умовні переходи мають одне серйозне обмеження - на відміну від команди JMP, вони можуть виконувати
- 15. Інший, рідше використовується метод, являє собою застосування безпосереднього значення (адреси) замість мітки. Якщо безпосереднє значення починається
- 16. Процедури Процедура - це частина коду, яка може бути викликана з вашої програми для виконання будь-якої
- 17. Команда CALL використовується для виклику процедури. Приклад: Вищеописаний приклад викликає процедуру m1, яка виконує команду MOV
- 18. Є кілька способів передачі параметрів процедурі. Найпростіший з них - використання регістрів. Тут представлений приклад процедури,
- 19. Тут дано ще один приклад, в якому використовується процедура для виведення на екран повідомлення Hello World!:
- 20. "b." - префікс перед [SI] означає, що нам необхідно порівнювати байти, а не слова. Якщо ви
- 22. Команди PUSH і POP працюють тільки з 16-ти бітними значеннями! Примітка: PUSH immediate працює тільки на
- 23. Дуже важливо застосовувати рівну кількість команд PUSH і POP, інакше стек може бути порушений і неможливо
- 24. Стек можна також використовувати для того, щоб поміняти місцями значення в регістрах: Обмін даними відбувається тому,
- 25. Команда «POP приймач» робить наступне: Записує дані, розміщені за адресою SS: SP в приймач. Збільшує на
- 26. На відміну від процедур, макрос повинен бути визначений перед ділянкою коду, де він буде використовуватися, наприклад:
- 28. Макрос розпаковується безпосередньо в коді, тому, якщо є мітки всередині макровизначення, ви можете отримати помилку "Duplicate
- 29. Як створити операційну систему Зазвичай, коли комп'ютер стартує, він намагається завантажитися з першого 512-байтового сектора (це
- 31. Скопіюйте описаний вище приклад в редактор вихідного коду Emu8086 і натисніть кнопку [Compile and Emulate]. Емулятор
- 33. Кроковий двигун Двигун може виконати "напівкрок" за допомогою пари магнітів, які повертають ротор двигуна на певний
- 34. Двигун може обертатися як за годинниковою стрілкою, так і проти годинникової стрілки. Робот
- 36. Скачать презентацию