Flat Assembler 1.64. Мануал программера | страница 17
«>restore
» позволяет присвоить назад предыдущее значение переопределенной константы. За ней должно следовать одно или больше имен символьных констант, разделенных запятыми. Так, «>restore d
» после предыдущего переопределения вернет константе значение «>edx
», следующее применение этой директивы вернет ей значение «>dword
», а ещё одно применение восстановит первоначальное значение, как будто такая константа не определялась. Если не константа с заданным именем не определена, то «>restore
» не вызовет ошибку, а будет просто проигнорирована.
Символьные константы могут использоваться для адаптации синтаксиса ассемблера к персональным предпочтениям. Например, следующие определения создают удобные ярлыки для всех операторов размера:
>b equ byte
>w equ word
>d equ dword
>p equ pword
>f equ fword
>q equ qword
>t equ tword
>x equ dqword
Так как символьная константа может так же иметь пустое значение, она может использоваться для того, чтобы допустить синтаксис со словом «>offset
» перед каким-нибудь значением адреса:
>offset equ
После такого определения «>mov ax, offset char
» будет правильной конструкцией, которая будет копировать смещение переменной «>char
» в регистр «>ax
», так как «>offset
» заменяется пустым значением, и поэтому игнорируется.
Символьные константы могут также быть определены директивой «>fix
», которая имеет такой же синтаксис, как «>equ
», но определяет константы высшего приоритета — они заменяются их символическим значением даже перед совершением директив препроцессора и макроинструкций. Исключением является сама директива «>fix
», которая имеет наивысший возможный приоритет, и поэтому допускает переопределение констант, заданных таким путем. Но если такие константы высшего приоритета находятся внутри значения, следующего за директивой «>fix
», они заменяются их значениями перед присвоением этого значения новой константе.
Директива «>fix
» может использоваться для адаптирования директив препроцессора, что нельзя сделать директивой «>equ
». Например:
>incl fix include
определяет короткое имя для директивы «>include
», тогда как такое же определение директивой «>equ
» не даст такого результата, так как стандартные символьные константы заменяются на из значения после поиска строк с директивами препроцессора.
2.3.3 Макроинструкции
«>macro
» позволяет вам определить собственный комплекс инструкций, называемых макроинструкциями. Их использование может существенно упростить процесс программирования. В своей простейшей форме директива похожа на описание символьной константы. Например, следующая строка определяет ярлык для инструкции «