2.4. ПОСТРОЕНИЕ УСТРОЙСТВА В ВИДЕ МИКРОПРОЦЕССОРНОГО ВЫЧИСЛИТЕЛЯ НА БИС КР580ВМ80 (Intel 8080A)
Микропроцессорный вычислитель имеет стандартную структуру. Поэтому его схему строить не надо. Единственной задачей остается создание программируемого контроллера интерфейса, обеспечивающего подключение к вычислителю источника и потребителя информации, управляющей программы обмена контроллера, называемой драйвером, и обрабатывающей программы.
В отличие от рассмотренных ранее вариантов построения преобразователя в виде самостоятельного устройства для микропроцессорного варианта подсчет числа единиц кода осуществляется с помощью обрабатывающей программы. Поэтому ее написание и отладка является важным этапом в построении устройства, включающем следующие шаги:
1) разработку обрабатывающего алгоритма;
2) составление программы на языке ассемблера;
3) отладку и выполнение программы.
Третий шаг требует дополнительных пояснений. Отладку и выполнение программы можно осуществить либо на микро ЭВМ и персональных ЭВМ, имеющих транслятор с языка ассемблера КР580ВМ80 или языков ассемблеров, включающих его как подмножество, либо на лабораторной микроЭВМ "Микролаб". В последнем случае необходимо выполнить ручное ассемблирование программы.
При составлении алгоритма необходимо учитывать, что микропроцессорный вычислитель имеет байтовую организацию памяти и 8-разрядную шину данных. Обобщим исходную задачу, положив, что входной код, число единиц которого подсчитывается после размещения его в памяти, занимает массив из n байтов.
Схема алгоритма изображена на рис. 2.15. Алгоритм включает в себя два цикла: подсчет числа единиц в текущем байте и накопление единиц при просмотре всех байтов. Входной код размещается в массиве БАЙТ_ДАННЫХ. Положение текущего байта в массиве определяется счетчиком байтов СЧ_БАЙТ. Положение текущего бита этого байта, предварительно помещенного в аккумулятор, определяется СЧ_БИТ.
Программа, реализованная по данному алгоритму, представлена на рис. 2.16. Просмотр битов текущего байта осуществляется путем сдвига аккумулятора, при этом анализируемый бит кода формирует значение признака переноса С. Окончание просмотра осуществляется по нулевому содержимому счетчика битов, расположенного в регистре В. Просмотр байтов кода завершается, когда обнуляется счетчик байтов, расположенный в регистре С. Программа загружается в ОЗУ по адресу 8000.