Olarak bilgisayar biliminin , bir makina talimat bir olduğu bir temel işlemdir işlemci gerçekleştirme yeteneğine sahiptir. Bu, bir bilgisayarın anlayabileceği en temel düzendir. Bir dizi makine talimatı , bir işlemci tarafından doğrudan çalıştırılabilen herhangi bir bilgisayar programının yazıldığı bir dil olan makine dilini oluşturur .
Bir işlemcinin desteklediği makine talimatları koleksiyonu onun komut kümesidir . Makine talimatları ikili kodlanmıştır . " İşlem kodu " veya " işlem kodu " olarak adlandırılan eğitim alanı, gerçekleştirilecek işlem anlamına gelir. Talimatın sayısal değeri insanlar için anlamsız olduğundan, programcı bu işlemci için montaj dili tarafından sağlanan işlem kodunu belirten bir kısaltma kullanır .
Bir komutun boyutu platformun mimarisine bağlıdır, ancak genellikle 4 ile 64 bit arasındadır . Bir assembly dilinin sembolik gösterimindeki bir x86 talimatı örneği :
SHL AX, 01Biz diyoruz SHL bir operatör ve AX , 01 arasında işlenen . AX , bir işlemci kaydının adıdır , 01 bir sabittir. Bu örnekte, SHL , " sola kaydırma " için anımsatıcı bir kısaltmadır . Komut, AX yazmacında saklanan değerin bir bit sola kaydırılmasına neden olur .
Bir mikrodenetleyicinin gerçekleştirebileceği talimatlar birkaç gruba ayrılabilir.
Bir işlemci, zamanının büyük bir kısmını baytları sistemdeki bir konumdan diğerine aktararak geçirir: bir bilgisayar cihazından bir işlemci yazmacına veya tam tersi, bir kayıttan RAM'e veya tam tersi. Bazen, bir bileşenden diğerine doğrudan bir aktarım gerçekleştirmek mümkün değildir: bu durumda, bilgilerin dahili kayıtlardan birinden geçirilmesi gerekir. Bazı istisnalar dışında, orijinal bellek yuvası bilgilerini sakladığından (bunun yerine başka bir şey yazmadığımız sürece) bunun bir transferden çok bir kopya olduğunu unutmayın.
En basit işlemciler yalnızca toplama ve çıkarma, hatta bir kelimenin boyutundaki tam sayılar üzerinde çarpma ve bölme işlemlerini gerçekleştirmenize izin verir. Bu özellikle mikrodenetleyicilerde geçerlidir . Bununla birlikte, modern işlemciler genellikle nokta numaraları üzerinde hesaplamalar yapabilen bir kayan nokta hesaplama birimine sahiptir. Böyle bir birimin yokluğunda, yazılımda ondalık sayılar işlenmelidir.
Benzer şekilde, bazı eski işlemciler büyük sayıları, karışık sayıları, güçleri, karekökleri, trigonometrik, logaritmik ve üstel fonksiyonları işleme gibi karmaşık matematiksel işlemleri gerçekleştirebiliyorlardı. Modern işlemcilerde, bu işlemler genellikle temel matematik işlemleri kullanan yazılımda gerçekleştirilir.
İşlemciler mantıksal işlemler gerçekleştirebilir: AND, OR, XOU ( XOR ), NOT (inverter), rotations, offsets . İşlemler, iki kaydın karşılık gelen bitleri üzerinde aynı anda gerçekleştirilir.
Mantıksal bir işlem olarak kabul edilen bayt A ve B'nin karşılaştırması, sonucu ihmal edilen bir çıkarma olarak gerçekleştirilir; sıfır (yani A = B), pozitif (A> B) veya negatif (A <B) olup olmadığı ile ilgileniyoruz. Bu göstergeler durum göstergelerine (işlemcide bulunan küçük bir bitlik bellekler) yazılır.
Bu talimatlar, giriş / çıkış bağlantı noktaları aracılığıyla harici cihazlarla arayüz oluşturmaya izin verir . Bazı mimarilerde, bağlantı noktaları yalnızca bellek yuvaları olarak kabul edilir ve aktarım talimatları ( yerleşik bellek G / Ç ) tarafından yönetilir . Diğer mimariler, girişler / çıkışlar için özel talimatlara sahiptir ( bağımsız girişler / çıkışlar ).
Bunlar, programın normal akışını değiştiren talimatlardır. Atlamaları ve rutin aramaları birbirinden ayırıyoruz:
Hem atlamalar hem de rutin çağrılar şunlar olabilir:
Bu grupta buluyoruz: