
- •1.2. Использование отладчика (симулятора) для ассемблерных модулей
- •1.3. Порядок создания программ на Ассемблере с помощью интегрированной среды
- •1.4. Порядок отладки программ на Ассемблере с помощью интегрированной среды
- •1.5. Дополнительные операторы языка Ассемблера для использования интегрированной среды
- •1.6. Задание для домашней подготовки
- •1.7. Лабораторное занятие
- •1.8. Отчет по работе
- •Лабораторная работа №2. "Исследование арифметических и логических операций над двоичными и шестнадцатеричными числами применительно к реализации в микроконтроллерах"
- •1. Логические и арифметические операции
- •2.6. Задание для домашней подготовки
- •1.7. Лабораторное занятие
- •Список рекомендованной литературы
1.6. Задание для домашней подготовки
1.6.1. Ознакомиться по описанию с порядком разработки программ в рамках интегрированной среды.
1.6.2. Ознакомиться с примерами программ на Ассемблере, приведенными в разделе "Лабораторное занятие".
1.6.3. По рекомендованной литературе ознакомиться со структурой и программированием ОЭВМ семейства MCS51.
1.6.4. Разработать программу на языке Ассемблера по заданию, которое приведено ниже. В табл. 1.2 приведен номер варианта программы, которая должна быть разработана для каждой бригады в отдельности. Программа должна иметь все необходимые "псевдооператоры", которые позволяли бы загрузить ее непосредственно в среду. Коды программы должны начинаться с 0000Н, байтовые переменные - с 08Н, стек - с 60Н, битовые переменные - с 20Н, внешнее ОЗУ – с 0000H. Ассемблирование вручную приводить не надо.
Таблица 1.2
Распределение вариантов домашнего задания по бригадам
N бригады |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
N варианта |
9 |
1 |
8 |
2 |
10 |
3 |
4 |
5 |
6 |
7 |
Вариант 1. Загрузить в регистр R0 число 8. Загрузить в регистр R1 число 9. Загрузить в регистр R2 число 10. В регистре R3 подсчитать сумму чисел, хранящихся в R0, R1, R2.
Вариант 2. Загрузить в регистр R0 число 8. Загрузить в регистр R1 число 9. Загрузить в регистр R2 число 10. В регистре R3 подсчитать выражение
R3 = R2 - R1 + R0
Вариант 3. Загрузить в регистр R0 число 8. Загрузить в регистр R1 число 9. Загрузить в регистр R2 число 10. В регистре R4 подсчитать выражение
R4 = R2 – R0 + R1
.
Вариант 4. Загрузить в регистр R0 число 8. Загрузить в регистр R1 число 9. Загрузить в регистр R2 число 10. В регистре R5 подсчитать выражение
R3 = R2 - R1 + R0
R4 = R2 – R0 + R1
R5 = R4 + R3
Вариант 5. Загрузить в регистр R0 число 8. Загрузить в регистр R1 число 9. Загрузить в регистр R2 число 10. В регистре R5 подсчитать выражение
R3 = R2 - R1 + R0
R4 = R2 – R0 + R1
R5 = R4 - R3
Вариант 6. Загрузить в регистр R0 число 8. Загрузить в регистр R1 число 9. Загрузить в регистр R2 число 10. В регистре R5 подсчитать выражение
R3 = R2 - R1 + R0
R4 = R2 – R0 + R1
R5 = R3 - R4
Вариант 7. Загрузить в регистр R0 число 4. Загрузить в регистр R1 число 5. Загрузить в регистр R2 число 15. В регистре R5 подсчитать выражение
R3 = R2 - R1 + R0
R4 = R2 – R0 + R1
R5 = R3 - R4
.
Вариант 8. Загрузить в регистр R0 число 4. Загрузить в регистр R1 число 5. Загрузить в регистр R2 число 15. В регистре R5 подсчитать выражение
R3 = R2 - R1 + R0
R4 = R2 – R0 + R1
R5 = R3 - R4
Вариант 9. Загрузить в регистр R0 число 4. Загрузить в регистр R1 число 5. Загрузить в регистр R2 число 15. В регистре R4 подсчитать выражение
R4 = R2 – R0 + R1
.
.
Вариант 10 Загрузить в регистр R0 число 4. Загрузить в регистр R1 число 5. Загрузить в регистр R3 число 15. В регистре R4 подсчитать выражение
R3 = R2 - R1 + R0
Примечание:
1) Команда загрузки в регистр числа: Mov Ri, #N , где Ri = R0, R1,…R7, N – число.
2) Команда пересылки из регистра Ri в регистр А: Mov А, Ri и обратная пересылка Mov Ri, А
3) Команда суммирования двух чисел предполагает, что одно из слагаемых должно быть предварительно загружено в регистр А. Тогда команда суммирования будет выглядеть так:
ADD A,Ri
где в А – первое число, в Ri - второе число. Результат суммирования сохраняется в том же регистре А.
4) Команда вычитания двух чисел предполагает, что одно из чисел (то, из которого вычитается) должно быть предварительно загружено в регистре А. Тогда команда вычитания будет выглядеть так:
SUBB A, Ri
где в А – первое число, в Ri - второе число (которое вычитают). Результат вычитания сохраняется в том же регистре А.