Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задание N 3.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
180.74 Кб
Скачать
  1. Содержание отчета

  • Задание по лабораторной работе;

  • Блок-схема алгоритма;

  • Текст программы с комментариями;

  • Контрольный просчет задания.

  • Ответы на вопросы:

  • Краткая характеристика арифметических команд.

  • Краткая характеристика логических команд.

  • Влияние арифметических и логических команд на флаги.

6. Пример выполнения задания.

Пусть в памяти программ, начиная с ячейки ADR2 = 0431h расположена таблица кодов длиной N=Eh (20h, 44h, 6h, 28h, 3Ah, 1Ch, 1Eh, 10h, 12h, 14h, 16h, 18h, 1Ah, 1Ch).

Необходимо составить и отладить программу, которая вычисляет сумму этих кодов, деленную на N, результат поместить в регистр B. Программа должна начинаться с ячейки ADR1= 0714h.

org 0

jmp Start

org 0714h

db 20h, 44h, 6h, 28h, 3Ah, 1Ch, 1Eh, 10h, 12h, 14h, 16h, 18h, 1Ah, 1Ch

org 0431h;

Start:

mov R2,#0Eh ; задаем счетчик циклов

mov R3,#0 ; задаем начальное значение суммы

mov DPTR,#0714h ; задаем базу массива

mov R4,#0 ; задаем индекс элемента

cycle:

mov A,R0 ; заносим в А индекс элемента массива

movc A,@A+DPTR ; извлекаем в А текущий элемент массива

add A,R3 ; текущая сумма плюс текущий элемент массива

mov R3,A ; новая сумма

djnz R2, cycle ; если не все элементы процесс повтори

mov A,R3 ; в А заносим сумму

mov B,#0Eh ; в В число элементов

div AB ; вычисляем значение функции F

mov B,A ; пересылка значения функции F в регистр В

jmp $ ; останов программы

end

4

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