Практическая работа №1 «Изучение принципов работы с системами счисления»




Скачать 0.78 Mb.
Название Практическая работа №1 «Изучение принципов работы с системами счисления»
страница 5/7
Тип Практическая работа
rykovodstvo.ru > Руководство эксплуатация > Практическая работа
1   2   3   4   5   6   7

Задания для практической работы
1 Составить таблицу «Команды обработки строк» с указанием названия команды, ее мнемокода, адресов источника и приемника.

2 Составить таблицу «Команды организации циклов» с указанием названия команды, ее мнемокода и выполняемого действия.

3 Разработать программу на языке Ассемблер для выполнения задачи в соответствии с вариантом.
Таблица 7.2 – Таблица вариантов

Вариант

Задача

1

Дана последовательность 15 символов (строка), размещённая по адресу DS:0000h. Переписать эту строку (сделать копию) в другое место оперативной памяти, по адресу ES:0050h.

2

Дана последовательность из 10 чисел (байтов), размещённых в сегменте данных, начиная с адреса DS:0010h. Вычислить их сумму и записать результат по адресу ES:0020h.

3

Дана последовательность из 5 чисел (байтов), размещённых в сегменте данных, начиная с адреса DS:0000h. Вычислить сумму квадратов этих чисел и записать результат по адресу ES:0010h.

4

Дана последовательность из 6 символов (байтов), размещённых в сегменте данных, начиная с адреса DS:0000h. Записать строку в обратном порядке по адресу ES:0050h

5

Дана последовательность из 10 символов (байтов), размещённых в сегменте данных, начиная с адреса DS:0000h. Скопировать первые 5 символов в область по адресу ES:0050h, а вторые 5 символов – по адресу ES:0500h

6

Дана последовательность из 8 символов (байтов), размещённых в сегменте данных, начиная с адреса DS:0000h. Поменять местами первые 4 и последние 4 символов и поместить их в область памяти по адресу ES:0000h

7

Дана последовательность из 9 символов (байтов), размещённых в сегменте данных, начиная с адреса DS:0000h. Скопировать строку по адресу ES:0000h, поменяв местами первый и последний символы.

8

Дана последовательность из 8 чисел (байтов), размещённых в сегменте данных, начиная с адреса DS:0000h. Вычислить сумму первых 4 и сумму последних 4 чисел. Разность первой и второй суммы поместить в регистр DX.

Окончание таблицы 7.2

9

Дана последовательность из 7 чисел (байтов), размещённых в сегменте данных, начиная с адреса DS:0000h. Вычислить сумму произведений чисел на их номер в строке и записать результат по адресу ES:0020h.

10

Дана последовательность из 10 чисел (байтов), размещённых в сегменте данных, начиная с адреса DS:0000h. Вычислить сумму с третьего по девятое число и записать результат по адресу ES:0020h.


Контрольные вопросы
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 – Команды условных и безусловных переходов

Мнемокод

Условие

Значение флагов

1

2

3

Для данных со знаком

JL

Меньше

SF xor OF=1

JNL

Не меньше

SF xor OF=0

Окончание таблицы 8.1

1

2

3

JG

Больше

(SF xor OF) or ZF=0

JNG

Не больше

(SF xor OF) or ZF=1

Для данных без знака

JB

Меньше (ниже)

CF=1

JNB

Не меньше (не ниже)

CF=0

JA

Больше (выше)

CF or ZF=0

JNA

Не больше (не выше)

CF or ZF=1

Прочие

JE или JZ

Равно или нуль

ZF=1

JNE или JNZ

Не равно или не нуль

ZF=0

JS

По минусу

SF=1

JNS

По плюсу

SF=0

JO

По переполнению

OF=1

JNO

По отсутствию переполнения

OF=0

JMP

Безусловный переход

Не зависит от флагов

JCXZ

Переход по нулю в регистре СХ





Примечания:

- термины «выше» и «ниже» применимы для сравнения беззнаковых величин (адресов), термины «больше» и «меньше» используются при учете знака числа;

- слова 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 – Таблица вариантов

Вариант

Задача

1

Дан массив из 10 байтов. Найти количество отрицательных чисел. Ответ записать в регистр DX.

2

Дан массив из 5 слов. Найти сумму всех отрицательных чисел. Ответ записать в регистр DX.

Окончание таблицы 8.2

3

Дан массив из 8 байт. Сформировать другой массив по адресу ES:0010h, заменив все отрицательные числа нулями.

4

Дан массив из 10 байт. Найти разность максимального и минимального значения. Ответ записать в регистр DX.

5

Дан массив из 9 слов. Найти среднее арифметическое ненулевых элементов. Ответ записать в регистр DX.

6

Дан массив из 6 слов. Найти количество четных элементов. Ответ записать в регистр DX.

7

Дан массив из 10 байт. Сформировать другой массив по адресу ES:0050h, в который нечетные элементы из первого массива переписать без изменений, а четные – увеличить на 1.

8

Дан массив из 15 байт. Определить количество чисел, больших 6. Ответ записать в регистр DX.

9

Дан массив из 10 байт. Подсчитать количество элементов, кратных 3. Ответ записать в регистр DX.

10

Дан массив из 20 байт. Найти среднее арифметическое квадратов четных чисел. Ответ записать в регистр DX.


Примечание: массив байтов размещается, начиная с адреса DS:0000h.
1   2   3   4   5   6   7

Похожие:

Практическая работа №1 «Изучение принципов работы с системами счисления» icon Практическая работа №1 «Изучение организации бесперебойного питания пк»
Практическая работа №3 «Изучение типов современных процессоров и их характеристик»
Практическая работа №1 «Изучение принципов работы с системами счисления» icon Практическая работа №1 «Изучение организации бесперебойного питания пк»
Практическая работа №3 «Изучение типов современных процессоров и их характеристик»
Практическая работа №1 «Изучение принципов работы с системами счисления» icon Практическая работа №1 «Изучение методов конфигурирования сетей доступа»
Практическая работа №2 «Изучение методов отбора, подготовки и контроля линии под технологию adsl»
Практическая работа №1 «Изучение принципов работы с системами счисления» icon Лабораторная работа №10. Изучение принципа действия и функциональной...
Лабораторная работа № Изучение принципов построения системы автоматической подстройки частоты (апч) радиолокационной станции
Практическая работа №1 «Изучение принципов работы с системами счисления» icon Лабораторная работа Изучение принципов функционирования простейшей микроэвм и процессора
Лабораторная работа Изучение принципов функционирования простейшей микроэвм и процессора I8085A при реализации программы
Практическая работа №1 «Изучение принципов работы с системами счисления» icon Урок Практическая работа №4 «Получение аммиака и изучение его свойств» Цели урока
Цели урока: получения аммиака изучение его свойства через проведение практической работы
Практическая работа №1 «Изучение принципов работы с системами счисления» icon Методические указания к лабораторным работам Рязань 2013
...
Практическая работа №1 «Изучение принципов работы с системами счисления» icon Курсовая работа
Целью работы является детальное изучение бережливого производства, его принципов, инструментов, их характеристик, а также возможностей...
Практическая работа №1 «Изучение принципов работы с системами счисления» icon Практическая работа №1 «Работа с нормативными документами»
...
Практическая работа №1 «Изучение принципов работы с системами счисления» icon Урок информатики по теме "Системы счисления. Позиционные и непозиционные...
Формирование представлений об информации как одного из трех основополагающих понятий науки — вещества, энергии, информации, на основе...
Практическая работа №1 «Изучение принципов работы с системами счисления» icon Описание практической работы №2 создание шаблона сайта
Цель работы: изучение и освоение принципов работы с html тегами, их атрибутами и умение создавать базовые элементы web–страницы
Практическая работа №1 «Изучение принципов работы с системами счисления» icon Методические указания к выполнению лабораторных работ по дисциплине радиолокационные системы
Лабораторная работа №1 «Изучение принципов построения штатной радиолокационной киа»
Практическая работа №1 «Изучение принципов работы с системами счисления» icon Практическая работа №1 «Изучение видов интерфейсов и их характеристик»
Профессиональный модуль «Применение микропроцессорных систем, установка и настройка периферийного оборудования»
Практическая работа №1 «Изучение принципов работы с системами счисления» icon Практическая работа №1 «Расчет срока окупаемости капитальных вложений...
Практическая работа №2 «Задача выбора поставщика и ее решениена основе анализа полной стоимости»
Практическая работа №1 «Изучение принципов работы с системами счисления» icon Практическая работа №5. Составление инструкции «Аккумуляторщик»
...
Практическая работа №1 «Изучение принципов работы с системами счисления» icon Практическая работа №1 «Технология строительства воздушных линий связи»
Практическая работа №9 «Технология ввода кабелей в здание атс. Оборудование шахт»

Руководство, инструкция по применению






При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск