КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Архитектура ЭВМ, разработанная Джоном фон Нейманом
1. Машина имеет память, которая хранит программу, данные и результаты промежуточных вычислений. 2. Программа вводится в машину, так же, как и данные (а не коммутируется проводами). 3. Адресный принцип. В команде указываются не сами числа, над которыми выполняются арифметические действия, а адреса – номера ячеек памяти, где эти числа находятся. 4. Автоматизм. После ввода программа работает автоматически. Каждая команда содержит явное или неявное указание об адресе команды, которая будет выполняться следующей. 5. Переадресация. Адреса ячеек памяти, указанные в команде, можно вычислять и преобразовывать как числа. ЭВМ может сама готовить команды, которые выполняет. ЭВМ напоминает движение танка, который прокладывает перед собой рельсы (на внутренней стороне гусениц) и едет по ним. Разработка этих принципов позволила значительно упростить и удешевить компьютеры, а также достичь большой гибкости в их работе. В дальнейшем эти принципы нашли применение в разработке компиляторов, операционных систем и программировании на языках высокого уровня.
Задание: Написать программу, с помощью которой в регистрах микропроцессора, начиная с указанного, сформировать 6 чисел, расположенные в табл.1.1 последовательно, начиная с ячейки, находящейся под номером варианта. Затем найти сумму этих чисел, используя цикл.
Таблица 1.1 – Варианты заданий к л.р. №1
Допускается только одна команда занесения числа в регистр (команда с непосредственным операндом типа ldi регистр, константа). Остальные команды могут быть: mov регистр, регистр; inc регистр; add регистр, регистр; sub регистр, регистр.
Таблица 1.1 – Команды и их кодирование
Пример:
Пусть необходимо в регистрах, начиная с R3 сформировать такие числа: 8, 1, 4, 12, 6, 3. Напишем программу: ldi r16,1;r16=1 mov r4,r16;r4=1 mov r3,r4;r3=1 inc r3;r3=2 inc r3;r3=3 mov r8,r3;r8=3 inc r3;r3=4 mov r5,r3;r5=4 add r3,r3;r3=8 mov r6,r3;r6=8 add r6,r5;r6=C mov r7,r8;r7=3 add r7,r7;r7=6
sub r0,r0;r0=0 – Очистка суммы sub r1,r1;r0=0 – Очистка счетчика итераций ldi r17,6;r17=6 – Количество итераций ldi z31,0;Загрузка адреса начальной ldi z30,3;ячейки памяти в регистр Z loop: ld r10,z;Загрузка элемента массива из ячейки с адресом z во;временный регистр add r0,r10; s = s + m[i] – накопление суммы inc zl;Увеличение Z на 1 inc r1; i++ mov r16,r1; sub r16,r17; r1<r3? brlt loop; переход, если меньше на метку loop
Для удобства программирования следует представить программу в виде таблицы:
Таблица 1.2 – Команды программы и их коды
Для загрузки и исполнения программы откройте программу VMLAB. Если программа не установлена, то установите ее на диск D: в папку VMLAB. Инсталляция находится на “D:\Комплект_по_МП-технике\К лаб работе №1”. Кроме того, в вашу личную папку сбросьте папку проекта с именем My_z3. После запуска программы VMLAB откройте проект с которым будем работать: Project – Open Project – E:\ES07a\Петров\My_z3\vmlab. Закройте в программе все окна кроме Registers и Program Memory. Если эти окна тоже оказались закрыты, то откройте их через меню View. Затем выполните операцию Project – Re-build all. В окне Program Memory появятся коды и текст загруженной программы на языке ассемблера. Чтобы выполнить первую команду этой программы, нажмите F6. При этом вы увидите, как в окне Program Memory выделенная строка переместилась на следующую команду, а в окне Registers изменилось содержимое регистров в соответствии с выполненным действием. Прошагайте несколько команд, отслеживая их воздействие на регистры, чтобы научиться работать в VMLAB. Закройте проект Project – Close Project. Для загрузки в программу проекта полученных вами кодов команд, откройте файл E:\ES07a\Петров\My_z3\main..hex в блокноте. Вы увидите следующий текст: :0800000013C0FECFFDCFFCCFC1 :10000800FBCFFACFF9CFF8CFF7CFF6CFF5CFF4CFB4 :10001800F3CFF2CFF1CFF0CFEFCFEECFEDCF00009F :1000280001e0402E342c33943394832C3394532CCE :10003800330C632c650c782c770c0018111816E01C :10004800f0E0E3E0A0800A0CE3951394012D011BBE :10005800CCF30000000061F0A591B59105901590BE где после кода 0000 (отмечен голубым цветом), находится код первой команды программы e001, только байты e0 и 01 переставлены местами. Это выполнено по причине существования правила: “Число в памяти расположено так, что младший байт хранится по младшему адресу ”. В конце каждой строки находится два служебных символа, которые к программе не относятся (отмечены желтым цветом). Найдите в этом тексте коды остальных команд из программы табл.1.2. Разобравшись с размещением кодов программы приведенного выше примера, впишите на эти места коды вашей программы. При вставке кодов замещайте ими существующие символы так, чтобы служебные байты, отмеченные желтым цветом, не изменяли своего положения. Закройте файл с сохранением и заново откройте проект в VMLAB. Выполните вашу программу и проконтролируйте правильность результатов на каждом шаге, в том числе правильность найденной в цикле суммы регистров. Отчет должен содержать задание, схему расположения регистров, использующихся в программе, значения, полученные в регистрах в результате выполнения программы, таблицу 1.2 с кодами вашей программы и содержимое файла main.hex. Контрольные вопросы: 1. Где хранится программа на ПК и на МК Atmega? 2. В каком виде хранится программа? 3. Где хранятся данные на ПК и на МК Atmega? 4. В каком виде хранятся данные? 5. Какие этапы обработки проходит программа от рукописного текста до выполнения? 6. Как обычно получают коды команд программы? 7. В чем состоит адресный принцип построения архитектуры компьютера? 8. В чем состоит принцип автоматизма? 9. Приведите примеры применения переадресации. 10. Написать программу из 3-7 операторов языка Ассемблера по заданию преподавателя. 11. Закодировать команду из таблицы 1.1 по заданию преподавателя.
Лабораторная работа №2 – Работа в CodeVision AVR. Разработка и выполнение простейшей программы
Дата добавления: 2014-12-23; Просмотров: 784; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |