GCC Satıriçi Sembolik Makina Dili için aşağıda gösterilen özel "asm" yapısını
      kullanır:
    
      GCC'nin "asm" yapısı
    
    asm (
        assembler şablonu
        : çıktı terimleri                         (isteğe bağlı)
        : girdi terimleri                         (isteğe bağlı)
        : geri dönen yazmaçlar                    (isteğe bağlı)
        );
      Bu örnekte sembolik makina dili şablonu sembolik makina dili komutlarından
      ibarettir. Girdi terimleri, girdi terimleri gibi çalışan C deyimleridir.
      Çıktı terimleri sembolik makina dili komutlarının çıktılarının uygulanacağı
      C deyimleridir.
    
      Satıriçi Sembolik Makina Dili yönetim yeteneği ve çıktılarını C değişkenleri
      ile görülebilir kılması ile birinci dereceden önem kazanır. Yeteneği sayesinde
      "asm" sembolik makina dili komutları ile onları içeren C programı arasında
      bir arayüz niteliğindedir.
    
      Aralarındaki temel ve önemli fark Temel Satıriçi Sembolik Makina Dili komutlardan,
      İleri Sembolik Makina Dili terimlerden ibarettir. Örneklendirme için aşağıdaki
      örneğe bakın:
    
- Örnek 10.1. Satıriçi Sembolik Makina Dili temel yapısı
- 
{
        int a=10, b;
        asm ("movl %1, %%eax;
              movl %%eax, %0;"
                :"=r"(b)        /* çıktı */
                :"r"(a)         /* girdi */
                :"%eax");       /* geri dönen yazmaç */
}
- 
      Örneğimizde Sembolik Makina Dili komutları ile b'nin değerini
      a'ya eşitledik. Aşağıdaki noktaları not edin.
       - 
            b çıktı terimidir, %0 ile
            gösterilmiştir ve a girdi terimidir,
            %1 işe gösterilmiştir.
           
- 
            r, a ve b'nin
            yazmaçlarda kalmasını sağlayan belirteçtir. Şu unutulmamalıdır ki çıktı
            teriminin belirtecinin her zaman = ile çıktı terimi
            olduğu belirtilmelidir.
           
- 
            "asm" yapısı içinde %eax yazmacını kullanmak için bir
            tane daha % kullanılmalıdır, diğer bir deyişle
            %%eax, "asm" %0 %1 vb. değişkenleri
            tanımlamak için kullanır. Tek %'li herşey girdi/çıktı
            terimi olarak muamele görür.
           
- 
            Geri dönen yazmaç, %eax, üçüncü iki noktanın sonunda
            GCC'ye %eax'in "asm" içinde değiştirildiğini söyler,
            bundan dolayı GCC diğer değerleri tutmak için %eax'i
            kullanmayacaktır.
           
- 
            movl %1, %%eax, a'nın değerini
            %eax'e taşır ve movl %%eax,%0,
            %eax'in değerini b'ye taşır.
           
- 
            "asm" yapısının çalıştırılması bitince b çıktı terimi,
            güncellenmiş değeri yansıtacaktır. Yani b'nin "asm"
            içindeki değişikliklerinin "asm" dışına da yansıması beklenir.
           
 
      Şimdi bu maddeleri biraz daha ayrıntılı olarak inceleyelim.