Программирование арифметических задач на Ассемблере для микропроцессора К580
Цель лабораторной работы - рассмотреть особенности выполнения простейших арифметических операций над целыми числами без знака на микропроцессорных установках МИКРОЛАБ КР580ИК80 и ЭЛЕКТРОНИКА-580, познакомиться с программированием в машинных кодах и мнемокодах, научиться пользоваться средствами управления и клавиатурой устройств.
1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 1.1 Представление чисел При программировании микро ЭВМ на МП БИС КР580ИК80 необходимо пользоваться способом представления чисел с фиксированной десятичной точкой. При этом знак числа и количество разрядов, занятых дробной частью числа, могут быть учтены при подготовке данных или программным путем. Следует помнить, что коды команд, адреса и данные вводятся в микро ЭВМ числами в шестнадцатеричной системе счисления. Некоторой особенностью в лабораторных установках МИКРОЛАБ и ЭЛЕКТРОНИКА-580 является отображение чисел на дисплее (табл. I). Для МП БИС КР580ИК80 можно представлять данные в виде двоично-десятичного числа, при этом каждый байт рассматривается как две тетрады (два полубайта), а каждая тетрада кодирует одну десятичную цифру. Такое представление позволяет закодировать в одном байте десятичные числа от 0 до 99. Обратите внимание на то, что, используя для представления шестнадцатеричную систему счисления, в одном байте можно закодировать число от 0 до FF , что соответствует числам десятичной системы от 0 до 255. Эти примеры показывают, что такое представление чисел более рационально: используется меньший объем памяти, сокращается программа. Основной арифметической функцией является сложение двух чисел. Команда, имеющая мнемокод ADD Rд, складывает данные регистра Rд и аккумулятора (регистра А) и результат сложения запоминает в аккумуляторе. - CARRY - регистра признаков. Разряд (флаг) переноса играет большую роль при выполнении микропроцессором арифметических операций и работает девятым разрядом аккумулятора. По флагу командами IC и INC можно осуществить переход. Применяется он так же при сложении чисел длиннее восьми разрядов, выполняя функции связи между двумя байтами записи числа. О состоянии флага переноса, как и других флагов регистра признаков в МИКРОЛАБе может сообщить ячейка памяти с адресом 83ЕА, где флаги записываются в последовательности, приведенной на рисунке 1.1. В «ЭЛЕКТР0НИКЕ-580» разряд С высвечивается на панели установки. Вычитание содержимого регистра Rд из содержимого аккумулятора производит команда SUB Rд. Например, команда SUB B вычитает из аккумулятора данные регистра В. Команда вычитания использует флаг переноса как разряд заема. Если флаг переноса устанавливается после команды SUB Rд, значит, число в регистре Rд больше, чем в аккумуляторе. После выполнения команды SUB Rд результат остается в аккумуляторе, вызов содержимого которого на индикатор регистра данных осуществляется адресом 83ЕВ в "МИКРОЛАБе" и клавишами REC, А в "ЗЛЕКТРОНИКЕ-580". 1. 3 Программа сложения двух однобайтных чисел X и У Задача состоит в том, чтобы, выполнив занесение однобайтных чисел в регистры А и Rд, сложить их и поместить результат сложения в аккумулятор. Задайтесь числовыми значениями Х = 38, Y = А3 и начальным адресом программы, приняв его равным 8200. Обратите внимание на то, что все приведенные числа записаны в шестнадцатеричной системе счисления. Включите лабораторную установку и, пользуясь листингом программы, приведенным в табл. 2, запишите в память ЭВМ по указанным адресам коды команд. Таблица 1.2 - Программа PRG 1 сложения двух однобайтных чисел Адрес Код команды Метка Мнемокод Комментарий 8200 AF PRG 1: ХRА А Очистить аккумулятор 8201 ЗЕ MVI A, 38 Записать в аккумулятор 8202 38 число X 8203 06 MVI B, A3 Записать в регистр В 8204 A3 число У 8205 80 ADD 8 Сложить X и Y 8206 E7 RST 7 Прервать выполнение программы Выполнив запись программы, установите начальный адрес и запустите программу. После её исполнения на дисплее установится запись: 8207 DB_ _, показывающая результат вычисления DB по адресу 8207. Для получения разности двух чисел X и Y можно использовать программу PRG 1, заменив в ней по адресу 8205 код команды 80 (ADD B) кодом 90 (SUB В) команды вычитания содержимого регистра В из содержимого аккумулятора, разместив предварительно в регистрах В и А соответственно вычитаемое и уменьшаемое. Разность будет записана в аккумуляторе. 1.4 Сложение массива однобайтных чисел Массив однобайтных шестнадцатеричных чисел, например, 31, АВ, 86, разместите в последовательных адресах памяти, например, 8250, 8251, 8252, 8253. В качестве входных параметров для выполнения программы необходимо иметь адрес первого слагаемого, например, 8250, записанный в регистрах H, L, и число слагаемых - в регистре С. Выходным параметром будет являться сумма, старший байт которой записан в регистре В, а младший байт - в аккумуляторе.
Таблица 1.3 – Программа PRG 2 сложения массива однобайтных чисел Адрес Код команды Метка Мнемоника Комментарий 8200 8201 8202 21 50 82 PRG 2: LXI H,8250 Загрузить в регистры HL, адрес первого слагаемого 8203 8204 0E 04 MVI C, 04 Загрузить в регистр С количество слагаемых 8205 AF XRA A Очистить аккумулятор 8206 47 MOV B, A Очистить регистр В 8207 86 M1: ADD M Прибавить к содержимому аккумулятора число из массива слагаемых 8208 8209 820А D2 0D 82 INC M2 Если переноса нет, то идти на М2 820В 820С 04 B7 INR B ORA A Увеличить содержимое регистра В на I Очистить флаг переноса 820D 23 M2: INX H Указать на следующий адрес слагаемого 820E 0D DCR C Уменьшить содержимое регистра С на I 820F 8210 8211 C2 07 82 INZ Если не все слагаемые, то идти на MI 8212 FF RST 7 Прервать выполнение программы Выполнение программы с именем PRG 2 начинается с команды загрузки регистровой пары HL, 16-битным числом 8250 (адрес первого слагаемого). После выполнения второй команды (адреса 820З, 8204) в регистре С запишется число 4 (число слагаемых). Командами 8205 и 8206 производится обнуление регистров А, В и регистра признаков. Командой 8207 с меткой MI начинается первый цикл этапа суммирования. В результате выполнения этой команды в регистр А заносится первое слагаемое (число 31) по адресу 8250, записанное в регистровой паре HL. Так как переполнения аккумулятора нет, по команде 8208 осуществляется переход на метку М2 (адрес команды 820С), и к содержимому регистровой пары HL прибавляется I. Теперь здесь записан адрес 8251 второго слагаемого. После выполнения команды 820Е число слагаемых (содержимое регистра С) становится равным 3 и по команде 820F осуществляется переход на MI- начало следующего цикла этапа суммирования. Во втором цикле в регистр А записывается сумма DC чисел 31 и АВ, флаг переноса не устанавливается, уменьшается число слагаемых регистра С до 2. В третьем цикле в аккумулятор записывается 62 (младший байт суммы чисел DC и 86) и устанавливается флаг переноса С. По команде 8208 осуществляется переход по адресу 820В и в регистр В записывается I. Содержимое регистровой пары HL равно 8253, содержимое регистра С – I. В четвертом цикле после выполнения команды 8207 в аккумулятор записывается 56, флаг переноса установлен, содержимое регистра В равно 2. По команде 820(Е) содержимое регистра С становится равным 0, и команда 820F передает управление адресу 8212 - конец выполнения программы.
Рефераты по информатикеЦель лабораторной работы - рассмотреть особенности выполнения простейших арифметических операций над целыми числами без знака на микропроцессорных
Оценок: 530 (Средняя 5 из 5)
Специалисты RetsCorp работают в digital-сфере более 7 лет. За это время мы разработали более 500+ успешных проектов. Основываясь на своем опыте и знании рынка, мы с уверенностью можем сказать, что будет работать, а что — нет. Заказывая создание лендинга для бизнеса в нашей студии, вы получаете работающие решения, необходимые именно вашему бизнесу.
Сотрудничая с нами, вы будете не клиентом, а нашим партнером. Благодаря этому мы будем развивать ваш бизнес как собственный. Мы так же как и вы заинтересованы в успехе проекта, поскольку ваша успешность будет нашей рекламой.