Читайте также:
|
|
BITADDRESSABLE Определяет сегмент, который будет перемещен L51 внутрь битовой адресуемой области памяти (адреса с 20H по 2FH в резидентной памяти данных). Разрешён только для сегментов DATA, которые по длине не превышают 16 байтов.
INBLOCK Определяет сегмент, который должен содержаться в 2048-байтовом блоке. Этот тип допустим только для сегментов CODE.
INPAGE Определяет сегмент, который должен содержаться в 256-байтовом блоке. Этот тип настройки допустим только для сегментов CODE и XDATA.
OVERLAYABLE Определяет, что сегмент может использовать память совместно с другими сегментами этого же типа. При использовании этого типа настройки имя сегмента должно быть объявлено согласно правилам C51 или PL/M-51.
PAGE Определяет сегмент, чей начальный адрес должен быть в 256-байтовой границе. Размещение сегмента выполняется компоновщиком L51. Этот тип настройки допустим только для сегментов CODE и XDATA.
UNIT Этот тип размещения задан по умолчанию как стандартный тип. Он определяет сегмент, который начинается в границе модуля. Модуль - байт для сегментов CODE, DATA, IDATA и XDATA и бит - для сегмента BIT.
Примечание. Сегментные символы, используемые в выражениях, представляют собой базовый адрес объединенного сегмента, вычисляемый компоновщиком L51.
Для получения дополнительной информации относительно использования сегментов обратитесь к разделу справочной системы ProView “Assembly Programs”.
Пример
STACK SEGMENT IDATA
RSEG STACK;выбор сегмента
DS 10H;резервирование 16 байтов
MOV SP, #STACK – 1;инициализация SP
SET
Описание Директива SET назначает символическое имя числовому значению или регистру. Формат директивы:
symbol SET expression
symbol SET register
где symbol - символическое имя, которое заменяется на выражение или регистр во всей ассемблерной программе,
expression - числовое выражение, не содержащее форвардных ссылок,
register - одно из следующих имен регистра: A, R0-R7.
Символические имена, определенные директивой, могут использоваться в операндах, выражениях или адресах. Символы, которые определены как имя регистра, могут использоваться во всех командах, работающих с регистрами. Имена, определенные директивой, могут быть изменены последующими директивами SET.
Пример
VALUE SET 100
VALUE SET VALUE / 2
COUNTER SET R1
TEMP SET COUNTER
TEMP SET VALUE * VALUE
XDATA
Описание Директива XDATA назначает символическое имя адресу внешней памяти данных. Формат директивы:
symbol XDATA address
где symbol - символическое имя, которое может использоваться во всей программе,
address - адрес внешней памяти данных, должен находиться в диапазоне от 0 до 65535.
Символические имена, определенные этой директивой, не могут быть изменены или переопределены.
Пример
RSEG XSEG1
ORG 100H
DTIM: DS 6;резервирует 6 байтов для DTIM
TIME XDATA DTIM + 0
DATE XDATA DTIM + 3
Дата добавления: 2014-12-19; просмотров: 122 | Поможем написать вашу работу | Нарушение авторских прав |