рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Постановка задачи

Постановка задачи - раздел Высокие технологии, Описание и характерные особенности микроконтроллеров ATmega8535 Занести Числа В Память: A = N+100; B = ...

Занести числа в память:

a = N+100;

b = ;

c = N+60;

d = N+125.

N – номер варианта по списку группы или выданный преподавателем.

Произвести операции над числами a,b,c,d следующие задания:

  1. Подсчитать количество ненулевых бит в числе,
  2. Подсчитать количество нулевых бит в числе,
  3. Подсчитать количество четных единиц в байте,
  4. Подсчитать количество нечетных единиц в байте,
  5. Подсчитать количество четных нулей в байте,
  6. Подсчитать количество нечетных нулей в байте.

 

Содержание отчета

 

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

 

Литература

1. Балакина Е.П., Воробьёва Л.Н., Гречишников В.А. Интегрирование программных модулей ассемблера в среде DELPHI. Методические указания к лабораторным работам по дисциплине «Машино-Ориентированные Языки». – М.: МИИТ, 2009. –56 с.

2. Хусаинов Р.З., Садов В.Б. Программирование микроконтроллеров ATmega8535: методические указания к выполнению лабораторных работ.– Челябинск, 2009.– 123с.

3. http://www.gaw.ru/html.cgi/txt/doc/micros/avr/asm/start.htm


Содержание

 

  Введение
1. Описание и характерные особенности микроконтроллеров ATmega8535    
1.1 Устройства ввода/вывода ATmega8535  
1.2 Архитектура микроконтроллеров ATmega8535  
1.3 Система команд микроконтроллеров  
1.3.1 Команды пересылки данных
1.3.2 Арифметические команды
1.3.3 Команды умножения
1.3.4 Команды сравнения
1.3.5 Логические команды
1.3.6 Команды сдвигов и операции с битами
1.3.7 Команды безусловного перехода
1.3.8 Команды обращения к процедурам
1.3.9 Команды условного перехода
2. Создание программ на языке Ассемблера
3. Порядок выполнения лабораторных работ
  Лабораторная работа №1
  Лабораторная работа №2
  Лабораторная работа №3
  Литература
  Приложение 1

 


Приложение 1

 

Таблица 9. Арифметические и логические команды

 

Мнемоника Операнды Описание Операция Флаги Кол-во циклов
ADD Rd,Rr 0≤d≤31, 0≤r≤31 Сложить без переноса Rd ¬Rd + Rr Z, C, N, V, H
ADC Rd.Rr 0≤d≤31, 0≤r≤31 Сложить с переносом Rd ¬ Rd + Rr+ С Z, C, N, V, H
ADIW Rd,K dE{24,26,28,30} 0≤K≤63 Сложить непосредственное значение со словом Rdh:Rdl¬Rdh:Rdl+ К Z, C, N, V
SUB Rd,Rr 0≤d≤31, 0≤r≤31 Вычесть без заема Rd ¬ Rd – Rr Z, C, N, V, H
SUBI Rd, К 16≤d≤31 0≤K≤255 Вычесть непосредственное значение Rd ¬ Rd – К Z, C, N, V, H
SBC Rd, Rr 0≤d≤31, 0≤r≤31 Вычесть с заемом RdßRd-Rr-C Z, C, N, V, H
SBCI Rd, К 16≤d≤32, 0≤K≤255 Вычесть непосредственное значение с заемом RdßRd-K-C Z, C, N, V, H
SBIW Rd, К dE{24,26,28,30} О≤К≤бЗ Вычесть непосредственное значение из слова Rdh:RdlßRdh:Rdl-K Z, C, N, V
AND Rd, Rr 0≤d≤31, 0≤r≤31 Выполнить логическое AND Rd ß Rd • Rr Z, N, V
ANDI Rd, К 16<d<31 0<k≤255 Выполнить логическое AND Rd ß Rd • К Z, N, V
OR Rd, Rr 0≤d≥31, 0≤r≤31 Выполнить логическое OR Rd ßRd v Rr Z, N, V
ORI Rd, К 16≤d≤31, 0≤K≤255 Выполнить логическое OR с непосредственным значением Rd ßRd v К Z, N, V
EOR Rd, Rr 0≤d≤31, 0≤г≤31 Выполнить исключающее OR Rd ßRd Rr Z, N, V
СОМ Rd 0≤d≤31 Выполнить дополнение до единицы RdßSFF-Rd Z, C, N, V
NEG Rd 0≤d≤31 Выполнить дополнение до двух Rd ß S00 - Rd Z, C, N, V, H
SBR Rd, К 16≤d≤31, 0≤K≤255 Установить биты в регистре Rd ß Rd v К Z, N,V
CBR Rd, К 16≤d≤31 O≤K≤255 Очистить биты в регистре Rd ßRd • (SFF - К) Z, N, V
INC Rd 0≤d≤31 Инкрементировать Rd ßRd + 1 Z, N,V
DEC Rd 0≤d≤31 Декрементировать Rd ß Rd - 1 Z, N,V
TST Rd 0≤r≤31 Проверить на ноль или минус RdßRd.Rd Z, N, V
CLR Rd 0≤d≤31 Очистить регистр Rd ß Rd Å Rd Z, N, V
SER Rd 16≤d≤31 Установить все биты регистра Rd ßSFF нет
MUL Rd,Rr 0≤d≤31, 0≤r≤31 Беззнаковое умножение целых чисел R1:R0 ß Rd*Rr Z,C
MULS Rd,Rr 16≤d≤31, 16≤r≤31 Умножение целых чисел с учётом знака R1:R0 ß Rd*Rr Z,C
MULSU Rd,Rr 16≤d≤23, 16≤r≤23 Целочисленное умножение числа со знаком на число без знака R1:R0 ß Rd*Rr Z,C
FMUL Rd,Rr 16≤d≤23, 16≤r≤23 Беззнаковое умножение дробных чисел R1:R0 ß (Rd*Rr)<<1 Z,C
FMULS Rd,Rr 16≤d≤23, 16≤r≤23 Умножение дробных чисел с учётом знака R1:R0 ß (Rd*Rr)<<1 Z,C
FMULSU Rd,Rr 16≤d≤23, 16≤r≤23 Умножение дробного числа со знаком на дробное число без знака R1:R0 ß (Rd*Rr)<<1 Z,C
CP Rd, Rr 0≤d≤31, 0≤r≤31 Сравнить Rd-Rr Z, C, N, V, H
CPC Rd, Rr 0≤d≤31, 0≤r≤31 Сравнить с учетом переноса Rd-Rr-C Z, C, N, V, H
CPI Rd, К 16≤d≤31, 0≤K≤255 Сравнить с константой Rd-K Z, C, N, V, H

 

Таблица 10. Команды сдвигов и операций с битами

Мнемоника Операнды Описание Операция Флаги Кол-во циклов
LSL Rd 0≤d≤31 Логически сдвинуть влево Rd(n+1)ß Rd(n), Rd(0)ß0, Cß Rd(7) Z,C,N,V,H
LSR Rd 0≤d≤31 Логически сдвинуть вправо Rd(n)ß Rd(n+1), Rd(7) ß 0, C ß Rd(0) Z,C,N,V
ROL Rd 0≤d≤31 Сдвинуть влево через перенос Rd(0) ß C, Rd(n+1) ß Rd(n), C ß Rd(7) Z,C,N,V,H
ROR Rd 0≤d≤31 Сдвинуть вправо через перенос Rd(7) ß C, Rd(n)ß Rd(n+1), C ß Rd(0) Z,C,N,V
ASR Rd 0≤d≤31 Арифметически сдвинуть вправо Rd(n) ß Rd(n+1), n=0...6, Rd(0) ß C Z,C,N,V
SWAP Rd 0≤d≤31 Поменять нибблы местами Rd(3...0) <–> Rd(7...4) Нет
BSET s 0≤s≤7 Установить флаг SREG(s) ß 1 SREG(s)
BCLR s 0≤s≤7 Очистить флаг SREG(s) ß 0 SREG(s)
SBI P,b O≤P≤31, 0≤b≤7 Установить бит в регистр I/O l/0(P,b) ß 1 Нет
CBI P,b 0≤P≤31, 0≤b≤7 Очистить бит в регистре I/O l/0(P,b) ß 0 Нет
BST Rd,b 0≤d≤31, 0≤b≤7 Переписать бит из регистра во флаг Т Т ß Rd(b) Т 1
BLD Rd,b 0≤d≤31, 0≤b≤7 Загрузить Т флаг в бит регистра Rd(b) ß Т Нет
SEC Установить флаг переноса С ß 1 С
CLC Очистить флаг переноса С ß 0 С
SEN Установить флаг отрицательного значения N ß 1 N
CLN Очистить флаг отрицательного значения N ß 0 N
SEZ Установить флаг нулевого значения Z ß 1 Z
CLZ Очистить флаг нулевого значения Z ß 0 Z
SEI Установить флаг глобального прерывания I ß 1 I
CLI Очистить флаг гло­бального прерывания I ß 0 I
SES Установить флаг знака S ß 1 S
CLS Очистить флаг знака S ß 0 S
SEV Установить флаг переполнения V ß 1 V
CLV Очистить флаг переполнения   V ß 0 V
SET Установить флаг Т T ß 1 T
CLT Очистить флаг Т Т ß 0 T
SEH Установить флаг полу переноса Н ß 1 Н
CLH Очистить флаг полу переноса Н ß 0 Н
NOP Выполнить холостую команду     Нет
SLEEP Установить режим SLEEP   Нет
WDR Сбросить сторожевой таймер   Нет

 

Таблица 11. Команды пересылки данных

  Мнемоника Операнды Описание Операция Флаги Кол-во циклов
ELPM Расширенная загрузка из памяти программ в регистр RO R0ß (Z+RAMPZ) Нет
MOV Rd,Rr 0≤d≤31, 0≤r≤31 Копировать регистр RdßRr Нет
LDI Rd,k 16≤d≤31,0≤k≤255 Загрузить непосредственное значение RdßK Нет
LDS Rd,k 0≤d≤31 0≤k≤65535 Загрузить из ОЗУ Rdß(k) Нет
LD Rd,X 0≤d≤31 Загрузить косвенно Rd ß (X) Нет
LD Rd,X+ 0≤d≤31 Загрузить косвенно с постинкрементом Rd ß (X), XßX+1 Нет
LD Rd,X- 0≤d≤31 Загрузить косвенно с преддекрементом XßX-1, Rd ß (X) Нет
LD Rd,Y 0≤d≤31 Загрузить косвенно Rdß(Y), Нет
LD Rd,Y+ 0≤d≤31 Загрузить косвенно с постинкрементом Rdß(Y), YßY+1 Нет
LD Rd,Y 0≤d≤31 Загрузить косвенно с преддекрементом YßY-1, Rd ß (Y) Нет
LDD Rd,Y+q 0≤d≤31, 0≤q≤63 Загрузить косвенно со смещением Rdß(Y+q) Нет
LD Rd,Z 0≤d≤31 Загрузить косвенно Rd ß (Z) Нет
LD Rd,Z+ 0≤d≤31 Загрузить косвенно с постинкрементом Rd ß (Z), ZßZ+1 Нет
LD Rd,-Z 0≤d≤31 Загрузить косвенно с преддекрементом ZßZ-1, Rdß(Z) Нет
LDD Rd,Z+q 0≤d≤31, 0≤q≤31 Загрузить косвенно со смещением Rd ß (Z+q) Нет
STS k,Rr 0≤d≤31, 0≤k≤65535 Загрузить непосредственно в ОЗУ (k) ßRr Нет
ST X,Rr 0≤r≤31 Записать косвенно (X) ß Rr Нет
ST X+,Rr 0≤r≤31 Записать косвенно с постинкрементом (X) ßRr, XßX+ 1 Нет
ST -X,Rr 0≤r≤31 Записать косвенно с преддекрементом XßX-1, (X) ßRr Нет
ST Y,Rr 0≤r≤31 Записать косвенно (Y) ßRr Нет
ST Y+,Rr 0≤r≤31 Записать косвенно с постинкрементом (Y) ß Rr, YßY+ 1 Нет
STD Y+q,Rr 0≤r≤31, 0≤q≤63 Записать косвенно со смещением (Y+q)ßRr Нет
ST Z,Rr 0≤r≤31 Записать косвенно (Z) ßRr Нет
ST Z+,Rr 0≤r≤31 Записать косвенно с постинкрементом (Z) ß Rr, ZßZ+ 1 Нет
ST -Z,Rr 0≤r≤31 Записать косвенно с преддекрементом ZßZ-1, (Z) ß Rr Нет
STD Z+q,Rr 0≤r≤31, 0≤q≤63 Записать косвенно со смещением (Z+q)ßRr Нет
LPM Загрузить байт из памяти программ R0 ß (Z) Нет
IN Rd,P 0≤d≤31, 0≤P≤63 Загрузить данные из порта I/O в регистр RdßP Нет
OUT P,Rr 0≤r≤31, 0≤P≤63 Записать данные из регистра в порт I/O PßRr Нет
PUSH Rr 0≤r≤31 Сохранить регистр в стеке STACK ßRr Нет
POP Rr 0≤r≤31 Загрузить в регистр из стека Rr ß STACK Нет

 

Таблица 12. Команды переходов

  Мнемоника Операнды Описание Операция Флаги Кол-во циклов
RJMP k -2K<k<2K Перейти относительно PC ßPC + k + 1 Нет
LJMP Перейти косвенно PCßZ Нет
JMP k 0<k<4M Перейти PCßk Нет
RCALL k -2K≤k≤2K Вызвать подпрограмму относительно PC ß PC + k + 1 Нет
ICALL Вызвать подпрограмму косвенно PCßZ Нет
CALL k 0≤k≤64K Выполнить длинный вызов подпрограммы PCßk Нет
RET Вернуться из подпрограммы PC ß STACK Нет
RETI Вернуться из прерывания PC ß STACK I
CPSE Rd,Rr 0≤d≤31, 0≤r≤31 Сравнить и пропустить, если равно If Rd=Rr then PC ß PC + 2 (or 3) Нет ½/3
SBRC Rr,b 0≤r≤31, 0≤b≤7 Пропустить, если бит в регистре очищен if Rr(b)=0 then PC ß PC + 2 (or 3) Нет ½/3
SBRS Rr,b 0≤r≤31, 0≤b≤7 Пропустить, если бит в регистре установлен If Rr(b)=1 then PC ßPC + 2 (or 3) Нет ½/3
SBIC P,b 0≤P≤31, 0≤b≤7 Пропустить, если бит в регистре I/O очищен if l/O P(b)=0 then PC ß PC + 2 (or 3) Нет ½/3
SBIS P,b 0≤r≤31, 0≤b≤7 Пропустить, если бит в регистре I/O установлен If l/O P(b)=1 then PC ßPC + 2 (or 3) Нет ½/3
BRBS s,k 0≤s≤7, -64≤k≤+63 Перейти, если бит в регистре статуса установлен if SREG(s)=1 then PC ß PC + k + 1 Нет ½
BRBC s,k 0≤s≤7, -64≤k≤+63 Перейти, если бит в регистре статуса очищен if SREG(s)=0 then PC ß PC + k + 1 Нет ½
BREQ k -64≤k≤+63 Перейти, если равно if Rd=Rr (Z=1) then PC ß PC + k + 1 Нет ½
BRNE k -64≤k≤+63 Перейти, если не равно if Rd¹Rr(Z=0) then PC<ßPC+ k+ 1 Нет ½
BRCS k -64£k£+63 Перейти, если флаг переноса установлен if C=1 then PC ß PC + k + 1 Нет 1/2
BRCC k -64≤k≤+63 Перейти, если флаг переноса очищен if C=0 then PC ß PC + k + 1 Нет 1/2
BRSH K -64≤k≤+63 Перейти, если равно или больше (без знака) if Rd<Rr(C=0) then PCßPC+ k+ 1 Нет 1/2
BRLO k -64≤k≤+63 Перейти, если меньше (без знака) if Rd<Rr (C=1) then PC ßPC + k + 1 Нет 1/2
BRMI k -64≤k≤+63 Перейти, если минус if N=1 then PC ß PC + k + 1 Нет 1/2
BRPL k -64≤k≤+63 Перейти, если плюс if N=0 then PC ß PC + k + 1 Нет 1/2
BRGE k -64≤k≤+63 Перейти, если больше или равно (с учетом знака) if Rd>Rr (NÅV=0) then PC ß PC + k + 1 Нет 1/2
BRLT k -64≤k≤+63 Перейти, если меньше чем (со знаком) if Rd<Rr (NÅV=1)then PC ßPC + k+ 1 Нет 1/2
BRHS K -64≤k≤+63 Перейти, если флаг полупереноса установлен if H=1 then PC ß PC + k + 1 Нет 1/2
BRHC k -64≤k≤+63 Перейти, если флаг полупереноса очищен if H=0 then PC ß PC + k + 1 Нет 1/2
BRTS k -64≤k≤+63 Перейти, если флаг Т установлен if T=1 then PC ß PC + k + 1 Нет 1/2
BRTC k -64≤k≤+63 Перейти, если флаг Т очищен if T=0 then PC ß pc + k + 1 Нет 1/2
BRVS k -64≤k≤+63 Перейти, если флаг переполнения установлен if V=1 then PC ß PC + k + 1 Нет 1/2
BRVC k -64≤k≤+63 Перейти, если флаг переполнения очищен if V=0 then PC ß PC + k + 1 Нет 1/2
BRIE k -64≤k≤+63 Перейти, если глобальное прерывание разрешено if I=1 then PC ß PC + k + 1 Нет 1/2
BRID k -64k£k£+63 Перейти, если глобальное прерывание запрещено if I=0 then PC ß PC + k + 1 Нет 1/2

 


[1] См приложение

– Конец работы –

Эта тема принадлежит разделу:

Описание и характерные особенности микроконтроллеров ATmega8535

Любые устройства в том числе и устройства связи радиоавтоматики или аудиовизуальной аппаратуры требуют присутствия в своем составе устройства... Одним распростран нными в настоящее время являются микроконтроллеры фирмы... Описание и характерные особенности микроконтроллеров ATmega...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Постановка задачи

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Система команд микроконтроллера
Система команд микроконтроллера ATmega8535 весьма развита и насчитывает 130 различных инструкций. Большинство команд занимает только 1 ячейку памяти (16 бит) и выполняется за 1 такт [4].

Команды пересылки данных
Команда MOV Синтаксис: MOV Rd, Rr 0 < d < 31, 0 < r < 31.   Команда копирует содержимое регистра Rr в р

Арифметические команды
Сложение без переноса ADD (ADD - Add without Carry) Синтаксис: ADD Rd, Rr 0 < d < 31, 0 < r < 31. &

Команды умножения
Команда MUL   Синтаксис: MUL Rd, Rr 0 < d < 31,0 < r < 31   Команда перемножает две 8-раз

Команды сравнения
Команда TST Синтаксис: TSR Rd где 0 < d < 31   Команда осуществляет проверку на ноль или минус. При её выполнении пр

Логические команды
Команда AND Синтаксис: AND Rd, Rr где 0 < d < 31, 0 < r < 31   Команда межрегистрового логического «И».

Команда ANDI
Синтаксис: ANDI Rd, K где 0 < d < 31, 0 < K < 255   Команда осуществляет операцию логического «И» (см. таблицу 1) для содержимого ре

Команды сдвигов и операций с битами
Команда CLR (Clear Register) Синтаксис: CLR Rd где 16 < d < 31   Команда установки значения логического «нет» (нуля)

Команды безусловного перехода
  Команда RJMP Синтаксис: RJMP n где -2048 < n < 2048 (-2K < n < 2K)   Кома

Команды обращения к процедурам
  Команда RCALL Синтаксис: RCALL n где -2048 < n < 2048 (-2K < n < 2K)   Ко

Команды условного перехода
  Команда CPSE Синтаксис: CPSE Rd, Rr где 0 < d < 31, 0 < r < 31   Команда межрегистровог

Команда BRIE
Синтаксис: BRIE n где -64 < n < 63   Команда относительного перехода через n+1 команду, в случае, если установлен (равен единице) флаг гло

Окно просмотра содержимого памяти
Для просмотра содержимого оперативной памяти необходимо в меню «View» выбрать пункт «Memory» (рисунок 12).

Запуск эмулятора
Программа "AVR Studio" позволяет запустить программу в реальном времени и в пошаговом режиме. В меню отладки «Debug» находятся все варианты запуска программы, например:

Постановка задачи
  1. Занести число из столбца «Число 1» таблицы 7 и строки, соответствующей заданному варианту, в регистр R24; 2. Занести число из столбца «Число 2» таблицы 7 и строки

Постановка задачи
Занести числа в память: a = ; b =

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги