Контрольные работы, курсовые, дипломные, рефераты, а также подготовка докладов, чертежей, лабораторных работ, презентаций и еще много всего. Недорого и быстро.

Узнать больше...

Главная страница Шпаргалки
Решение задач Эксклюзивные фото по химии
Сочинения (более 4000) Юмор из жизни учащихся
Вернуться в раздел "Учебные материалы"

Информатика и Ассемблер

ГЛАВА 4

КОМАНДЫ ПЕРЕХОДА. ОРГАНИЗАЦИЯ ЦИКЛОВ

4.1. Безусловный переход. Оператор SHORT

4.1.1 Определение

Для нарушения порядка в котором следуют команды машинной программы применяются команды перехода. Если переход делается, когда выполнено некоторое условие, то такой переход называется условным, а если он делается независимо от условий, то это безусловный переход.

Команды перехода не меняются флаги.

JMP ор (jump) безусловный переход

Здесь операнд тем или иным способом указывает адрес перехода, т. е. адрес команды, которая должна быть выполнена следующей. Рассмотрим, эти за способы.

4.1.2. Прямой переход

В данном случае в качестве ор указывается метка той команды, на которую надо передать управление:

JMP <метка>

Пример: JMP L1 L1: MOV АХ,0

Ассемблер вычисляет разницу между адресом команды перехода и адресом команды выполняется переход подставляет разницу в код.

4.2.3. Оператор SHORT.

Jmp L1 ; длинный переход - команда занимает 3 байта и дальность перехода от -215 до 215-1 байт.

Jmp short L1 ; короткий переход - команда занимает 2 байта и дальность перехода от -128 до 127 байт.

4.1.3.Косвенный переход.

В команде указывается не адрес перехода, а место где он находится:

JMP r16 или JMP m16

Здесь содержимое регистра или ячейки памяти является адресом команды на которую осуществляется переход. Модифицируется регистр IP.

4.2. Команды сравнения и условного перехода

4.2.1. Команда сравнения

Командам условного перехода как правило предшествует команда сравнения двух величин, результатом которого является изменение флагов.

CMP op1,op2 ;(compare) сравнение.

Флаги изменяются как по команде вычитания:

CF и AF становятся флагами заема и устанавливаются в 1 когда op2>op1. ZF устанавливается если результат вычитания op1-op2 нулевой, SF устанавливается если результат отрицательный.

4.2.2. Команды условного перехода

Jxx op

операнд указывает метку на которую следует сделать переход.

Для всех чисел справедливы следующие команды

JE (equal) op1=op2 ZF=1

JNE (not) op1¹op2 ZF=0

Для чисел со знаком

(здесь принимаются следующие обозначения: G -greater, L - less):

JL(JNGE) op1<op2 SF¹OF

JLE(JNG) op1£op2 SF¹OF или ZF=1

JG(JNLE) op1>op2 SF=OF и ZF=1

JGE(JNL) op1³op2 SF=OF

Для чисел без знака

(здесь принимаются следующие обозначения: A - above, B - below):

JB(JNAE) op1<op2 CF=1

JBE(JNA) op1£op2 CF=1 или ZF=1

JA(JNBE) op1>op2 CF=0 и ZF=0

JAE(JNB) op1³op2 CF=0

Переходы по флагам

JZ ZF=1 JNZ ZF¹1

JS SF=1 JNS SF¹1

JC CF=1 JNC CF¹1

JO OF=1 JNO OF¹1

JP PF=1 JNP PF¹1

Переход по значению регистра CX

JCXZ <метка> jump if CX is zero.

4.3. Команды организации циклов.


Команда
LOOP.

Некоторую последовательность команд необходимо повторить N раз:

mov cx,N

label1: ...

dec cx

cmp cx,0

jne label1

LOOP <метка>

mov cx,N

label1: ...

loop label1

 

Справедливо для N>0, чтобы при сх=0 обойти цикл:

mov cx,N

jcxz la1

la: ...

loop la

la1: ...

Команда реализует короткий переход

Также существуют команды
LOOPE (loopz) и LOOPNE (loopnz).

<

 

 

Вы находитесь на сайте Xenoid v2.0:
если вам нужно быстро, подробно и недорого
решить контрольную - обращайтесь. Возможны консультации
онлайн. См. раздел "Решение задач".

 

 

 

Copyright © 2005-2013 Xenoid v2.0

Использование материалов сайта возможно при условии указания активной ссылки
Химия: решение задач