Aracılığıyla paylaş


MASM Makroları

Ham Sanal İşlemler öğesinin kullanımını kolaylaştırmak için tipik yordam başlangıç ve sonuçları oluşturmak için kullanılabilen ksamd64.inc öğesinde tanımlanmış bir dizi makro bulunur.

Notlar

Makro

Tanımlama

alloc_stack(n)

n baytlık bir yığın çerçevesi ayırır (alt rsp, n kullanarak) ve uygun bırakma bilgilerini (.allocstack n) gösterir

save_reg reg, loc

Kalıcı kayıt reg dosyasını RSP uzaklık konumu üzerinde yığında kaydeder ve uygun geriye doğru izleme bilgilerini gösterir.(.savereg reg, loc)

push_reg reg

Kalıcı kayıt reg dosyasını yığına gönderir ve uygun geriye doğru izleme bilgilerini gösterir.(.pushreg reg)

rex_push_reg reg

Bir kayıt yığına 2 byte itme kullanarak kaydedin uygun geriye doğru izleme bilgilerini bu kullanılmalıdır İtme işlevi, tamsayı olduğundan emin olmak için ilk yönergenin işlevinde ise (.pushreg reg).

save_xmm128 reg, loc

Kalıcı XMM kayıt reg dosyasını RSP uzaklık konumu üzerinde yığında kaydeder ve uygun geriye doğru izleme bilgilerini gösterir (.savexmm128 reg, loc)

set_frame reg, uzaklık

RSP + uzaklık olacak (bir mov veya lea kullanarak) çerçeve kaydedici kaydını ayarlar ve uygun geriye doğru izleme bilgilerini (.set_frame reg, offset) gösterir.

push_eflags

Eflags öğelerini pushfq yönergesiyle gönderir ve uygun geriye doğru izleme bilgilerini gösterir (.alloc_stack 8)

Aşağıda makroların uygun kullanımıyla birlikte örnek işlev giriş bölümü vardır:

SkFrame struct 
Fill    dq ?; fill to 8 mod 16 
SavedRdi dq ?; saved register RDI 
SavedRsi dq ?; saved register RSI 
SkFrame ends

sampleFrame struct
Filldq?; fill to 8 mod 16
SavedRdidq?; Saved Register RDI 
SavedRsi  dq?; Saved Register RSI
sampleFrame ends

sample2 PROC FRAME
alloc_stack(sizeof sampleFrame)
save_reg rdi, sampleFrame.SavedRdi
save_reg rsi, sampleFrame.SavedRsi
.end_prolog

; function body

mov rsi, sampleFrame.SavedRsi[rsp]
mov rdi, sampleFrame.SavedRdi[rsp]

; Here’s the official epilog

add rsp, (sizeof sampleFrame)
ret
sample2 ENDP

Ayrıca bkz.

Başvuru

MASM için Yardımcıları Bırakma