Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Ход выполнения лабораторной работы

МИНОБРНАУКИ РОССИИ

Федеральное государственное автономное

Образовательное учреждение высшего образования

ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ

ИНСТИТУТ РАДЕОТЕХНИЧЕСКИХ СИСТЕМ И УПРАВЛЕНИЯ

КАФЕДРА СИСТЕМ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ

 

 

Отчет

к лабораторной работе №3

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

 

по курсу:

«Вычислительные машины, Системы и Сети»

 

 

Выполнил:

студент группы Ртбо 3-7

Кошкальда Я.Ю.

__________________

 

Проверил:

Асс. каф. САУ

Денисенко М.Е

 

__________________

 

«__»____________2016г.

 

 

Таганрог 2016 г.

Цель работы

1) изучение принципов функционирования памяти и микропроцессора компьютера при выполнении ветвлений и циклов;

2) приобретение навыков использования команд условного и безусловного переходов, циклов при написании ассемблерных программ;

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

Задание на лабораторную работу

1) Написать программу на языке ассемблера, которая реализует ветвления и циклы.

1.1) В сегменте данных определить два числа в шестнадцатеричной системе счисления, размером в один байт каждое.

1.2) Также в сегменте данных описать однобайтовую ячейку для хранения наибольшего общего делителя (НОД) двух чисел с произвольным первоначальным значением.

1.3) Используя команды переходов и цикла, найти НОД двух чисел, описанных в сегменте данных.

1.4) Полученный результат поместить в соответствующую ячейку памяти.

1.5) Используя команды циклического сдвига, переходов и цикла подсчитать количество единиц в НОД.

1.6) Полученное значение поместить в регистр DL.

2) На основе исходной программы получить исполняемый файл. Выполнить программу по шагам с помощью отладчика TURBO DEBUGGER, описать изменение состояния регистров и ячеек памяти при выполнении программы. Обратить особое внимание на следующие моменты:

2.1) Как изменяется содержимое регистра IP при выполнении нелинейных переходов?

2.2) Чему равен адрес следующей команды при выполнении условия для перехода и в противном случае?

2.3) Каким образом организованы циклы в программе?

2.4) Какое значение будет находиться в регистре для НОД после подсчета количества единиц? Сколько раз нужно выполнить команду циклического сдвига, чтобы получить первоначальное значение?

 

Ход выполнения лабораторной работы

 

Рис.1 – НОД находится по алгоритму Евклида. После одной итерации данного алгоритма НОД чисел 90 и 80 равен 10

Рис. 2 – После нахождения НОД совершается прыжок в метку a1, где обнуляется bl и назначается счетчик CX, используемый для работы цикла loop

Рис. 3 – Используем циклический сдвиг влево с использование CF, после чего проверяем флаг CF, и если он равен нулю, совершаем прыжок в bit0

Рис. 4 – Использование цикла loop

Рис. 5 – CX уменьшился но нуля и цикл закончился. Результат заносим в dl

 


Листинг Программы:

.model small

.386

stack 100h

dataseg

Res dw?

number_1 dw 5Ah

number_2 dw 50h

codeseg

start:

startupcode

algorithm:

mov Res,dx

mov dx, 0

mov ax, number_1

div number_2

cmp dx, 0

jz a1

mov bx, number_2

mov number_1, bx

mov number_2, dx

jmp algorithm

a1: xor bl,bl

mov cx,8

mov ax,Res

lp:

rcl ax,1

jnc bit0

inc bl

bit0:

loop lp

mov dl,bl

quit:

exitcode 0

 

end start

Вывод

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

 



<== предыдущая лекция | следующая лекция ==>
учреждение высшего образования | 
Поделиться с друзьями:


Дата добавления: 2017-02-24; Мы поможем в написании ваших работ!; просмотров: 768 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Свобода ничего не стоит, если она не включает в себя свободу ошибаться. © Махатма Ганди
==> читать все изречения...

2370 - | 2119 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.