Windows'da x64 montajını 'eğlence' için öğreniyorum. MSDN documentation for the x64 calling convention on Windows diyor ki:Win64 ABI'de, genel amaçlı depolama için ayrılmış bağımsız değişken yığını kullanılabilir mi?
arayan aranan uca parametreler için alan tahsis sorumludur ve her zaman Aranan birçok parametreye sahip olmasa bile, 4 kayıt parametreleri için yeterli alan ayırmak gerekir. Bu, C unprototyped işlevlerin desteklenmesi ve C/C++ işlevlerinin vararg'ının basitleştirilmesine yardımcı olur. Benim fonksiyonları C/C++ fonksiyonlar C unprototyped fonksiyonlar olmayan veya varargs gibi
, hep işlev içinde genel amaçlı depolama için (sağ bir çağrıdan sonra rsp
değiştirilmemiş bir değer varsayarak) [rsp+32]
için [rsp+8]
kullanabilirsiniz bu ne anlama geliyor Yerel değişkenler gibi mi?
Teşekkür karışık eski okul döküm için üzgünüm. Bununla birlikte, gelen parametrelerin değiştirilmesi, argümanın "rcx" ile aktarılmasından ziyade "rv rcx, anyvalue" olacaktır, bu yüzden [rsp + 8] 'den emin değildim. – Trillian
Ancak, gelen parametrelere de izin verebilirsiniz. Her şeyden önce ayrılmış alan var. void somefunction (int arg1) {/ * dökülme: mov [rsp + 8], rcx */arg1 = herhangi bir değer;/* mov [rsp + 8], herhangi bir değer * /} ' –