Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
microproc_lab.doc
Скачиваний:
9
Добавлен:
23.04.2019
Размер:
290.82 Кб
Скачать
  1. Вычислить булеву функцию трех переменных :

Y = X V W (XV). Переменные X, V, W поступают на линии 2, 1, и 0 порта 1 соответственно. Результат Y необходимо вывести на линию 3 порта 1:

Y EQU P1.3

X EQU P1.2

V EQU P1.1

W EQU P1.0

MOV C,X ; Ввод Х

ANL C,V ; X AND NOT (V)

MOV F0,C ; Запоминание результата в F0

MOV C,X ; Ввод X

ORL C,V ; X OR V

ANL C,W ; W AND (X OR V)

ORL C,F0 ; ( W AND (X OR V)) OR (X AND NOT (V))

MOV Y,C ; Вывод результата

Флаг F0 используется для промежуточного хранения первой конъюнкции X V.

Задания 1.

  1. Составить программы для вычисления выражений (для умножения и деления использовать операции сдвига, операнды и результат находятся в памяти): Четные разряды результата инвертировать Y=(38-90/2)/2-11

  2. Записать в четные разряды результата единицы: Y=(233/8-44)*4

  3. Записать в нечетные разряды результата нули: Y=(61+128/2)/8-3

  4. Определить старший полубайт: Y=(24*4-8*2)/4

  5. Определить младший полубайт: Y=(123*4-289)/8

  6. Выделить те разряды байта, у которого возникло изменение нуля на единицу. Старый и новый байты находятся в памяти.

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

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

Задания 2.

1. Выбрать второй регистровый банк. Установить биты 0, 2, 6 регистра R4. Сбросить биты 1, 3, 7 порта Р2, используя маску, вычисленную с помощью регистра R4.

2. Выбрать первый регистровый банк. Установить биты 0, 1, 2, 3 порта Р1. Определить и записать в регистры R1-R4 флажки, указывающие на то, взвелись ли биты 4-7 порта Р1.

3. Последовательно с помощью модифицируемой маски, хранящейся в регистре R3, установить и сбросить биты с 3-го по 6-ой порта Р1.

4. Записать в аккумулятор и порт Р2 произвольные числа. Проинвертировать биты порта Р2, соответствующие единичным битам аккумулятора.

5. Выбрать третий банк регистров. С помощью модифицируемой маски установить во всех портах биты, соответствующие номеру порта.

16

ADDC A,@R0

DA A ; Десятичная коррекция

MOV @R1,A ; Запись в буфер

MOV А,#4 ; Индекс для продолжения программы

JMP @A+DPTR ; Переход к инструкции, следующей за списком параметров.

Следует учесть, что инструкции ACALL и LCALL не используются в программе, поскольку каждая из них заносит адрес в стек. В то же время инструкция MOVC имеет доступ ко всем 64 К байтам адресного пространства памяти программ микроЭВМ.

Задания 1.

Составить два варианта программы без подпрограмм и с подпрограммой.

  1. Разработайте программу сортировки массива по возрастанию.

  2. Разработайте программу сортировки массива по убыванию.

  3. Реализуйте на ассемблере 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

  1. Разработайте программу подсчета количества ячеек памяти со значениями, отличными от 38h.

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

  3. Разработайте программу подсчета количества отрицательных и положительных чисел, при этом считать, что ноль – положительное число.

  4. Напишите подпрограмму вычисления чисел Фибоначчи.

Алгоритм:

А1=1 ; А2=1

Аi =Ai-2+Ai-1.

  1. Пусть в памяти находится строка, оканчивающаяся нулем. Разработайте подпрограмму подсчета длины строки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]