BANKISEL — генерация кода выбора банка RAM для косвенной адресации
bankisel <label>
Используется при создании объектного модуля. Эта директива представляет собой указание линкеру для генерации кода выбора соответствующего банка при косвенной адресации адреса назначенного <label>. Только одна метка <label> должна быть указана, над ней не должно выполняться никаких операций и она должна быть предварительно определена.
Линкер сгенерирует код выбора соответствующего банка. Для устройств с14-битным ядром будет сгенерирована инструкция установки/сброса соответствующего бита RP в регистре STATUS. Для устройств с 16-битным ядром будет сгенерировано MOVLB или MOVLR. Если косвенный адрес полностью определен без этих инструкций не будет генерироваться никакого кода. For more information, refer to Chapter 4, “Using MPASM to Create Relocatable Objects.”
Example
movlw Var1
movwf FSR
bankisel Var1
…
movwf INDF
See Also PAGESEL BANKSEL
BANKSEL – генерация кода выбора банка RAM
banksel <label>
Используется при создании объектного модуля. Эта директива представляет собой указание линкеру для генерации кода выбора банка для установки банка, в котором находится адрес на который указывает <label>. Только одна метка <label> должна быть указана, над ней не должно выполняться никаких операций и она должна быть предварительно определена.
Линкер сгенерирует код выбора соответствующего банка. Для устройств с12-битным ядром будет сгенерирована инструкция установки/сброса соответствующего бита в регистре FSR. Для устройств с14-битным ядром будет сгенерирована инструкция установки/сброса соответствующего бита RP в регистре STATUS. Для устройств с 16-битным ядром будет сгенерировано MOVLB или MOVLR. Если устройство содержит только один банк RAM, не будет генерироваться никакого кода. For more information, refer to Chapter 4, “Using MPASM to Create Relocatable Objects.”
Example
banksel Var1
movwf Var1
See Also PAGESEL BANKISEL
CBLOCK — определить группу констант
cblock [<expr>] <label> [:<increment>][,<label>[:<increment>]]
endc
Определяет список поименованных констант. Каждой метке <label> присваивается значение на единицу больше чем предыдущей. Эта директива служит для назначения смещения относительно начального адреса нескольким меткам. Список меток заканчивается, когда встречается директива ENDC. <expr> указывает стартовое значение для первой метки в блоке. Если <expr> не указано, первая метка будет иметь значение на единицу больше чем последняя метка в предшествовавшей директиве CBLOCK. Если первая директива CBLOCK не имеет <expr>, присваивается начальное значение нуль. Если значение <increment> определено, следующей метке <label> присваивается значение на <increment> больше чем предыдущей. Несколько имен, разделенных запятыми,