Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции / Курс лекций по микропроцессорам 1999.DOC
Скачиваний:
197
Добавлен:
21.02.2014
Размер:
3.02 Mб
Скачать

Особенности программирования на ассемблере.

Качество программ, написанных на ассемблере, определяется временем её выполнения, требуемым объемом памяти и возможностью модификации программы. Минимизация времени выполнения и объема памяти во многом зависит от правильного использования операционных возможностей МП: выбора регистров, рационального использования форматов команд и данных, способов адресации и так далее.

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

Аккумулятор (А) является центральным регистром обработки восьмиразрядных данных. Для большинства арифметических и логических команд он служит источником одного из операндов и приемником результата. Через А осуществляется обмен данными с устройствами ввода-вывода (УВВ). Только с данными, помещенными в А можно выполнять операции сдвига, обработку двоично-десятичных чисел и так далее. Аккумулятор обладает максимальными возможностями по обмену информацией с памятью, УВВ, регистрами, поэтому не рекомендуется его занимать для решения частных задач.

Регистровая пара rp HL является основным регистром косвенной адресации (обращение к М ). Это единственная регистровая пара, которая может обмениваться информацией с памятью , используя прямую адресацию. Именно она выполняет функции аккумулятора при сложении 16-разрядных чисел, через неё можно реализовать обмен со стеком, изменить содержание счетчика команд. Регистровая параHLиспользуется в основном в процедурах обработки адресной информации.

Регистровая пара rp DEпредставляет собой дополнительный регистр адреса, так как командойXCHG возможен обмен данными сrp HL.

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

rp BC можно использовать как регистр косвенной адресации.

При использовании регистровых пар в качестве регистров косвенной адресации необходимо помнить, что rp HL является более универсальным средством управления обменом, так как применяется во многих командах ( MOV M,R, ADD M, SUB M, ANA Mи так далее). Остальные регистровые пары осуществляют обмен только через аккумулятор.

Недостаточное количество регистров обычно компенсируется за счет использования ячеек памяти, за которыми закрепляются определенные функции. Однако это увеличивает количество пересылок и мобильность программ, так как приходится применять прямые способы адресации. Для хранения массивов более целесообразно использовать стек.

При организации циклов следует использовать операции DCR r, DCR M и команды JZ, JNZ ,так как в командах инкремента не формируется бит переноса С. Команды декремента/инкремента регистровых пар вообще не формируют признаки результата.

При работе с 16-разрядными данными следует использовать команды, предназначенные для этих целей: LHLD, SHLD, LXI rp, INX, DCX, DAD, POP, PUSH, XCHG, XTHL, PCHL, SPHL .

Минимизировать среднее время выполнение программ можно рациональным выбором последовательности условных переходов. В первую очередь необходимо проверять условия наиболее вероятные , во вторую – наименее вероятные. Например, проверка результата на знак (р=0,5) должна стоять перед проверкой на 0.

Некоторые операции, отсутствующие в списке команд МП, могут быть выполнены за счет применения однобайтовых команд: очистка А (SUB A, XRA A), логический сдвиг аккумулятора влево (ADD A), логический левый сдвиг двухбайтового числа (DAD H), очистка флага переноса (ORA A, ANA A)и так далее.

При реализации повышенного быстродействия следует использовать линейную последовательность команд вместо подпрограммы.

Применение подпрограмм позволяет сократить объём программ.

При выборе альтернативных команд необходимо обращать внимание на количество тактов , требующихся для их исполнения.Время выполнения однобайтовой команды может быть больше, чем многобайтовой. Например, LXI H-10 тактов, XTHL – 18 тактов.

Соседние файлы в папке лекции