ВУЗ:
Составители:
22
MUL op (причём op - слово) - выполнить умножение вида DXAX = AX * op
DIV op (причём op - байт) - деление AX /op ; частное - в AL, остаток - в AH
DIV op (причём op - слово) - деление DXAX /op; частное - в AX,
остаток - в DX
Все арифметические команды влияют на содержимое регистра флагов F,
однако после команд умножения и деления состояния флагов не определены
(произвольны).
Команды сдвига
данных:
SHL op - сдвиг операнда op (беззнаковое целое) на 1 разряд влево
SHR op - сдвиг операнда op (беззнаковое целое) на 1 разряд вправо
Команды управления ходом программы:
LOOP label - организация цикла со счётчиком в регистре CX. Команда
производит вычитание единицы из этого регистра, и, если
CX не равен нулю, выполняется переход на метку label. Эта
метка размещается «выше» по программе, т.е. до команды
LOOP.
JZ label - переход на метку label, если «ноль», т.е. если ZF=1
JNZ label - переход на метку label, если «не
ноль», т.е. если ZF=0
Обе эти команды обычно употребляются в программе после
команд CMP, SUB или DEC.
Конкретный пример программы читатель найдёт в Приложении 2.
1.3. Методы адресации
1.3.1. Регистровая адресация
Операнды могут располагаться в любых регистрах общего назначения и
сегментных регистрах. В этом случае в тексте программы указывается название
соответствующего регистра, например команда, копирующая в регистр AX
содержимое регистра BX, записывается как:
22 MUL op (причём op - слово) - выполнить умножение вида DXAX = AX * op DIV op (причём op - байт) - деление AX /op ; частное - в AL, остаток - в AH DIV op (причём op - слово) - деление DXAX /op; частное - в AX, остаток - в DX Все арифметические команды влияют на содержимое регистра флагов F, однако после команд умножения и деления состояния флагов не определены (произвольны). Команды сдвига данных: SHL op - сдвиг операнда op (беззнаковое целое) на 1 разряд влево SHR op - сдвиг операнда op (беззнаковое целое) на 1 разряд вправо Команды управления ходом программы: LOOP label - организация цикла со счётчиком в регистре CX. Команда производит вычитание единицы из этого регистра, и, если CX не равен нулю, выполняется переход на метку label. Эта метка размещается «выше» по программе, т.е. до команды LOOP. JZ label - переход на метку label, если «ноль», т.е. если ZF=1 JNZ label - переход на метку label, если «не ноль», т.е. если ZF=0 Обе эти команды обычно употребляются в программе после команд CMP, SUB или DEC. Конкретный пример программы читатель найдёт в Приложении 2. 1.3. Методы адресации 1.3.1. Регистровая адресация Операнды могут располагаться в любых регистрах общего назначения и сегментных регистрах. В этом случае в тексте программы указывается название соответствующего регистра, например команда, копирующая в регистр AX содержимое регистра BX, записывается как:
Страницы
- « первая
- ‹ предыдущая
- …
- 20
- 21
- 22
- 23
- 24
- …
- следующая ›
- последняя »