3.2. Директива RESTORE
Можно заставить препроцессор прекратить заменять идентификаторы, определённые директивой EQU. Это делает директива RESTORE.
Синтаксис:
restore name1
name1 — это идентификатор определённый ранее в директиве EQU. После этой команды name больше не будет заменяться на name2.
Например:
mov eax, count
count equ 10
mov eax, count
restore count
mov eax, count
получим:
mov eax, count
mov eax, 10
mov eax, count
Обратите внимание, что для определений сделанных директивой EQU работает принцип стека. То есть, если мы два раза определим один и тот же идентификатор используя EQU, то после однократного использования RESTORE значение идентификатора будет соответствовать определённому первой директивой EQU.
Например:
mov eax, count
count equ 1
mov eax, count
count equ 2
mov eax, count
count equ 3
mov eax, count
restore count
mov eax, count
restore count
mov eax,count
restore count
mov eax,count
получим:
mov eax, count
mov eax, 1
mov eax, 2
mov eax, 3
mov eax, 2
mov eax, 1
mov eax, count
Если попытаться выполнить RESTORE большее количество раз, чем было сделано EQU, никаких предупреждений выдано не будет. Значение идентификатора будет неопределенно.
Например:
mov eax, count
restore count
mov eax, count
получим:
mov eax, count
mov eax, count
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОК