воскресенье, 1 февраля 2009 г.

Косвенная адресация данных

Косвенная адресация подразумевает, что указатель на аргумент размещен не явно в аргументе, а в регистре-указателе. В базовой серии, а также в среднем подсемействе микроконтроллеров Р1С этот регистр называется FSR (File Select Register — регистр выбора файла). Команды с косвенной адресацией не требуют аргумента, поскольку он загружается заранее в FSR.

Без косвенной адресации микроконтроллер немыслим. Поскольку код операции имеет ограниченный размер, в PIC применили следующий трюк: команды для косвенной адресации имеют такой же код операции, что и команды для прямой адресации. Указание на то, что речь идет о косвенной адресации, содержится в аргументе.

Это означает, что должен задаваться какой-то особенный аргумент, который не является "правильным" аргументом данных. В базовой серии и среднем подсемействе микроконтроллеров Р1С это — адрес 0, следовательно, с таким адресом не может быть задан физический файловый регистр. Таким образом, файловый регистр с адресом 0, — это символический регистр, который в ассемблере обозначается именем INDF (косвенный файловый регистр).

Кроме того, в языке ассемблера нет никакого дополнительного кода операции для косвенной адресации, например:
ADDWF INDF.W
В старшем подсемействе микроконтроллеров PIC присутствует три регистра FSR, что повышает удобство программирования. Более подробно об этом сказано в главе "PIC18".

Комментариев нет:

Отправить комментарий