- •Внутренняя архитектура.Методы адресации. Команды пересылки данных. Команды передачи управления.
- •2.1. Теоретическая часть.
- •2.1.1. Архитектура центрального процессора.
- •2.1.2. Карта памяти. Назначение регистров.
- •Регистр конфигурации (option).
- •Регистры данных портов (dRn) и установки направления передачи данных (ddRn).
- •Регистры управления (scr), состояния (ssr) и данных (sdr) порта последовательного периферийного интерфейса spi.
- •Регистры сброса (coprst) и управления сбросом (copcr).
- •2.1.3. Методы адресации.
- •2.1.4. Команды пересылки данных.
- •2.1.5. Команды передачи управления.
- •2.2.1. Исследование работы команд пересылки данных.
- •Команды загрузки регистров а и х данными из памяти.
- •Команды модификации памяти.
- •Команды межрегистровой пересылки.
- •Команды условного перехода.
- •Команды работы с подпрограммами.
- •Команда установки указателя стека в исходное состояние.
- •2.3. Контрольные вопросы.
- •2.4. Задания.
2.4. Задания.
1. Разработайте программу сортировки ячеек памяти $0090-$00BF по возрастанию.
2. Реализуйте на ассемблере программу, написанную на языке BASIC:
10 LET A=7
20 FOR B=2 TO 9
30 IF B<4 THEN GO SUB 60
40 NEXT B
50 GO TO 80
60 LET A=A+B
70 RETURN
80 STOP
3. Разработайте программу подсчета количества ячеек памяти со значениями, отличными от $38.
4. Напишите программу подсчета количества ячеек памяти, значения которых меньше или равны $A3, причем считается, что числа знаковые.
5. Разработайте программу подсчета количества отрицательных и положительных чисел, при этом считайте, что ноль нейтрален.
6. Составьте программу подсчета статистики чисел по отношению к числу $31, т.е. в одну ячейку памяти записывайте количество чисел равных, в другую меньших, в третью больших данного числа.
7. Преобразуйте программу, написанную на языке BASIC, в последовательность команд языка ассемблера:
10 LET B=128
20 FOR A=10 TO 100 STEP 5
30 LET B=B-1
40 IF B=115 THEN POKE 144,7
50 NEXT A
8. Пусть в ячейках памяти $80, $81 и $82 находятся соответственно переменные A, B и C. Если они упорядочены по возрастанию, то заполните ячейки памяти $90-$B0 значением $55, в противном случае заполните указанные ячейки значением $66.
9. Пусть в ячейках памяти $80, $81, $82 и $83 находятся соответственно переменные A, B, C и D. Составить программу, заполняющую ячейку $90 различными значениями в соответствии с таблицей:
-
Условие
Содержимое ячейки $90
1
2
3
A³B
C³D
B<D
1
B³D
2
C<D
B<C
3
B³C
4
A<B
-
-
5
10. Пусть в ячейках памяти $80, $81, $82 и $83 находятся соответственно переменные A, B, C и D. Составить программу, заполняющую ячейку $90 различными значениями в соответствии с таблицей:
-
Условие
Содержимое ячейки $90
1
2
3
A>C
B>D
B£C
0
B>C
1
B£D
A>D
1
A£D
2
A£C
-
-
3
11. Пусть в ячейке $80 находится переменная A. Расписать ее значение побитно в ячейках $90-$97. Команды тестирования битов не использовать.
12. Пусть в памяти находится строка, оканчивающаяся нулем. Разработайте программу подсчета длины строки.
13. Пусть в ячейке $80 находится некоторое беззнаковое число. Проверить: делится ли это число нацело на $03?
14. Пусть в ячейке $80 находится некоторое знаковое число. Проверить: делится ли это число нацело на $0A?
15. Составьте программу сортировки по убыванию.
16.1Напишите программу, которая определяет адрес своего первого байта. Считать, что полезной информации в области стека не накоплено.
1Из-за особенностей эмуляции данный регистр расположен по адресу$3FDF памяти отладочного модуля.
1В этой работе будут использованы команды INC (увеличить на единицу), DEC (уменьшить на единицу) и CMP (сравнение содержимого аккумулятора с ячейкой памяти). Пожалуйста, ознакомьтесь с их возможностями перед подготовкой к работе, если Вы испытываете затруднения.
1Задание повышенной сложности.
Однокристальная микроЭВМ МС68НС705С8. Лабораторный практикум.