В главе 12 «Система команд 8051», где рассматриваются различные способы адресации, указано, что при программировании на языке ассемблера возможные различные варианты указания адреса перехода с помощью команды «jump»: короткий («small»), внутристраничный («page») и длинный («long»). При написании ассемблерных программ для 8051 необходимо учитывать особенности архитектуры микроконтроллера и следовать определенным рекомендациям, которые сформулированы ниже.
При сбросе микроконтроллер начинает выполнять команды с нулевого
адреса, где располагается 8-байтный обработчик прерывания. Поэтому пер
вая команда этого обработчика должна реализовать переход к основной
программе
Желательно, чтобы программа работала с одним 8-байтовым банком ре
гистров. Это сократит объем программы и ускорит ее выполнение.
Часто используемые переменные следует размещать в первых 256 байтах
памяти, что также сократит объем и ускорит выполнение программы.
Желательно, чтобы обработчик прерывания имел объем не более 8 байт,
чтобы его можно было разместить в соответствующем окне.
При выполнении программ, которые контролируют время выполнения,
прерывания должны быть запрещены. Например, прерывание, поступаю
щее в промежутке между записью кодов 55h/AAh может вызвать срабаты
вание сторожевого таймера.
При использовании непосредственной адресации не забывайте ставить
перед константой символ «#». Иначе константа будет интерпретироваться
как адрес одного из первых 256 байт памяти.