Script - Страница 61

МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА 8051 - Script

В идеальном случае прикладная программа для 8051 должна выполнять все арифметические операции с использованием текущего 8-байтового регистрового банка и аккумулятора. Хранение всех переменных в одном банке позволяет получить самый компактный и быстрый код. Если же программа будет перемещать данные из одного банка в другой, то ее эффективность резко снижается. Например:

VarA = VarB + С ; Переменные «VarA» и «VarB» не содержатся в ; аккумуляторе или регистре В.

Если все три переменные находятся в текущем банке, то код будет выглядеть так:

mov A, VarB add А, С mov VarA, A

1 байт/12 тактов 1 байт/12 тактов 1 байт/12 тактов

Если же переменные «VarA», «VarB» и «С» размещены не в текущем банке, а находятся в первых 256 байтах памяти, то придется использовать прямую адресацию в каждой из трех команд. При этом программа потребует, по крайней мере, в два раза больше памяти и в два раза больше тактов для своего выполнения.

В случае, когда переменные «VarA», «VarB» и «С» располагаются в произвольном месте 64-Кбайтной памяти, лучший код, который можно быть написан, выглядит так:

Go to Top