Архитектура ЭВМ Практика 4. Программы с ветвлениями.

Презентация:



Advertisements
Похожие презентации
Архитектура ЭВМ Практика 5. Программирование циклов.
Advertisements

Программирование на Ассемблер к.т.н., доц. Красов А.В. Лекция 6 ФакультетМТС Курс3 Семестр6 Форма контролязачет Лекции14 часов Лабораторные работы12 часов.
1 Архитектура ИС Лекция 3 ФУНКЦИОНИРОВАНИЕ ЭВМ. 2 Организация функционирования ЭВМ с магистральной архитектурой Комплект интегральных схем, из которых.
С ИСТЕМА КОМАНД ЕОМ. С ТРУКТУРА ТА ФОРМАТИ КОМАНД.
1 Лекция 1 Система команд универсальных микропроцессоров Лектор: Люличева И.А.
Микропроцессоры и микропроцессорные системы. 1. Пересылка данных MOV приемник, источник- Пересылка данных Базовая команда пересылки данных. Копирует содержимое.
Циклы в языке Ассемблер.. Цикл со счетчиком Цикл со счетчиком можно организовать с помощью конструкций IF и GOTO. В нашем примере тело цикла должно повторяться.
Программирование на языке низкого уровня Ассемблер.
Организация циклов в Ассемблере. Цикл – это многократно повторяющаяся последовательность операторов.
Числа со знаком и дополнительный код Синтаксис FASM Для записи отрицательного числа в программе на ассемблере используется символ -, например: x db -5.
Система команд процессора. Система команд процессора включает в себя четыре основные группы команд: команды пересылки данных; арифметические команды;
1 Системное программное обеспечение Лекции: Ассемблер, система прерываний, основы построения компиляторов, ассемблер «под Windows» Семинары: подготовка.
Учебный курс Введение в цифровую электронику Лекция 6 Программирование микропроцессорной системы кандидат технических наук, доцент Новиков Юрий Витальевич.
Архитектура ЭВМ Практика 3. Линейные программы на языке ассемблера.
Учебный курс Принципы построения и функционирования ЭВМ Лекция 10 Типы адресации. Стеки. Процессоры. ОЗУ. профессор ГУ-ВШЭ, доктор технических наук Геннадий.
Регистры общего назначения – сумматор, регистр данных, адресный регистр и т.д. Арифметико- логическое устройство Устройство управления
Определение констант для размещения их компилятором в составе инструкций языка Определение числовых констант: имя = значение PI= V_size = 5 M_size.
Учебный курс Архитектура ЭВМ и язык ассемблера Лекция 3 заместитель министра связи и массовых коммуникаций РФ, старший преподаватель Северов Дмитрий Станиславович.
Машинная команда Энциклопедия учителя информатики Газета «Первое сентября»
1 Lecture 1 Instruction set of 8086 Лектор: Люличева И.А.
Транксрипт:

Архитектура ЭВМ Практика 4. Программы с ветвлениями.

Команды для организации ветвлений, циклов, подпрограмм относятся к группе команд передачи управления. По принципу действия эти команды можно разделить на три группы: 1.Команды безусловной передачи управления; 2.Команды условной передачи управления; 3.Команды управления циклом.

Команда безусловного перехода jmp [модификатор] - безусловный переход без сохранения информации о точке возврата. cs:ip := [модификатор] - определяет тип перехода: near ptr - ближний, внутри текущего сегмента кода (по умолчанию); far ptr - дальний, в другой сегмент кода. адрес перехода - обычно используется метка.

Команды условных переходов. Микропроцессор имеет 30 команд условного перехода. Эти команды позволяют проверить: отношение между операндами со знаком (больше меньше); отношение между операндами без знака (выше ниже); состояния арифметических флагов zf, sf, cf, of, pf.

Команды условных переходов. Команды условного перехода имеют одинаковый синтаксис: jcc «j» от слова jump (прыжок); «cc» определяет конкретное условие, анализируемое командой. Условный переход возможен только внутри одного сегмента кода!

Команды условных переходов. Для того чтобы принять решение о том, куда будет передано управление командой условного перехода, предварительно должно быть сформировано условие, на основании которого и будет приниматься решение о передаче управления. Источниками такого условия могут быть: любая команда, изменяющая состояние арифметических флагов; команда сравнения cmp, сравнивающая значения двух операндов; состояние регистра ecx/cx.

Команда сравнения cmp cmp, сравнивает два операнда и по результатам сравнения устанавливает флаги, которые могут быть проверены командами условного перехода. Примеры: cmp ax, bx … cmp y, cx...

Список команд условных переходов. Переход на указанную метку, если в команде cmp: je - операнд_1 = операнд_2, zf = 1 jne - операнд_1операнд_2, zf = 0 jl/jnge - операнд_1 of jle/jng - операнд_1 of or zf = 1 jg/jnle - операнд_1 > операнд_2, sf = of and zf = 0 jge/jnl - операнд_1 >= операнд_2, sf = of jb/jnae - операнд_1 < операнд_2, cf = 1 jbe/jna - операнд_1 операнд_2, cf = 0 and zf = 0 jae/jnb - операнд_1 >= операнд_2, cf = 0

Команды условных переходов Переход на указанную метку, если выполняется указанное равенство флагов: jc если cf = 1jnc если cf = 0 jp если pf = 1 jnp если pf = 0 jz если zf = 1jnz если zf = 0 js если sf = 1jns если sf = 0 jo если of = 1 jno если of = 0 Переход на указанную метку, если регистр ecx/cx = 0:jecxz/jcxz

Пример программы:

Практическое задание Изучить пример программы. Разработать программу для своего варианта арифметических действий. Протестировать программу. Записать в отчет заданные исходные данные и полученные результаты.

ВарФункцияТестыВарФункцияТесты 1 a)а= 2; b= 2 b)a= 1; b= 2 c)а= 1; b= -2 4 a)а= -2; b= 4 b)a= 2; b= -4 c)а= 6; b= 4 2 a)а= -3; b= -4 b)a= 2; b= 2 c)а= 2; b= -4 5 a)а= -2; b= -3 b)a= 5; b= -2 c)а= 2; b= 3 3 a)а= -2; b= -2 b)a= 2; b= 3 c)а= 2; b= -3 6 a)а= -2; b= 4 b)a= 6; b= 5 c)а= 2; b= 2

ВарФункцияТестыВарФункцияТесты 7 a)а= 2; b= 2 b)a= -3; b= -2 c)а= -2; b= 3 10 a)а= 15; b= 16 b)a= 12; b= 10 c)а= 5; b= 5 8 a)а= 1; b= 3 b)a= -1; b= -3 c)а= 2; b= a)а= 4; b= 1 b)a= 1; b= 4 c)а= 4; b= 4 9 a)а= 2; b= 3 b)a= 1; b= -5 c)а= 2; b= 2 12 a)а= 2; b= 4 b)a= 1; b= 3 c)а= 2; b= 5

Отчет должен содержать: 1.Номер варианта, условие задачи 2.Текст программы с комментариями. 3.Результат тестирования программы (расчетные и полученные результаты тестирования).