Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / Lab_moto / 3.doc
Скачиваний:
18
Добавлен:
16.04.2013
Размер:
196.1 Кб
Скачать

Контрольные вопросы.

1. Объясните логику работы команд сложения и вычитания с учетом флага CрегистраCC при обработке многобайтовых чисел.

2. Опишите работу команд, выполняющих операцию циклического сдвига аккумулятора.

3. Придумайте не менее двух способов инвертирования содержимого аккумулятора.

4. Придумайте по два способа занесения в аккумулятор чисел $00 и $FF, используя только логические команды.

5. Дайте описание и приведите пример использования команды ASR.

6. Каким образом можно обращаться к битам и работать с ними, без ипользования команд работы с битами?

7. Опишите способы адресации команд ADC, ADD, SUB, SBC, AND, ORA, EOR, CMP, CPX.

8. Опишите способы адресации команд LSL, LSR, ASL, ASR, ROL, ROR COM, DEC, INC, NEG, TST, BIT.

9. Опишите способы адресации команд BSET, BCLR.

10. Опишите способы адресации команды MUL.

11. Почему в программе из примера на команды ASL, ASR правильными будут значения в ячейках $52 и $53, а неправильными - в ячейке $51?

12. Как можно организовать циклический сдвиг многобайтового слова?

13. Почему программы для нахождения модуля числа (пример 1 для команд сравнения, пример 2 для команд тестирования) не будут находить модуль числа $80 (-128.)?

14. Сколько байт в памяти могут занимать команды ADD, LSL,MUL, BCLR?

15. Чем отличаются команды ASR и LSR?

16. Чем отличаются команды NEGи COM?

17. Чем отличаются команды LSL иASL?

18. Чем отличаются команды LSL иROL?

19. Как работают команды CMP, BIT, TST?

20. Для чего чаще всего используются команды INCиDEC?

Задания.

1. Написать программу сложения или вычитания двух n-байтовых чисел, где числоnбудет являться параметром.

2. Написать программу, вычисляющую сумму чисел от 1доnс помощью цикла.

3. Написать программу, вычисляющую первые nчисел Фибоначчи. (Т.е. последовательность, в которой каждый последующий член является суммой двух предыдущих: 0,1,1,2,3,...)

4. Написать программу нахождения наибольшего общего делителя по алгоритму Евклида. (Берется исходная пара чисел. Из большего числа вычитается меньшее, потом меньшее число из первой пары и разность первой пары становятся следующей парой, и алгоритм повторяется снова до тех пор, пока в паре не окажутся одинаковые числа. Это и будет наибольшим общим делителем.)

5. Написать программы умножения и деления, используя команды сложения и вычитания.

6. Написать программу поиска максимального элемента в массиве.

7. Реализовать логические операции, таблицы истинности которых приведены ниже:

"стрелка Пирса"

"штрих Шеффера"

A

B

A¯B

A

B

A½B

0

0

1

0

0

1

0

1

0

0

1

1

1

0

0

1

0

1

1

1

0

1

1

0

8. Написать программу, записывающую последовательность бит в аккумуляторе в обратном порядке (00100111®11100100).

9. Написать программу, записывающую в старшую тетраду аккумулятора зеркальное отображение младшей (11110011®11000011).

10. Написать программу, осуществляющую преобразование числа в его символьное представление в коде ASCII в восьмиричной системе счисления.

11. Написать программу, осуществляющую преобразование числа в его символьное представление в коде ASCII в десятичной системе счисления.

Указание: воспользоваться подпрограммой деления.

12. Написать программу, осуществляющую преобразование числа из его символьного представления в коде ASCII в восьмиричной системе счисления.

13. Написать программу которая копирует младшие биты байтов $50-$57 в биты байта $58; младший бит байта $58 соответствует биту, взятому из байта $50.

14. Написать программу, инвертирующую бит nв ячейке $dd, гдеnпередается в аккумуляторе, а адресdd-в регистреX.

15. Написать программу, расширяющую значение байта $50 в 4 последующих байта следующем образом: тетрада каждого из этих четырех байт равна $F, если установлен соответствующий бит в ячейке $50 и $0, если бит сброшен.

Однокристальная микроЭВМ МС68НС705С8. Лабораторный практикум.

Соседние файлы в папке Lab_moto