proje Bu site hepsiprje team tarafindan hazirlanmmistir. Sitede yer alan programlama dersleri cesitli sitelerden edinilen bilgiler neticesinde olusturulmustur. Bu site bir derlemedir. Site ile ilgili anahtar kelimeler: assembly, assembler, assembly programlama dili, assembly dersleri

 

9th
JUN

Assembler

Posted by admin under assembler

Assembler

Çevirici (Assembler)

Tipik olarak bir modern çevirici assembly (çeviri) komut “mnemonic”leri operasyon kodlarına “opcodes” çevirerek (tercüme ederek), ve hafıza mahalleri (memory locations) ve diğer varlıklar için sembolik isimler belirleyerek “object code” unu oluşturur. Sembolik referansların kullanılması, program modifikasyonlarından sonra bıktırıcı hesaplamaları ve elle yapılan adres güncelleştirmelerini kaydettiğinden çeviricilerin en önemli (kilit) özelliğidir. Çeviricilerin çoğu metinsel ikameyi (yerine koymayı) yerine getirmek için – örneğin, bir alt rutin (subroutine) yerine “inline” olarak çalışacak komutların ortak kısa serilerini üretmek için- makro imkanları da içerirler.

Çeviriciler genellikle yüksek seviyeli dilleri yazma konusunda derleyicilerden (compilers) daha basittir, ve 1950’li yıllardan beri kullanılmaktadır. (Bilgisayarların ilk günlerindeki ilk çeviriciler yorgun programcıların bir jenerasyonu için önemli bir keşifti.) Modern çeviriciler, bilhassa MIPS, Sun SPARC ve HP PA-RISC gibi RISC’e dayalı mimariler CPU “pipeline” verimliliğini sağlamaya yönelik komutu (instruction) optimize ederler.

MIPS (originally an acronym for Microprocessor without Interlocked Pipeline Stages)

mips

A MIPS R4400 microprocessor made by Toshiba.


Daha sofistike (karmaşık) olan Yüksek Seviyeli çeviriciler aşağıda belirtilenler gibi dil özetlerini (abstractions) sağlarlar:

• Yüksek kontrol yapıları

• Yüksek seviyeli prosedür fonksiyon deklarasyonları ve talepleri

• Yapılar/kayıtlar, birlikler, sınıflar ve takımlar dahil yüksek seviyeli özet veri türleri

• Sofistike makro işleme

Normal profesyonel kullanımda çevirici teriminin sıklıkla farklı anlamlarda kullanıldığına dikkatinizi çekeriz; sıklıkla çevirici yararından ziyade bir çeviri dilinin kendisine atfen kullanılır. Böylece “ASM-H çok kullanılan bir S/370 çevirici olmuştur” ifadesine karşı “CP/CMS S/360 çeviricide yazılmıştır” ifadesi kullanılır.

Assembly dilinde yazılan bir program pek çok yerine getirilebilir komutlara (emirlere) tekabül eden komut “mnemonic”lerin (sembollerin) bir serisinden oluşur; bir çevirici tarafından tercüme edildiğinde bunlar hafızaya yüklenebilir ve yerine getirebilirler.

Örneğin; bir x86/IA-32 işlemci makine dilinde ifade edilmiş olan aşağıdaki ikili (binary) komutu yerine getirebilir:

• Binary (ikili) : 10110000 01100001 (Altı haneli ondalık: 0xb061)

Muadil assembly dilinin sunumu daha kolay hatırlanır (daha fazla “mnemonic” tir ):

• Mov al. 061h

Bu komut şunu ifade eder:

• 61 (97 ondalık) altı haneli değeri “al” adı verilen işlemci kaydedicisinin içine naklediniz

“mov” sembolü (mnemonic) bir operasyon kodu veya “opcode” olup, “move” (taşı) sözcüğünü kısaltmak için komut set tasarımcısı tarafından seçilmiştir. Virgülle ayrılmış argümanların veya parametlerin bir listesi “opcode”u izler; bu tipik bir assembly dil ifadesidir.

Assembly dilinin makine diline dönüştürülmesi bir çevirici tarafından gerçekleştirilir, ve bunun tersi olan işlem bir demonte edici (disassembler) tarafından yapılır. Yüksek seviyeli dillerin aksine basit assembly ifadeleri ile makine dil komutları arasında genellikle 1-10-1 ilişki bulunur. Ancak, bazı hallerde bir çevirici ortak ihtiyaç duyulan işlevselliği sağlayacak olan çeşitli makine dili komutlarına yayılan pseudoinstructions (yapma emirler) sağlayabilir. Örneğin, bir “büyük veya eşit ise dallandır” emrine sahip olmayan bir makine için bir çevirici makinenin “eğer küçük ise kur” (set if less than) ve “eğer sıfır ise dallandır (kurulan emrin neticesinde)” ifadelerine kadar uzanan bir “yapma emri” bir çevirici verebilir. Tam yetenekli çeviricilerin pek çoğu ayrıca daha karmaşık kod ve veri dizisini üretmek amacıyla satıcılar ve programcılar tarafından kullanılan zengin bir makro dili (aşağıda tartışılmıştır) de sağlarlar.

Her bilgisayar mimarisi kendine özgü makine diline sahiptir, ve dolayısıyla kendisine ait bir çevirme dili vardır. Bilgisayarlar destekledikleri işlemlerin sayısına ve tipine göre birbirlerinden farklıdırlar. Bilgisayarlar aynı zamanda farklı ebat ve sayıda kayıt ünitelerine, ve hafızada veri tiplerinin farklı örneklerine sahip olabilirler. Pek çok genel amaçlı bilgisayarlar esas itibariyle aynı işlevselliği sürdürürlerken, bu işlevlerin yapılış tarzı farklıdır; benzer çevirme dilleri bu farklılıkları yansıtır.

“Mnemonics” (sembollerin) veya assembly dil sentakslarının çoklu takımları tek bir emir (komut) takımı için hazır olabilir, tipik olarak farklı çevirici programlarında. Bu gibi durumlarda en popüler olan genellikle üretici tarafından temin edilen ve dokümantasyonunda kullanılandır.

kaynak: wikipedia

Reader's Comments

  1. Iso 22000 |

    Bu kadar güzel bilgileri paylaştığınız için çok teşekkür ederim

Leave a Reply