
- •Запитання на тести «Архітектура еом»
- •Дайте означення плата,
- •Дайте означення чіп,
- •Дайте означення контролер,
- •Дайте означення порт,
- •Дайте означення шина
- •Дайте означення материнські плати
- •Дайте означення Процесора
- •Дайте означення Відеоадаптера
- •Дайте означення контролерів (див 3 )
- •Дайте означення функції контролерів
- •Дайте означення bios.
- •Дайте означення жорсткого диску
- •Дайте означення Носія інформації
- •Для чого застосовують Мову програмування Асемблер
- •Перевага Асемблера
- •Недоліки Асемблера
- •Дайте означення даних в асемблері
- •Командa mov в мові Асемблер
- •Командa mvi в мові Асемблер
- •Наприклад :
- •Команди множення в мові Асемблер та використання прапорців для цієї команди
- •Команди ділення в мові Асемблер та використання прапорців для цієї команди
- •Синтаксис
- •Алгоритм
- •Состояние флагов после выполнения команды
- •Описание
- •Примеры
- •Проблеми переповнення та методи боротьби з ними в мові Асемблер(зошит)
- •Команди переходів в мові Асемблер
- •Побудова циклів в мові Асемблер
- •Команди зсувів в мові Асемблер
- •Циклічні зсуви в мові Асемблер
Команди множення в мові Асемблер та використання прапорців для цієї команди
Пояснимо відмінності цих команд на формальних прикладах.
;Множення позитивних чисел із знаком
mov Al,5 ;Первый співмножник дорівнює 5
mov Bl,7 ;Второй співмножник дорівнює 7
mul BL ;AX=0023h=35
mov Al,5 ;Первый співмножник дорівнює 5
mov Bl,7 ;Второй співмножник дорівнює 7
imul BL ;AX=0023h=35
Обидві команди, mul і imul, дають в даному випадку однаковий результат, оскільки позитивні числа із знаком збігаються з числами без знаку. Не так йде справа при множенні негативних чисел.
;Множення негативних чисел із знаком
mov Al,ofch ;Первый сомножітель=252
mov Bl,4 ; Другий співмножник =4
mul BL ;AX=03F0h =1008
mov Al,ofch ;Первый сомножітель=-4
mov Bl,4 ; Другий співмножник =4
imul BL ;AX=FFFO=-16
Тут дія команд mul і imul над одними і тими ж операндами дає різні результати. У першому прикладі число без знаку Fch, яке інтерпретується, як 252, умножається на 4, даючи в результаті число без знаку 3F0, тобто 1008. У другому прикладі те ж число Fch розглядається, як число із знаком. В цьому випадку воно складає -4. Множення на 4 дає Fff0h, тобто -16.
Команди ділення в мові Асемблер та використання прапорців для цієї команди
DIV - деление беззнаковое
Выполнение операции деления двух двоичных беззнаковых значений.
Синтаксис
div делитель
Алгоритм
Для команды необходимо задание двух операндов — делимого и делителя. Делимое задается неявно и размер его зависит от размера делителя, который указывается в команде:
если делитель размером в байт, то делимое должно быть расположено в регистре ax. После операции частное помещается в al, а остаток — в ah;
если делитель размером в слово, то делимое должно быть расположено в паре регистров dx:ax, причем младшая часть делимого находится в ax. После операции частное помещается в ax, а остаток — в dx;
если делитель размером в двойное слово, то делимое должно быть расположено в паре регистров edx:eax, причем младшая часть делимого находится в eax. После операции частное помещается в eax, а остаток — в edx.
Состояние флагов после выполнения команды
11 |
07 |
06 |
04 |
02 |
00 |
OF |
SF |
ZF |
AF |
PF |
CF |
? |
? |
? |
? |
? |
? |
Описание
Команда выполняет целочисленное деление операндов с выдачей результата деления в виде частного и остатка от деления. При выполнении операции деления возможно возникновение исключительной ситуации: 0 — ошибка деления. Эта ситуация возникает в одном из двух случаев: делитель равен 0 или частное слишком велико для его размещения в регистре eax/ax/al.
Примеры
mov ax,10234
mov bl,154
div bl ;ah=остаток, al=частное
IDIV - деление целочисленное со знаком
Операция деления двух двоичных значений со знаком.
Синтаксис
idiv делитель
Алгоритм
Для команды необходимо задание двух операндов — делимого и делителя. Делимое задается неявно, и размер его зависит от размера делителя, местонахождение которого указывается в команде:
если делитель размером в байт, то делимое должно быть расположено в регистре ax. После операции частное помещается в al, а остаток — в ah;
если делитель размером в слово, то делимое должно быть расположено в паре регистров dx:ax, причем младшая часть делимого находится в ax. После операции частное помещается в ax, а остаток — в dx;
если делитель размером в двойное слово, то делимое должно быть расположено в паре регистров edx:eax, причем младшая часть делимого находится в eax. После операции частное помещается в eax, а остаток — в edx;
Остаток всегда имеет знак делимого. Знак частного зависит от состояния знаковых битов (старших разрядов) делимого и делителя.