Intel 8086
1978 yılında Intel tarafından geliştirilmiş 16-bit mimarisinde bir mikroişlemcidir. Tasarımında 8085 ile benzer mikromimari ve fiziksel…
Intel 8086
1978 yılında Intel tarafından geliştirilmiş 16-bit mimarisinde bir mikroişlemcidir. Tasarımında 8085 ile benzer mikromimari ve fiziksel elemanlar kullanıldığı için 8085'in devamı niteliğindedir. Yaklaşık 29.000 transistöre sahiptir. Performans olarak 5MHz ila 10MHz hızına ulaşmıştır. 20-bit adres yolu ile (2^20=1.048.576= 110241024) 1MB bellek adreslenebilir.

Intel 8086 PIN Diyagramı
Mimarisi 2 Ana bölümden oluşur.
BIU (Bus Interface Unit). Komutları bellekteki komut sırasına göre alarak 8085 den farklı pipelined yöntemi ile fetch işlemi gerçekleştirilir. Pipelined yöntemi execution işlemi gerçekleştirilirken aynı zamanda yeni bir fetch işlemi yapılması yöntemidir. 8085 in mimarisinde ise nonpipelined yöntemi yani, execution işlemi gerçekleştirildikten sonra yeni bir fetch işlemi gerçekleştirmektir. Bu yüzden 8085 den daha hızlıdır. Bu Unit de veri getirme ve sonuçları belleğe yazma görevi yapılır.
EU(Execution Unit). İsimden de anlaşılacağı üzere aldığımız komutların çözülüp yürütüldüğü bölümdür. Aritmetik mantık birimi (ALU) ve yazmaçlar bu kısımda bulunur.
Yazmaçlar (Register)

Emu8086
Genel Amaçlı Yazmaçlar (AX,BX,CX,DX)
Hem 16-bit hem de 8-bit adreslenebilen yazmaçlardır.
AX (accumulator): Aritmetik ve mantıksal işlemlerde en çok tercih edilen yazmaçtır.
BX (base register): Bazen mikroişlemcinin tüm sürümlerinde bellek sistemindeki bir konumun offset adresini tutar.
CX (count register): Sayaç yazmacıdır.
DX (data register): Veri yazmacı.
Segment yazmaçları (CS,DS,SS,ES)
Doğrudan sabit değer adresleme (immediate adressing) yapılmayan, yapılırsa eğer Emu8086'nın hata verdiği yazmaçlardır. Bir değeri segmente atamak için öncelikle o değeri genel amaçlı yazmaçlara atayıp daha sonra register addressing yöntemiyle segment yazmaçlarına atanır.
MOV AX,0123H;
MOV DS,AX;
CS (code segment): Komutların bulunduğu segmentin başlangıç adresini tutar. (CS:IP)
DS (data segment): Program tarafından kullanılan veriler burada içerir. Verilere bir offset adresi veya offset adresini tutan diğer kayıtların içeriği tarafından erişilir.
SS (stack segment): Yığın işlemleri burada gerçekleşir.
ES(extra segment): Ek bir veri segmentidir. Hedef veriyi tutmak için bazı talimatlar tarafından kullanılır.
Çok Amaçlı Yazmaçlar (BP,SP,IP,DI,SI,FLAGS)
BP (base pointer): Stack segmente göre adreslenen bellek veri aktarımları için bir bellek konumuna işaret eder.
SP (stack pointer): Yığını ele alır. Yığının en üst elemanının offset adresini tutar.
IP (instruction pointer): Bir sonraki yürütülecek komutun offset adresini tutar. (CS:IP)
DI (destination index): Hedef dizinin adresini tutar.
SI (source index): Kaynak dizinin adresini tutar.
Bayraklar (FLAGS):İşlem sonuçlarını ve işlem yönünü belirtir. 9 tanedir. Bunlar carry, parity, auxiliary, zero, sign, trap, interrupt, direction ve overflow bayraklarıdır.

Emu8086
- Parity bayrağı 8-bitlik low kısmına bakılır. Eğer ki çiftse parity bayrağı 1 olur.
- Zero bayrağı işlemin komple 0 olması durumdan 1 olur.
- Auxiliary bayrağı eldeli işlem yapıldığında yani 8 bitlik bir işlem taştığında 1 olur.
- Carry bayrağı AF bayrağından farklı olarak 16-bit aşıldığında 1 olur. Inc ve dec gibi aritmetik işlemlerde de değişime uğramaz.
- Sign işaret bayrağıdır. En soldaki değer 1 ise 1'dir.
- Overflow bayrağı pozitif işlemlerin sonucu negatif çıkarsa ya da negatif işlemlerin sonucu pozitif çıkarsa 1 olur.
- Interrupt bayrağı kesmelere izin verildiğinde 1 olur.
- Direction bayrağı ise string işlemlerinde yön belirler. Eğer ki işlem yüksek adresten düşük adrese doğru gidiyorsa 1 olur.
메타데이터
- post_id
- 3cf07bf531e2
- slug
- x8086-3cf07bf531e2
- url
- https://medium.com/@canliyaren0/x8086-3cf07bf531e2
- canonical_url
- https://medium.com/@canliyaren0/x8086-3cf07bf531e2
- author_url
- https://medium.com/@canliyaren0
- status
- ok
- fetched_at
- 2026-07-15 14:59:38