86-64 aramalar UNIX için arama kuralları nelerdir | Netgez.com
SORU
29 Mart 2010, PAZARTESÄ°


86-64 aramalar UNIX için arama kuralları nelerdir

Açıklar 86-32 UNIX (BSD lezzet) & Linux sistem çağrısı kuralları her ikisi de:

Ne sistem hem UNİX & Linux üzerinde x 86-64 kurallarına diyorsun?

CEVAP
29 Mart 2010, PAZARTESÄ°


Linux üzerinde bu kullanarak GNU Çevirici (gaz) doğrulandı.

Çekirdek Arayüz

86-32 Linux Sistem Çağrısı Kongre:

Linux sistem çaÄŸrısı için 86-32 parametre olarak geçirilir kullanarak kaydeder. Syscall_number �x, �êx x, �x, %, �ben, �p esı sistem çaÄŸrıları için 6 parametreleri iletmek için kullanılır.

Linux Assembly Tutorial dan parçacığını aşağıdaki çektim ama bu konuda şüpheliyim. Eğer herhangi bir örnek gösterebilir, çok iyi olurdu.

EÄŸer altı ya da daha fazla bağımsız deÄŸiÅŸken varsa, ëx bellek içermelidir konumu argümanlar listesi saklanır ama bu konuda merak etme kullanmanız pek olası deÄŸil çünkü altı yıldan fazla bir sistem çaÄŸrısı argümanlar.

Bir örnek ve biraz daha okuma http://www.int80h.org/bsdasm/#alternate-calling-convention bölümünde bulabilirsiniz

86-32 [Özgür|Açık|Net|FreeBSD]UNİX Sistem Çağrısı Kongre BSD:

Parametreleri yığına geçirilir. Parametreleri (son parametre ilk itti) yığın itme. Sonra kukla veri (aslında kukla verileri. 32-bit bir ek itme daha fazla bilgi için aşağıdaki bağlantıya bakınız) ve daha sonra sistem çağrısı bir talimat int $0x80 ver

http://www.int80h.org/bsdasm/#default-calling-convention

86-64 & *BSD Sistem Çağrısı sözleşmesi Linux:

Bölümüne bakın: "2 AMD64 A. Linux Çekirdeği Kuralları" System V Application Binary Interface AMD64 Architecture Processor Supplement

İşte bu bölümde parçacığı:

  1. Kullanıcı düzeyinde uygulamaları geçirilmesi için tamsayı kayıtları olarak kullanın , %sırası %rdı rsı, %rdx, %rcx, %r8 ve %r9.Çekirdek arayüzü, %r10, %r8 ve %r9 rdx %rdı, %, %rsı kullanır.
  2. Bir sistem çağrısı ile yapılırsistem çağrısı talimat. Çekirdek kayıtları %rcx ve %r11 yok eder.
  3. Sistem çağrısını sayısı rax %siciline geçirilmiş değil.
  4. Sistem çağrıları altı bağımsız değişkenleri ile sınırlıdır, hiçbir tartışma geçti. doğrudan yığın.
  5. Sistem çağrısını dönen, kayıt %rax sonucunu içerir sistem çağrısı. Bir değer -4095 ve -1 arasındaki aralığı gösterir bir hata, -errno.
  6. Sınıf TAMSAYI veya sınıf HAFIZA değerleri çekirdek geçirilir.

Kullanıcı Arabirimi

86-32 Çağırma Fonksiyonu

86-32 parametre yığını geçirildi. Son parametre yığını tüm parametreleri yapılır kadar ilk itildi ve call öğretim idam edildi. Bu Linux üzerinde (C kütüphanesi) C kütüphane fonksiyonları derleme çağırmak için kullanılır.

86-64 Çağırma Fonksiyonu

Çünkü çok genel amacımız var sebebi kaydeder ve işlev çağırma mekanizması değişti yüksek genişliği diğer kayıtları sanırım. Buyenimekanizması. İlk parametre sınıfa ayrılır. Her parametrenin sınıf hangi çağrılan işlev geçirilir şeklini belirler.

Tam bilgi için bakınız : "3.2 İşlev Sırası hangi bölümü okur" System V Application Binary Interface AMD64 Architecture Processor Supplement,: çağırıyorum

Bağımsız sınıflandırılır sonra, kayıtları atandığını ( geçen soldan sağa sipariş) şöyle:

  1. Eğer sınıfı BELLEK, tartışmadan yığın geçirir.
  2. Eğer sınıf bir TAMSAYI değilse, bir sonraki kullanılabilir kayıt sıra %rdı, %rsı, %, %rdx rcx, r8 ve %r9 kullanılır

%rdi, %rsi, %rdx, %rcx, %r8 and %r9 kaydedersıraylaKurul, herhangi bir kütüphanenin işlev parametreleri geçirmek için kullanılır. %rdı ilk parametre için kullanılır. 2, %rdx 3 ve %rsı. Sonra call talimat verilmelidir.

Eğer parametreleri 6 Daha sonra 7. Eğer parametre itibaren yığında geçirilir.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • Dirty Loops

    Dirty Loops

    21 Mayıs 2007
  • theavettbrothers

    theavettbrot

    9 ÅžUBAT 2007
  • Willie D.

    Willie D.

    16 Aralık 2006