Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архітектура!!!.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
246 Кб
Скачать
☆

Состояние флагов после выполнения команды

11

07

06

04

02

00

OF

SF

ZF

AF

PF

CF

?

?

?

?

?

?

Описание

Команда выполняет целочисленное деление операндов с учетом их знаковых разрядов. Результатом деления являются частное и остаток от деления. При выполнении операции деления возможно возникновение исключительной ситуации: 0 — ошибка деления. Эта ситуация возникает в одном из двух случаев: делитель равен 0 или частное слишком велико для его размещения в регистре eax/ax/al.

Примеры

;деление слов

mov ax,1045 ;делимое

mov bx,587 ;делитель

cwd ;расширение делимого dx:ax

idiv bx ;частное в ax, остаток в dx

  1. Проблеми переповнення та методи боротьби з ними в мові Асемблер(зошит)

  2. Команди порівняння в мові Асемблер(+зошит)

CMP Сравнени

Признаки: O D I T S Z A P C Команда: CMP destination,source .

Логика: Установка признаков в соответствии с результатом.

(destination - source)

CMP сравнивает два числа, вычитая операнд source из операнда destination, и изменяет значения признаков. CMP не изменяет сами операнды. Операндами могут быть байты или слова.

  1. Команди переходів в мові Асемблер

. JMP J- АДРЕС- безумовний перехід

JNZ - перехід, якщо Z=0 (не нуль);

JZ - перехід, якщо Z=l (нуль);

JNC - перехід, якщо CY=0 (немає переносу);

JC - перехід, якщо CY=1 (перенос);

JPO - перехід, якщо Р=0 (непарність);

JPE - перехід, якщо Р=1 (парність);

JM - перехід, якщо 5=0 (мінус);

JP - перехід, якщо 5=1 (плюс).

  1. Побудова циклів в мові Асемблер

. Цикл у програмі-фундлментальна властивість програми ЕОМ- це засіб, який дозволяє за допомогою однієї і тієї ж послідовності команд виконати деякі дії багато разів. Загалом, цикл представляє собою групу команд, виконання яких багатократно повторюється за рахунок того, що в цій групі є команда, яка повертає керування знову на першу команду в групі команд, поки не виконається певна умова закінчення циклу.

Програмування циклів покажемо на прикладі обчислення суми ряду N чисел, які розміщені в пам'яті з певною адресою.

Для розв'язання задачі необхідно послідовно додавати кожне число ряду до поточної часткової суми. Можна написати програму, в якій для додавання кожного числа буде використовуватись окрема послідовність команд. Однак доцільно написати програму у вигляді циклу, який підраховує кількість сумованих чисел. Як лічильник циклу можна використати регістр, початкове значення якого можна встановити за межами циклу, а при кожній ітерації циклу модифікувати і перевіряти (тестувати) його значення. У кожній ітерації необхідно забезпечити вибір подальшого числа.

У циклічній програмі можна виділити такі частини: ініціалізуючу, яка задає початкові дані і число ітерацій, основну роботу, модифікуючу і тест кінця циклу. Приклад організації програмного циклу:

MVI B, N ; завантаження в регістр В числа ітерацій

CYCL: ; основна частина

DCR В; підрахунок ітерацій

JNZ CYCL; перехід на повтор, якщо не кінець циклу

HLT ; кінець

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]