Поделиться через


.PUSHREG

UWOP_PUSH_NONVOL Создает запись кода очистки для указанного регистра с помощью текущего смещения в прологе.

Синтаксис

.PUSHREG register

Замечания

. PUSHREG позволяет ml64.exe пользователям указывать способ очистки функции кадра и допускается только в прологе, который расширяется от объявления PROC FRAME к прологу . Директива ENDPROLOG . Эти директивы не создают код; они создаются .xdata только и .pdata. . PushREG должен предшествовать инструкциям, которые фактически реализуют действия, которые должны быть размножены. Рекомендуется упаковать как директивы очистки, так и код, которые они предназначены для очистки макроса для обеспечения соглашения.

регистрация может быть одной из следующих:
RAX | RCX | RDX | RBX | RDI | RSI | RBP | R8 | R9 | R10 | R11 | R12 | R13 | R14 | R15.

Дополнительные сведения см. в статье MASM для x64 (ml64.exe).

Пример

Description

В следующем примере показано, как отправлять ненезависимые регистры.

Код

; ml64 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
   push r10
.pushreg r10
   push r15
.pushreg r15
   push rbx
.pushreg rbx
   push rsi
.pushreg rsi
.endprolog
   ; rest of function ...
   ret
Example1 ENDP
_text ENDS
END

См. также

Справочник по директивам
Грамматика MASM BNF