русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Содержание лабораторной работы


Дата добавления: 2015-08-06; просмотров: 667; Нарушение авторских прав


Задачи, решаемые на ЭВМ, не сводятся к обработке отдельного элемента данных с помощью одной операции. Напротив, они требуют обработки многих элементов данных (например, массива или блока данных), которые занимают отдельные ячейки памяти. Программа может выполнять одну и ту же операцию над содержимым ячеек, причем выполнять ее многократно с помощью программных циклов.

Например, необходимо найти сумму ряда чисел. При этом задача состоит в том, чтобы осуществить суммирование нескольких чисел сразу. Эти числа могут представлять собой совокупности входных сигналов, находящихся под управлением системы, число изделий (или число сообщений), изготовленных (или принятых) за определенный промежуток времени. Предположим, что сумма не превышает 25510 и для её хранения достаточно одной 8-битовой ячейки памяти.

В программе суммирования ряда чисел для МП К580ИК80 использованы следующие исходные данные и обозначения:

В - регистр-счетчик, указатель длины массива

NNNN - адрес ячейки памяти, где указана длина массива

HL - регистровая пара, адресный указатель данных

DDDD - адрес ячейки памяти, где хранится первый элемент

8100 - адрес начала программы

Перед выполнением программы исходный ряд чисел заносится с помощью командных клавиш в область памяти, начиная с адреса DDDD (см. Приложение 2).

В большинстве случаев точность вычислений, обеспечиваемая одной ячейкой памяти, недостаточна. Поэтому рассмотрим арифметику для чисел, занимающих несколько ячеек. Задача состоит в том, чтобы сложить два числа длиной более 8 бит каждое. Исходные числа располагаются в области памяти таким образом, что сначала идут младшие разряды, а затем более старшие. Полученную сумму необходимо поместить в те ячейки памяти, где хранилось первое число.

В программе суммирования двух длинных чисел для МП К580ИК80 использованы следующие исходные данные и обозначения:



 

Таблица 22.1 – Программа сложения ряда чисел

Адрес Машинный код Метка Мнемокод Комментарий
3A   LDA загрузка длины ряда чисел в АКМ
NN     из ячейки памяти с адресом
NN     NNNN
  MOV B,A загрузка длины ряда чисел в счетчик

 

Таблица 22.1 (продолжение)

Адрес Машинный код Метка Мнемокод Комментарий
  SUB Обнуление аккумулятора
  LXI H загрузка адресного указателя
DD     DDDD в регистровую пару HL
DD      
M2 ADD M сложение элемента массива с АКМ
  DCR B уменьшение счетчика
810A CA   JZ, M сложение элементов массива
810B     закончено?
810C      
810D   INX H переход к следующему адресу
810E C3   JMP, M2 организация цикла
810F      
     
Ml NOP окончание программы

N - длина чисел в байтах

В - регистр-счетчик, указатель длины чисел

DE - регистровая пара, адресный указатель первого слагаемого

NNNN - адрес ячейки памяти, где хранится младший байт первого числа

HL - регистровая пара, адресный указатель второго слагаемого

DDDD - адрес ячейки памяти, где хранится младший байт второго числа

8300 – адрес начала программы

 

Таблица 22.2 - Программа сложения двух длинных чисел

Адрес Машинный код Метка Мнемокод Комментарий
  MVI B Загрузка счетчика
N      
  LXI D загрузка адресного указателя
NN     Первого числа
NN      
  LXI H загрузка адресного указателя

 

 

Таблица 22.2 (продолжение )

Адрес Машинный код Метка Мнемокод Комментарий  
DD     Второго числа  
DD        
1A М2 LDAX D загрузка операнда в АКМ
8E   ADC M сложение с учетом переноса
830А   STAX D Запоминание результата сложения
830В   DCR B Уменьшение счетчика на единицу
830С CA   JZ, M1 сложение закончено?
830D      
830Е      
830F   INX D переход к следующему байту
        первого числа
  INX H переход к следующему байту
        второго числа
C3   JMP, M2 организация цикла
     
     
Ml NOP окончание программы
               

 

Перед выполнением программы исходные числа F1 и F2, начиная с младшего байта, заносятся последовательно байт за байтом с помощью командных клавиш в ячейки памяти, начиная с адресов NNNNи DDDD соответственно (см. Приложение 3).

 



<== предыдущая лекция | следующая лекция ==>
Содержание и порядок выполнения лабораторной работы | Порядок выполнения работы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.315 сек.