
- •5. Назначение и основные функции операционной системы.
- •6. Управление процессами.
- •1.Классификация программного обеспечения
- •2.Системное программное обеспечение.
- •7. Файловая система.
- •12.Режим прямой адресации.
- •2.Системное программное обеспечение.
- •13. Режим косвенной адресации.
- •19.Организация работы с клавиатурой.
- •20.Организация работы с манипулятором мышь.
- •24.Антивирусное программное обеспечение.
- •3.Прикладное программное обеспечение
- •17. «Организ. Циклов»
- •11.Регистры общего назначения (рон)
- •8. Организация файловых систем.
- •10.Математические операции.
- •I. Сложение и вычитание.
- •II. Команды корректировки представления чисел в двоичном / десятичном коде.
- •III. Команды вычитания.
- •IV. Умножение и деление целых чисел.
- •9.Язык программирования Assembler
- •II.Процедура формирования программы.
- •III.Структура использования ассемблера в делфи.
- •VI. Команды Ассемблера.
- •16.Оператор условного перехода.
- •15.Оператор безусловного перехода.
- •II. Команды межсегментового перехода.
- •14. Программирование ветвлений
- •18. Видеопамять. Организация работы с видеопамятью.
- •15.Оператор безусловного перехода.
- •II. Команды межсегментового перехода.
16.Оператор условного перехода.
Команда условного перехода реализует изменение естественного порядка выполнения команд программы. В обозначение команд входят буквы, которые определяют условие перехода:
E – “=”; N – “не =”; G – “>”; L – “<”; A – “>”; B – “<”;
Решение о том, куда будет передано управление, принимается на основании условия. Источниками такого условия может быть:
1) любая команда, изменяющая состояние регистров – флагов.
2) команда сравнения CMP
Формат команды CMP.
Операнд1, операнд2
Команда выполняет вычитание из 1 операнда 2, при этом результат никуда не записывается, значение операнда не меняется, а изменяются только флаги.
Рассмотрим:
А)Операнды без знака:
оп1< оп2 (ZF=0, CF = 0); оп1=оп2(ZF=1, CF=0); оп1>оп2(ZF=0, CF=1);
Б) Операнды со знаком:
оп1< оп2(ZF=0, SF=0); оп1= оп2(ZF=1,SF=0); оп1> оп2(ZF=0, SF=1);
Основные команды условного перехода:
JE оп1= оп2
JNE оп1 не= оп2
со знаком:
JL / JNGE оп1< оп2
JLE / JNG оп1<= оп2
JG / JNLE оп1> оп2
JGE / JNL оп1>= оп2
без знака:
JB / JNAE оп1< оп2
JBE / JNA оп1<= оп2
JA / JNBE оп1> оп2
JAE / JNB оп>= оп2
15.Оператор безусловного перехода.
Для организации безусловного перехода на ассемблере имеется команда JMP
JMP адрес перехода
Рассмотрим пример:
JMP@label1
…
@label1:
…
JE адрес перехода
JE@label2
…
Адрес перехода может быть меткой или адресом области памяти, в которую предварительно помещён указатель перехода. В системе команд существует несколько кодов машинных команд безусловного перехода. Их различие определяется дальностью перехода и способом задания целевого адреса. Дальность перехода определяется местоположением – операндом команды. Этот адрес может находиться в текущем сегменте кода или в некотором другом сегменте. В первом случае переход называется внутрисегментовым или близким. Во втором случае – межсегментовым или дальним.
I.Внутрисегментовый переход предполагает, что изменяется только содержимое регистра.
Выделяют 3 варианта внутрисегментового перехода:
1)Прямой короткий внутрисегментовый переход.
Применяется, когда расстояние от команды JMP до адреса не более чем 127 байт. В этом случае транслятор языка на код смещения выделяет 1 байт. В ходе операции заложена информация о том, что второй байт интерпретируется как смещение.
2) Прямой внутрисегментовый переход.
Отличается от короткого тем, что длина машинной команды составляет 3 байта, в кот. 2 последних интерпретируются как смещение. В этом варианте можно осуществлять переход в пределах 64кБайт, относительно следующей JMP команды.
3)Косвенный внутрисегментовый переход.
Означает, что команде JMP указывается не сам адрес, а место, где этот адрес записан.
II. Команды межсегментового перехода.
а)Команда прямого межсегментового перехода имеет длину 5 байт, из кот 2 байта составляют смещение адреса перехода, а другие 2 байта – значение сегментной составляющей регистра CS того кодового сегмента, где находится адрес перехода.
б) Команда косвенного межсегментового перехода. В качестве операнда имеет адрес области памяти, в котором содержится смещение и сегментная часть целевого адреса перехода.
в) Косвенный регистровый межсегментный переход.
Адрес – переход указывается в регистре, что удобно при программировании динамических переходов, когда коннектный адрес перехода определяется в процессе выполнения программы и помещается в регистр.