Скачать 0.78 Mb.
|
Задания для практической работы 1 Составить таблицу «Команды обработки строк» с указанием названия команды, ее мнемокода, адресов источника и приемника. 2 Составить таблицу «Команды организации циклов» с указанием названия команды, ее мнемокода и выполняемого действия. 3 Разработать программу на языке Ассемблер для выполнения задачи в соответствии с вариантом. Таблица 7.2 – Таблица вариантов
Контрольные вопросы 1 В каком случае в мнемокоде команд обработки строк ставится буква В? 2 Как изменить направление изменения содержимого индексных регистров? 3 Опишите работу команды LOOP. 4 Как работает префикс REP? Можно ли его использовать не со строковыми командами? Практическое занятие № 8 «Изучение системы команд Ассемблера. Команды безусловных и условных переходов» Цель работы: изучить состав регистра флагов, изучить способы организации ветвящихся циклов с помощью команд условных и безусловных переходов. Студент должен уметь: составлять программы на языке Ассемблера для выполнения задач на организацию ветвящихся циклов; знать: состав регистра флагов; работу команд условных и безусловных переходов и команд сравнения. Краткие теоретические и учебно-методические материалы по теме практической работы Регистр флагов фиксирует в своих разрядах текущее состояние процессора, результат выполнения операции, текущие режимы управления. Бит устанавливается в 1 при определенных условиях или установка его в 1 изменяет поведение процессора. CF – флаг переноса. Устанавливается в 1, если результат предыдущей операции не уместился в приемнике и произошел перенос из старшего бита или если требуется заем (при вычитании), иначе устанавливается в 0. Например, после сложения байта FFh и 1, если регистр, в который надо поместить результат, – байт, в него будет записано 00h и флаг CF = 1. PF – флаг четности. Устанавливается в 1, если младший байт результата предыдущей команды содержит четное число бит, равных 1; устанавливается в 0, если число единичных бит нечетное. Это не то же самое, что делимость на два. Число делится на два без остатка, если его самый младший бит равен нулю, и не делится, если он равен 1. AF – флаг полупереноса или вспомогательного переноса. Устанавливается в 1, если в результате предыдущей операции произошел перенос (или заем) из третьего бита в четвертый. ZF – флаг нуля. Устанавливается в 1, если результат предыдущей команды – ноль. SF – флаг знака. Этот флаг всегда равен старшему биту результата. TF – флаг ловушки. Этот флаг был предусмотрен для работы отладчиков, не использующих защищенный режим. Установка его в 1 приводит к тому, что после выполнения каждой команды программы управление временно передается отладчику. IF – флаг прерываний. Установка этого флага в 1 приводит к тому, что процессор перестает обрабатывать прерывания от внешних устройств. Обычно его устанавливают на короткое время для выполнения критических участков кода. DF – флаг направления. Этот флаг контролирует поведение команд обработки строк – когда он сброшен в 0, строки обрабатываются в сторону увеличения адресов, а когда DF=1 – наоборот. OF – флаг переполнения. Этот флаг устанавливается в 1, если результат предыдущей арифметической операции над числами со знаком выходит за допустимые для них пределы. Например, если при сложении двух положительных чисел получается число со старшим битом, равным единице (то есть отрицательное) и наоборот. Команды переходов Команда безусловного перехода JMP address (jump – прыжок) позволяет передать управление на адрес address (осуществить переход на метку) независимо от значений каких-либо флагов. Метка может находиться на любом расстоянии (в байтах) от точки расположения команды JMP и даже в другом сегменте памяти. Команды условных переходов осуществляют передачу управления в зависимости от результатов предыдущих операций. Наличие разных наборов команд для чисел со знаком и без знака объясняется тем, что одним и тем же соотношениям чисел со знаком и чисел без знака соответствуют различные сочетания флагов. Всякая команда условного перехода (обозначим её в общем виде Jcc address) выполняется следующим образом: проверяется регистр флагов; если состояние флагов отвечает определённым условиям, то осуществляется переход на адрес address (на указанную в команде метку). В противном случае выполняется следующая по порядку команда. В использованном выше обозначении под «cc» подразумевается Condition Code – «код условия». В реальных мнемокодах команд (таблица 6.1) при сравнении чисел со знаком используются буквы G (Greater – больше) и L (Less – меньше), без знака – A (Above – выше) и B (Below – ниже). Условие равенства обозначается буквой E (Equal), невыполнение какого-либо условия – буквой N (Not). Команды условных переходов могут передавать управление лишь на -128…+127 байт от точки своего расположения. При необходимости более дальних переходов приходится организовывать их сочетания с командой JMP. Таблица 8.1 – Команды условных и безусловных переходов
Примечания: - термины «выше» и «ниже» применимы для сравнения беззнаковых величин (адресов), термины «больше» и «меньше» используются при учете знака числа; - слова xor и or обозначают соответствующие логические операции (xor – исключающее или, or – или). Команды сравнения Команда CMP (to compare – сравнивать) служит для сравнения двух операндов путём вычитания первого операнда из второго (op2-op1). В отличие от обычного вычитания, полученная разность нигде не сохраняется (значения операндов остаются неизменными); результатом команды являются только значения флагов в регистре флагов. Как правило, сразу за командой CMP в программе ставится какая-нибудь из команд условных переходов, анализирующая эти флаги. Команда SCAS, SCASB (scan string) используется для так называемого «сканирования» одной строки в поисках нужного элемента (слова или байта). В процессе работы команды осуществляется сравнение элемента строки, расположенного по адресу в ES:DI, со значением в регистре AX (или AL) путём вычитания; результат вычитания не фиксируется, но устанавливаются соответствующие флаги. Как и при выполнении прочих строковых команд, производится автоинкрементирование (либо автодекрементирование) регистра DI. Команда CMPS, CMPSB (compare strings) осуществляет поэлементное сравнение элементов двух строк (слов или байтов), одна из которых расположена в памяти по адресу в регистрах DS:SI, вторая – по адресу в ES:DI. При выполнении этой команды производится вычитание элемента строки с адресом в SI из элемента строки с адресом в DI; как и в обычной команде CMP, результат вычитания никуда не записывается, но зато устанавливаются соответствующие флаги (наиболее важным в данной ситуации является флаг ZF). Пример программы Дан массив из десяти слов, содержащих целые числа. Требуется найти максимальное значение в массиве, расположенном по адресу DS:0000h. MOV SI, 0000h ; зададим начальный адрес LODS ; первый элемент массива загружается в AX MOV BX, AX ; копируем это значение в ВХ, считая его максимальным MOV CX, 9 ; установим счётчик повторений цикла (одно число мы обработали) BEG: CMP AX, BX ; сравниваем текущее значение с максимальным JL NO ; если он меньше, переходим на метку NO MOV BX, AX ; если больше или равен, копируем его в ВХ NO: LODS ; загружаем следующий элемент массива в АХ LOOP BEG ; переход на начало цикла, пока СХ не равно 0. Задания для практической работы 1 Составить таблицу «Регистр флагов» с указанием флага и его назначения. 2 Составить таблицу «Команды переходов» с указанием названия команды, ее мнемокода и значений флагов. 3 Разработать программу на языке Ассемблер для выполнения задачи в соответствии с вариантом. Таблица 8.2 – Таблица вариантов
Примечание: массив байтов размещается, начиная с адреса DS:0000h. |
Практическая работа №1 «Изучение организации бесперебойного питания пк» Практическая работа №3 «Изучение типов современных процессоров и их характеристик» |
Практическая работа №1 «Изучение организации бесперебойного питания пк» Практическая работа №3 «Изучение типов современных процессоров и их характеристик» |
||
Практическая работа №1 «Изучение методов конфигурирования сетей доступа» Практическая работа №2 «Изучение методов отбора, подготовки и контроля линии под технологию adsl» |
Лабораторная работа №10. Изучение принципа действия и функциональной... Лабораторная работа № Изучение принципов построения системы автоматической подстройки частоты (апч) радиолокационной станции |
||
Лабораторная работа Изучение принципов функционирования простейшей микроэвм и процессора Лабораторная работа Изучение принципов функционирования простейшей микроэвм и процессора I8085A при реализации программы |
Урок Практическая работа №4 «Получение аммиака и изучение его свойств» Цели урока Цели урока: получения аммиака изучение его свойства через проведение практической работы |
||
Методические указания к лабораторным работам Рязань 2013 ... |
Курсовая работа Целью работы является детальное изучение бережливого производства, его принципов, инструментов, их характеристик, а также возможностей... |
||
Практическая работа №1 «Работа с нормативными документами» ... |
Урок информатики по теме "Системы счисления. Позиционные и непозиционные... Формирование представлений об информации как одного из трех основополагающих понятий науки — вещества, энергии, информации, на основе... |
||
Описание практической работы №2 создание шаблона сайта Цель работы: изучение и освоение принципов работы с html тегами, их атрибутами и умение создавать базовые элементы web–страницы |
Методические указания к выполнению лабораторных работ по дисциплине радиолокационные системы Лабораторная работа №1 «Изучение принципов построения штатной радиолокационной киа» |
||
Практическая работа №1 «Изучение видов интерфейсов и их характеристик» Профессиональный модуль «Применение микропроцессорных систем, установка и настройка периферийного оборудования» |
Практическая работа №1 «Расчет срока окупаемости капитальных вложений... Практическая работа №2 «Задача выбора поставщика и ее решениена основе анализа полной стоимости» |
||
Практическая работа №5. Составление инструкции «Аккумуляторщик» ... |
Практическая работа №1 «Технология строительства воздушных линий связи» Практическая работа №9 «Технология ввода кабелей в здание атс. Оборудование шахт» |
Поиск |