'da sabit bir sayıyı değiştiriyor X86 GNU Düzenlemede bu makroda neyin yanlış değil? Bağlantı sırasında S sembolünün tanımsız olduğunu söylüyor.Makro GAS
.macro S size=40
\size
.endm
Ben
mov %eax, S
'da sabit bir sayıyı değiştiriyor X86 GNU Düzenlemede bu makroda neyin yanlış değil? Bağlantı sırasında S sembolünün tanımsız olduğunu söylüyor.Makro GAS
.macro S size=40
\size
.endm
Ben
mov %eax, S
makrolar gibi kullanıyorum o değil girişine sabit bir sayı sık kullandığınız kod şablonları oluşturmak için kullanılır. Bu nedenle, assembler'ın bir ifade içinde makro açılımı yaptığına inanmıyorum. Sadece bir sayı istediğinizden, bir sabit tanımlamak için .set
'u kullanabilirsiniz.
.set S, 40
mov %eax, S
Ayrıca, eğer genellikle intel sözdizimini kullanın bu kod ne yaptığını fark emin olun: Şu anda adres 0x28 bellekte eax değerini saklar. Eğer eax'a sayısını 40 koymak istiyorsanız, işlenen tersine çevirmek ve, Cevabınız oldukça yararlı ve kapsamlı S.
mov $S, %eax
önünde sayesinde dolar işareti kullanmak gerekir! –