Bir PDP-11 a, bilgisayar modeli PDP (arasında programlanabilir veri işlemci ) inşa hattı Digital Equipment Corporation arasında (DEC) 1970 ve 1993 .
Tüm PDP-11'ler 16 bittir ve mini bilgisayarlar sınıfına girer . Modülerliği, mükemmel bir kalite / fiyat oranını birleştirdikleri ve kullanımları tek bir uygulama sektörüyle sınırlı olmadığı için son derece popülerdi: Muhasebe firmalarından çok veri toplama için fizik laboratuarlarında da bulundu. Son olarak, üniversite dünyası da bu makinelerden çok sayıda satın aldı.
Bu aralık, Unix işletim sisteminin ve C dilinin geliştirilmesi için temel oluşturduğu için de popülerdir . C'nin ön artırımı (++ i) ve sonradan artırımı (i ++), özellikle PDP-11 makine dilinin bu olasılığından yararlanmayı mümkün kıldı.
Aynı zamanda , dünya çapında birçok laboratuvarı ve mühendislik okulunu donatan IBM 1130 , 1969'da piyasaya sürüldüğünde, IBM tarafından önerilen bir halefi olmadan yaşlanmaya başladığında da oldu. Katkıda bulunan devasa özgür yazılım kitaplığı dışında, 1130, hız veya maliyet açısından PDP-11'e göre özel bir avantaja sahip değildi.
Diğerleri gibi, bu aralık da, bellek adres alanı çok sınırlı olduğu için ortadan kalktı (16 ila 18 bit , en fazla 22). Bunun yerine , 32 bit Virtual Address eXtension anlamına gelen VAX geldi . VAX operasyon moduna sahip "uyumlu PDP-11".
İlk PDP-11'ler UNIBUS otobüsünün etrafına inşa edildi . Bazı yongalarda bulunan ve LSI-11 olarak adlandırılan komut setinin bulunduğu en son modeller, Q-BUS adı verilen (daha dar) veri yoluna dayanmaktadır .
İşlemci PDP-11 8 sahiptir kayıtları kayıt 7: özel kullanımlara sahip ikisi, bilgisayar (için Program Sayacı veya program sayacının) ve kayıt 6, işaretçi bir yığın (SP'den, yığın Pointer ). Diğer kayıtlar R0, R1, ..., R5 ve genel kullanım içindir. Son kayıt, durum kaydıdır.
15 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R0 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R1 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R2 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R3 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R4 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R5 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R6 (SP) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R7 (PC) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ \_____________________________________________________________/ registres (16 bits) 15 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | CM | PM | R | | PRI | T | N | Z | V | C | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ \_____________________________________________________________/ registre d'état(16 bits)Durum kaydındaki bayrakların anlamları şunlardır:
Tüm PDP-11 modelleri tam olarak aynı tip durum kayıtlarına sahip değildir, burada gösterilenler daha gelişmiş modellere karşılık gelir.
Üç sınıf vardır:
Üç olası komut seti vardır:
Her komut, gerçekleştirilecek bir işlemi, muhtemelen işlenenleri (kayıtlar, vb.) Ve bir adresleme modunu belirtir .
PDP-11, 7 format tanımlar. Aşağıda açıklanan tüm formatlarda:
Mod alanı 3 bit üzerinde tutulur. Örneğin, iki işlenen bir talimat, her biri yazmaç alanının nasıl yorumlanacağını açıklayan iki yazmaç alanı ve iki mod alanı içerir.
Yalnızca en soldaki bitleri ele alırsak (üçüncüsü, yönlendirme bitidir, aşağıya bakın):
Modun en sağdaki biti, yönlendirme bitidir: eğer bu bit bir ise, adresleme dolaylı olacaktır:
"Anında" mod olmadığına dikkat edilmelidir: bu mod 2 kullanılarak gerçekleştirilir (otomatik artış). Aslında, PC talimatı takip eden kelimeyi işaret eder ve artım sonrası , çalıştırılan talimatı takip eden anlık değer işlemci tarafından yüklendikten sonra bir sonraki talimata geçmesini sağlar .
PC'yi bir kayıt defteri olarak kullanmak bu nedenle 4 yeni mod oluşturur:
Arttırılmış ve önceden azaltılmış adresleme modları özellikle SP: - (SP) yığınlama ve (SP) + istiflemeyi kaldırmaya izin veren yığın işaretçisi ile bağlantılı olarak kullanılacaktır.
Örnek: CLR (R0) 005010
Örnek: ADD R0, (R1)
Not: bazı komutlar (ASH, ASHC, MUL, DIV) kaynak olarak yalnızca bir kayıt içerebilir, bu durumda işlem kodu bit 9'dan bit 15'e uzanır:
15 11 9 8 6 5 3 2 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | code opération | Rn | mode | Rn | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ \_________/ \_____________________/ source destinationYer değiştirme alanı işaretlidir, bu nedenle -128 ila +127 baytlık bir ofsete izin verilir.
JSR (Alt Yordama Atla) talimatı için:
15 9 8 6 5 3 2 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | code opération | Rn | mode | Rn | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ \_________/ \_____________________/ lien destinationRTS (Alt Programdan Dönüş) talimatı için:
15 3 2 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | code opération | Rn | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ \_________/ lienEMT, TRAP, BPT, IOT, CSM, RTI, RTT: belirli bir format yok.
CLC, CLV, CLZ, CLN, CCC, SEC, SEV, SEZ, SEN, SEC: belirli bir format yok.
15 5 3 2 1 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | code opération | O | N | Z | V | C | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+DUR, BEKLE, SIFIRLA, MTPD, MTPI, MFPD, MFPI, MTPS, MFPS, MFPT: belirli bir format yok.
Bu seçenek FPP veya FP-11 , FP için Floating Point olarak adlandırılır . Hesaplamalar için 6 yeni 64-bit yazmaç (iki kez 32) ve diğer bazı özel olanlar (bir durum kaydı gibi) ekler. Yüzen işlemcinin çalışması, PDP-11'in standart işlemcisinden farklıdır: yüzen işlemci bellekteki talimatı aldığında küçük bir gecikmenin yanı sıra, iki işlemci bağımsız olarak hesaplama yapar.
Bu yeni talimatlar, mikro kodu değiştirerek kullanılabilir .
Ticari Yönerge Seti için CIS olarak adlandırılan bu talimatlar dizisi, esas olarak karakter dizilerinin yönetimine odaklanan bu talimatlar, genellikle yönetim programlarının gerektirdiği işlemleri hızlandırmak için tasarlanmıştır ( örneğin COBOL'de yazılmıştır ).
Sayıların karakter biçimindeki temsilinin ikili değerlere dönüştürülmesine (ve tersi) veya doğrudan "karakter dizisi" temsillerinde hesaplamalara izin verir.