Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

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






Лабораторная работа 6. Сравнение чисел





 

Цель работы: использование флагов регистра status для сравнения чисел. Изучение инструкций условных переходов BTFSC и BTFSS.

Инструкции условных переходов BTFSC и BTFSS проверяют состояние заданного бита в любом регистре и в зависимости от результата, пропускают или не пропускают следующую инструкцию программы. Инструкция BTFSC пропускает следующую инструкцию, если заданный бит сброшен. Инструкция BTFSS пропускает следующую инструкцию, если заданный бит установлен. На основе этого создается передача управления в другое место программы и организация циклов.

Использование бита CARRY (C)

BTFSS STATUS, C Если в бите С установлена единица, то пропускается следующая инструкция программы GOTO МЕТКА и сразу выполняется инструкция MOVWF R2
GOTO METKA MOVWF R2 Если бит C сброшен, то выполняется следующая инструкция программы GOTO METKA

Использование бита ZERO (Z)

BTFSS STATUS, Z Если в бите Z установлена единица, то пропускается следующая инструкция программы MOVF R2 и сразу выполняется инструкция MOVWF PORTC
MOVF R2, 0 MOVWF PORTC Если битZ сброшен, то выполняется следующая инструкция программы MOVF R2, 0

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

В ассемблере отсутствуют инструкции сравнения чисел, поэтому, чтобы определить, какое из чисел больше (меньше), применяют следующий алгоритм:

1. Выполняют вычитание чисел. При этом в зависимости от результата, изменяются флаги регистра status, см. таблицу 6.1.

2. Далее применяют инструкции условных переходов.

 

Т а б л и ц а 6.1 – Значения флагов регистра status при вычитании

Соотношения значений в рабочем регистре W и регистре общего назначения (UMENSH) Значения флагов status
Z DC C
UMENSH>W (положительный результат)      
UMENSH<W (отрицательный результат)      
UMENSH=W (нулевой результат)      
П р и м е ч а н и е – В регистр UMENSH помещается уменьшаемое

Задача. Две установки потребляют разное количество электроэнергии. Требуется определить, энергопотребление меньшей установки. Решение приведено во фрагменте 6.1. В нем используется значение бита С для вывода меньшего числа на светодиоды.

Фрагмент 6.1.

MOVLW h’4С’; h’4С’à W

MOVWF R1; h’4С’à R1

MOVWF UMENSH;W àUMENSH

MOVLW h’3С’; h’3С’àW

MOVWF R2; W à R2

SUBWF UMENSH, 1; UMENSH=

; UMENSH – W=

; = R1 – R2

BTFSS STATUS, C; C = 1?

MOVF R1, 0; R1 à W

MOVWF PORTC; W à PORTC

 

Выполните проект по 6.1, результаты сравните с таблицей 6.2.

 

Таблица 6.2 - Результаты сравнения чисел

Числа на входе Алгоритм Числа на выходе
R2 R1 Форма b Форма h
    Сравнение чисел и вывод меньшего числа  
    Определение равенства чисел    

 

После проверки правильности результата работы программы измените ее по заданию из таблицы 6.3. В программе должны использоваться значения флагов из таблицы 6.1, и она должна выполнять следующие действия:

- сравнение чисел, расположенных в разных регистрах. Большее число выводится на светодиоды;

- сравнение одинаковых чисел R1 и R1. Если числа равны в порт с выводится 1 в младшем разряде.

При написании программы используйте блок-схему на рисунке 6.1.

Date: 2015-05-09; view: 568; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию