Mikrobilgisayarlar, günlük yaşantımızda kullanım alanları gün geçtikçe artmaktadır. Bir mikrobilgisayarın temel yapısı, bir diğerinden pek farklı değildir. 1960’larda bilgisayarlar, fiyatlarının çok yüksek olması nedeni ile sadece büyük şirketler, gelişmiş üniversiteler ve devlet daireleri tarafından kullanılabiliyordu.
Yarı iletken teknolojisindeki hızlı gelişmeler neticesinde, 1960 lardaki bilgisayar kapasitesi günümüzde 10 dolardan daha ucuz olan mikroişlemci denilen tümleşik devrelere sığdırılmaktadır. Bir mikroişlemci kullanılarak tasarımlanan bilgisayara mikrobilgisayar denilmektedir.
Bilgisayarlar bit adı verilen, 0 ve 1 sayılarını kullanan ikili sayı sistemi ile çalışır ve haberleşirler. Her bilgisayarın Kendine özgü, makine dili denilen ve ikili kodlardan oluşan sabit bir komut kümesi vardır. Makine dili
ile çalışmak zor olduğundan ikili kodlanmış komutların her biri isimlendirilmiştir. Bu komut isimlerine ‘mnemonic’ denir. Mnemoniklerle yazılan programlar ‘assembly’ dili ile yazılmış olurlar.
Ancak bilgisayarlar ikili sayılarla çalıştığından assembly programın, makine diline çevrilmesi gerekir. Çevirme işlemine derleme denir. Derleme işlemi tablolardan faydalanılarak yapılır. Bu işlemin elle yapılması oldukça zordur. Bu yüzden her mikroişlemci ailesine ait bir derleyici program (Cross Assembler) geliştirilmiştir. Kullanıcı, programlarını O dili ile de yazabilmektedir. Ancak bunun derleyicisi de farklıdır. Fiziksel olarak bir mikrobilgisayar temel yapısı Şekil l’ de verilmiştir.
Bellek, bilgisayarı çalıştıran programların ve bilgilerin depolandığı kısımdır. Giriş, çalışma esnasında kullanıcının veri girebildiği kısımdır. Basit anahtarlar, klavye veya başka bir devre olabilir. Çıkış. yapılan işlemlerin neticesinde elde edilen sonuçların dışarıya çıkarıldığı kısımdır. Gösterge, yazıcı veya bir devre olabilir. Giriş/Çıkış birimlerine çevre birimi (Peripheral) denir.
CPU (Central Processing Unit, Merkezi İşlem Birimi), sistemin beynidir. Bilgi depolama için kullanılan çeşitli yazmaçlar, Aritmetik Mantık Birimi, komut çözücü, sayıcı ve denetim hatlarından oluşur. Bellekten komutları okur
ve gerekli işlemleri yapar. Diğer birimler ile iletişimi sağlar. ALU (Aritmetik Logic Unit, Aritmetik Mantık Birimi), toplama çıkarma gibi aritmetik işlemler ile VE, VEYA ve Seçkin VEYA gibi mantıksal işlemleri yapan birimdir.
Yazmaç birimi, çalışma esnasında, geçici veya kalıcı olarak bilgi depolanan yazmaçları içeren kısımdır.
| INTEL 8086/8088 AİLESİ |
İntel firması, ticari amaçlı üretilen ilk mikro işlemcisini 1972 yılında yapmıştı. 8088 olarak bilinen bu işlemci bir hesaplayıcı olarak düzenlenmişti. 8088 olarak isimlendirilen ve 8088’in birüst versiyonu olan mikro işlemci 1973 yılında üretildi. 8080 işlemcisi daha fazla adrese , giriş çıkış portuna ve komuta sahiptir. Komutların icra hızı kısa sürelidir.
Dahili organizasyon daha güçlüdür. 1976 yılında piyasaya sürülen mikro işlemci , 8085 olarak isimlendirildi. 8085’in yapılması ile birlikte, 8 bitlik mikro işlemci pazarında yer sahibi olan İntel firması, 1978 yılında önemli bir atılımla 8086’yı yaptı. 16 bitlik bu işlemci 8080’den 10 kez daha hızlıdır. 8086 ve 8080 assembly dili düzeyinde yazılım uyumluluğuna sahiptir.
Aradaki fark azdır. 8080programları 8086 üzerinde icra ettirilebilir. İntel firması, 8088 adını verdiği yeni bir işlemci üretti. Bu işlemci 8086 gibi 16 bitlik dahili data yollarına sahipti. Fakat chip’in dışından gelen data hatları 8 bit genişliğindedir. 8086 ile 8088 özdeştir. 8088 mikro işlemcisi 16 bitlik veri transferini daha fazla zamanda yapar. Çünkü 16 bit operasyonlar iki ayrı 8 bit üzerinde yürütülür.
80186 ve 80188 İşlemcileri, 8086 ve 8088’in birüst uyarlamasıdır. Bu işlemciler zamanlayıcılar gibi eksen dananım özellikleri içermektedir. Ayrıca 8086 ve 8088’den farklı olan 10 adet yeni komuta sahiptirler. İntel firmasının son olarak x86 gurubu olarak bilinenen 80286, 80386, 80486 ve Pentium, Pentium Pro (MMX desteği)ve sonunda Pentium II serisiolarak bilinir. Bu işlemcilere ait CPU chip’i ailenin diğer üyelerinin sahip olduğu CPU chiplerinden daha fazla gelişmiş düzeydedir. Bu gelişmenin temel nedeni, bellek alanı üzerindeki işlemlerdir ve gelişmeler, mikro bilgisayarın birden fazla kullanıcı tarafından aynı anda kullanabilmesine olanak tanır.
| CPU REGİSTERLERİ |
Mikro işlemci, register adı verilen 14 adet özel lokasyon içerir. Herbiri 16 bit genişliğinde olan bu lokasyonları özelbellek birimleri olarak düşünebiliriz. Registerler, mikro işlemci tarafından özel amaçlar için kullanılır. Ayrıca, çeşitli verilerin geçici süreler için saklanması ve bu veriler üzerinde işlem yapılması için registerlerden yararlanılır.
Registerler CPU chip’inin üzerinde yer aldıklarından, registerle yapılan işlemler, bellek bölgeleri üzerinde yapılan işlemlere nazaran çokdahahızlıdır. 8086/8088 mikro işlemcisinin sahip olduğu registerleri
aşağıdaki gibi guruplara ayırmamız mümkün;
I – Segment registerleri (4 adet )
II – Genel amaçlı registerler
a) Data registerleri (4 adet )
b) Pointer ve index registerleri (4 adet )
III – Instruction Pointer (1 adet )
IV – Program Status word (1 adet )
Yukarıda gösterilen 14 adet registerin 4 tanesi CODE, DATA, STACK VE EXTRA segmentlerin başlangıç adreslerini saklayan CS,DS,SS ve ES registerleridir. Bu dört registere genel olarak segment registerleri denilmektedir. Geriye kalanlardan 8 tanesi genel amaçlı register, 1 tanesi instruction pointer (komut göstergeci ) registeri ve sonuncusu da program status word (durum göstergeci) registeri olarak bilinmektedir.
Program status word registerine flag registeri adını vereceğiz. Genel amaçlı registerler, kendi aralaronda iki
guruba ayrılırlar. Her iki gurup, 4 adet registerden oluşur. Bunlardan ilk dört registere data, diğer 4 adet registereise pointer ve index registerleri adı verlir.
| DATA REGİSTERLERİ |
Daha çok, aritmetiksel işlemler için kullanılan DATA registerleri AX,BX,CX ve DX’dir. Herbir DATA registeri diğer registerlerden farklı olarak, bir bütün halinde veya iki parça halinde kullanılabilmektedir. Bir DATA registerini iki alt alana bölebilir, böylece registeri 16 bitlik birtek register halinde veya 8 bitlik iki ayrı register halinde kullanma imkanına sahip olabiliriz. Bu özellik şekil üzerinde gösterilmiştir. Örneğin AX registerini 16 bitlik işlemler için AX’i oluşturan AH ve AL yi ise 8 bitlik işlemler için ele alırız. 16 bit uzunluğundaki data registerlerinden herhangi birisinin yüksek seviyeli kısmı (high order ) register isminin ve ‘High’ kelimesinin ilk harfi ile , alçak seviyeli kısmı (Low order) ise ,yine register isminin ve ‘Low’ kelimesinin ilk harfi ile gösterilir.
Böylece AX için AH ve AL, BX için BH ve BL ,CX için CH ve CL, DX için DH ve DL olarak isismlendirilen 8-bitlik registerler elde edilir. Bu 8 bit registerlerden birinin değerinin değiştirilmesi ile, kendisini ihtiva eden 16 bit registerinin değerinin de değişeceği ve bunun tersinin de mümkün olacağı açıktır. Fakat bir 16-bit registerin herhangi bir yarımı üzerinde yapılan işlem diğer yarımı üzerinde değişikliğe yol açmayacaktır. Data registerlerinin dışında kalan registerlerinin dışında kalan registerlerin, bu şekilde alt alanlara bölenemeyeceği şekil üzerinde de gösterilmiştir.
Ancak flag registerleri için daha da farklı bir kullanım söz konusudur. DATA registerlerinin herhangibiri genel program amaçları için kullanılabilir. Diğer taraftan belirli data registerlerlerinin belirli işlemler sırasında operand olarak kullanılması zorunludur. Böyle bir durumda, programcının bir seçim yapması söz konusu değildir. Akümülatör olarak isimlendirilebilen AX registeri ; çarpa, bölme, giriş, çıkış, bazı string operasyonlarında word uzunluklu olarak kullanılır.
AL registeri byte uzunluklu olup, bazı operasyonların sayaç registeri olarak veya desimal amaçlı aritmetiksel işlemlerde transfer alanı (alıcı alan registeri ) olorak kullanılır. Ah registeri byte uzunluklu bölme ve çarpmalarda kullanılır. Base registerolarak isimlendirilebilen BX , daha çok bellek içindeki verilerin adreslanmesinde kullanılır. CX sayaç registeridir, LOOP komutlarının veya tekrarlı string operasyonlarının sayaç registeri olarak kullanılır. CL registeri shift ve rotate sayacı olarak kullanılabilir. Data registeri ismi verilen DX , word uzunluklu çarpma ve bölme operasyonlarında ,ayrıca giriş çıkış operasyonları için port numarası göstermede kullanılır.
| SEGMENT REGİSTERLERİ |
8088 ve 8086 işlemcisi kullanan bilgisayarlar, programların veya dataların belleğin iki ayrı alanına yerleştirirler. Bu program ve data alanları maximum 64 K büyüklüğnde olup segment olarak isimlendirilir. 8088 işlemcisi aynı anda 4 ayrı segmente sahip olabilir. Bu segmentler CODE, DATA, STACK ve EXTRA segment olarak isimlendirilir.
Bu segmentlere ait ilk byte’ın diğer bir deyişle segmentin başlangıç adresinin gösterilmesi için 4 ayrı register kullanılır. Bunlar; sırası ile CS, DS, SS ve ES olup segment registerleri olarak isimlendirilirler. Code segment registeri olan CS icra gören programı içeren segmentin başlangıç adresini gösterir. Diğer bir deyişle, CS ile adreslenen segment içinde makine dili komutları yer almaktadır. Stack segment registeri olan SS, geçerli stack segmentin başlangıç adresini içerir.
Stack segment,çeşitli verilerin geçici olarak saklandığı bir bellek bloğudur. Data segment registeri olan DS ,geçerli data segmentinin başlangıç adresidir. Bu segment genel olarak program değişkenleri tarafından kullanılır. Diğer bir deyişle, bilgi işlem operasyonlarına tabi tutulan bilgiler, data segment içindeki lokasyonlarda yer alırlar. Ekstra segment registeri olan ES geçerli ekstra segmentin başlangıç adresini içerir. Ekstra segment, genel olarak string operasyonları için kullanılır. Yeterli bellek büyüklüğüne sahip olan sistemlerde bu 4 segment, belleğin farklı parçalarıdır. Geniş belleğe sahip olmayan sistemlerde ise, bu segmentler üstüste gelebilir.
| POİNTER VE İNDEX REGİSTERLERİ |
Yukardaki şekil üzerinde degösterildiği gibi; pointer ve indeks registerleri SP, BP, SI ve DI ’dir. Ancak, IP ve BX registerlerini de birer pointer ya da indeks registeri olarak kabul etmek mümkündür. Pointer ve indeks registerleri de, data registerleri gibi aritmetiksel işlemler için kullanılabilmektedirler. Fakat bu registerlerin kullanımındaki asıl amaç çeşitli bellek bölgelerindeki verilere ulaşabilmek için adres göstericisi olarak ele alınmalarıdır.
Bellek içindeki bir lokasyonun adresini gösterebilmek için, iki ayrı adres değeri kullanılır. İlk değer, işaret edilen lokasyonu içinde barındıran segmentin adresidir . bu noktada segment registerlerinden yararlanılır. Lokasyonun segment içindeki yerini gösteren ikinci adres değeri ise offset adresi olarak bilinir. Offset adreslerinin gösterilmesi için de , pointer ve indeks registerlerinden yararlanılır. Mikro işlemci, code segment içindeki lokasyonlara erişebilmek için CS ve IP registerlerini kullanır.
Stack segment içinde bulunan bir veriye ulaşmak için SS registeri ile birlikte SP ya da BP registerlerinden birini kullanmak gerekir. Data segment içindeki lokasyonlara erişmek için, data segmentin başlangıcı olan DS registerinden, lokasyonun offset adresini göstermesi için de BX, SI veya DI registerlerinden yararlanılır. Ekstra segment ya da gelişigüzel seçilen bir segment içerisindeki lokasyonlara erişebilmek için CS, DS, SS’ten yararlanabiliriz.
Örneğin ES’deki değeri SS’ e ve ekstra segment içindeki lokasyonun offset adreslerini BP’ ye aktarabiliriz.
| INSTRUCTION POİNTER REGİSTERİ |
Komut göstergeci olarak isimlendirebileceğimiz IP registeri, 8088’in icra ünitesi tarafundan icra ettirilecek olan bir sonraki komutun offset adresini içerir. Offset adersi IP ile gösterilen bellek bölgesi code segmenti içindedir. Çünkü programları oluşturan komutlar bu segment içinde bulunur.
IP registeri özel amaçlı bir register olması nedeniyle, programcı tarafından direkt olarak kullanılamaz. Ancak bu registerin değerini, stack üzerindeki bilgiler ile dolaylı olarak değiştirmek mümkündür.
| PROGRAM STATUS WORD REGİSTERİ |
Program status word registeri, kısaca PSW şeklinde gösterebiliriz. Bu registere flag registeri adını vereceğiz. Flag registeri diğer registerlerden oldukça farklıdır. Herşeyden önce, ‘PSW’ gösterimi bir operand değil, sadece bu registerden bahsetmek için kullanılan bir kısaltmadır. Flag registerinin bir bütün olarak veya 16 bitlik, 8 bitlik bir sayı olarak değerlendirilmesi söz konusu değildir
Çünkü flag registerinin sayısal değeri değil, kendisini oluşturan bitlerin herbirinin değeri önem taşımaktadır. Ancak, burada da bir kısıtlama olacak ve registeri oluşturan 16 bitten sadece 9 tanesi kullanılacaktır. Bu 9 bitin herbirinin mevcut değeri çeşitli kontrol komutların icra şekline etki etmekte ya da aritmetiksel veya mantıksal işlemlerin sonucu hakkında bilgi vermektedir.
Örneğin flag registerinin 6.biti zero flağı olarak isimlendirilir. Bu işlem sonrasında , bu bitin değerini kontrol ederek , işlem sonucunun 0 olup olmadığını kontrol edebiliriz. Bu bitin değeri 1 ise , işlemin sonucu 0 , aksi taktirde 0’dan farklıdır.
| BELLEK, SEGMENT, OFFSET |
Bellek programları oluşturan komutları ve program tarafından , üzerinde bilgi işlem yapılacak verileri içeren ya da saklayan ünitedir. Komutlar ve veriler, bilgisayarın belleğinde birer byte’lık sayılar halinde yeralır. Bellekteki her şey sayılardan ibarettir. İcra anında , komutların veri olarak ya da verilerin komut olarak değerlendirilmemesi için, oldukça düzenli bir bellek organizasyonu gerekmektedir. Bu da normal olarak programcının sorumluluğu altındadır.
Bilgisayar belleğinin binlerce ufak hücreden meydana geldiğini düşünebiliriz. Her bir hücre, 8 bit uzunluğundadır ve bilindiği gibi 8 bitlik her bir birim byte olarak isimlendirilmiştir. Bellekteki her bir byte’nin , diğer bir deyişle her bir bellek bölgesinin bir adresi vardır. Bu adresler 0’dan başlayan pozitif tamsayılardır. Belleğin ilk byte’nin adresi 0, son byte’nin adresi ise , belleğin büyüklüğünü gösteren sayının bir eksiğidir. Her bilgisayarın belleği değişik büyüklüklerde olabilir.
8086/8088 Mikro işlemcisi ile kullanılabilecek maximum bellek büyüklüğü 1,048,576 byte ya da kısaca 1 Megabyte’dir. Aşağıdaki şekil,belleği oluşturan hücreler ve bunlara karşılık gelen bellek adresleri hakkında kabaca bir fikir verebilir; Bellek içindeki herhangi bir lokasyonun adreslenmesinde ,2 byte uzunluğundaki işaretsiz tamsayılar kullanılır.2 byte ile ifade edilebilecek en küçük işaretsiz sayı 0,en büyük işaretsiz sayı ise 65535’dir. O halde, 2 byte uzunluğundaki bir sayı ile ,belleğin sadece ilk 65536 byte’ı adreslenebilecektir.
Oysa, 8086/8088 mikro işlemcisi için, belleğin bu sayıyı aşarak 1,048,576 byte’dan oluşabileceğini biliyoruz.2 byte uzunluğundaki sayılar ile, bu genişliğindeki bir belleğin, tüm lokasyonlarının adreslenemeyeceği açıktır.
| MİKROİŞLEMCİLERİN KARŞILAŞTIRILMASI |
Sürekli başarı elde edilen ilk mikroişlemci INTEL’ in ürettiği 8080 işlemcisidir. Bunun geliştirilmiş versiyonu ise 8085 olarak tanınmaktadır. Z80 adıyla anılan daha da geliştirilmiş bir işlemci ise ZILOG tarafından üretilmiştir. MOTOROLA’ nın ilk işlemcisi 6800 olup, bu, kendi saat devresi ve RAM’ i olmayan 6802ye eşdeğerdir. MOTOROLA’nın geliştirilmiş versiyonu 6809′dur. ROCKWELL ise MOS teknoloji ile basitçe geliştirilmiş olan 6502yi piyasaya sürmüştür.
Bütün bunlar 8 bitle işlem gören, 16 bit adresleme yapabilen mikroişlemcilerdir. 6800 ismi, içerdiği tümleşik eleman sayısı göz önüne alınarak verilmiştir. 3 durumlu (Tristate) çalışan adres barasına sahip olması, kendinden RAM’ i olmaması ve 2 fazlı bir saat sinyaline ihtiyaç duyması hususları dışında 6802 le aynıdır.
6502, 1975 yılında bir grup 6800 tasarımcısı tarafından tasarımlanmış ve 5802′ye çok benzer bir işlemcidir. Kendinden bir saat devresi olup RAM’ i yoktur. En çok göze çarpan farkı adresleme durumları ve program!ama esnekliğidir. MOS teknolojisi ile tasarımlanmıştır.
6809, 6800′ün oldukça geliştirilmiş bir versiyonu olup MOTOROLA tarafından 1978 yılında dünyaya tanıtılmıştır. Bir adet çarpma ve 16 bitlik veriler için bazı komutları içeren oldukça güçlü ve karmaşık bir komut setine sahiptir. Dahili bir saat devresi vardır, ancak RAM’ i yoktur. 6809E versiyonu, birkaç ek kontrol fonksiyonu içermekte ve harici bir saat devresine ihtiyaç duymaktadır.
6805, MOTOPOLA’ nın tek-yongalı mikrobilgisayarlarının bir ailesidir. 1 veya 4 Kbyte’lık bir program belleği, 64 veya 112 byte’lık PAM, bir saat ve 16 veya 32 1/0 hattını 28 veya 40 bacaklı bir yongada toplamıştır. Güç işleme ve çalışma bakımından 6800′e benzerdir. Program belleği maskeli ROM olduğundan, sabit programlı ve büyük miktarlarda sipariş edilmek zorundadır. Adres ve veri babaları, bacaklara taşınmadığından deneme yapmak için uygun değillerdir.
6801, MOTOR0LA’nın daha ilerlemiş bir mikrobilgisayarıdır. 2 Kbyte’lık maskeli ROM’a ve 31 I/O hattına sahiptir. ILO hatları adres ve veri hattı olarak programlanabilir ve böylece harici belleklere erişilebilir. 6803, 6801 ‘in ROM’suz versiyonudur. Bu bilgisayarlar ayni komut setini kullandıklarından 6800 ve 6802 ile ayni programları çalıştırabilirler. Çarpma ve l6 bitlik veri işleme gibi komutları da içerirler.(2)
8080′ in 6800′den farkı donanımdan .çok komutlarda ve programlamadadır.8080, şimdiye kadar anılan tüm mikroişlemcilerden önde olup hızla geniş bir takip kazanmıştır. Komut seti bazı hususlarda 6800den daha güçlü fakat kesinlikle daha az güvenilirdir. Özel bir harici saat yongasına ve 3 adet güç kaynağına (-5 V, +5V ve +12V) gereksinimi vardır.
Z80, 1976′da bir grup 8080 tasarımcısı tarafından tasarımlanmış ve ZILOG tarafından piyasaya sürülmüştür. 8080′in komut setini takip eden ancak ek olarak bazı güçlü komutlar ve çoklu görevlerin kullanımını kolaylaştıran bir çok yeni yazmaç eklenmiştir. Z80 basit bir TTL saat üretecine ve standart +5V güç kaynağına gereksinim duymaktadır.
8085, INTEL’ in 1976′da çıkardığı ve 8080m gelişmiş bir versiyonu olan mikroişlemcidir. Kendinden bir saat devresine sahip olup sadece 5V’luk bir güç kaynağına ihtiyaç duymaktadır. Seri giriş ve çıkış hatları mevcuttur. Veri barası, adres barasının düşük byte’ı ile ortak (multiplex) olarak kullanılmaktadır. Yani bu hatlar aynı bacaklara bağlıdır ve makine dönüşünün ilk kısmında adres bilgisi ve ikinci kısmında veri bilgisi çıkışa verilmektedir. Bellek ve çevre yongaları kullanılacaksa, bunlar ya INTEL’ in multiplex barasına eşdeğer yapıya sahip olmalı yada bir adres tutucu arabirim kullanılmalıdır.
8051, INTEL’ in dahili ROM ve saat devresine ayrıca 1/0 hattına sahip mikro denetim (microcontroller) tüm devresidir. 4KByte’lık bir ROM’a ve 32 1/0 hattına sahiptir. Ayrıca 8O32BASIC adı altında bir de Basic programları çalıştırabilen versiyonu vardır. Kendi üzerinde bir Basic yorumlayıcısı vardır. Program, kısmen Basic ve kısmen de makine dili ile yazılabilir. 8080′ in 6800′ den farkı donanımdan çok komutlarda ve programlamadadır.
8080, şimdiye kadar anılan tüm mikroişlemcilerden önde olup hızla geniş bir takip kazanmıştır. Komut seti bazı hususlarda 6800′den daha güçlü fakat kesinlikle daha az güvenilirdir. Özel bir harici saat yongasına ve 3 adet güç kaynağına (-5V,+5V ve +12V) gereksinimi vardır.(4)
Z80, 1976′da bir grup 8080 tasarımcısı tarafından tasarımlanmış ve ZILOG tarafından piyasaya sürülmüştür. 8080′in komut setini takip eden ancak ek olarak bazı güçlü komut!ar ve çoklu görevlerin kullanımını kolaylaştıran bir çok yeni yazmaç eklenmiştir. Z80 basit bir TTL saat üretecine ve standart +5V güç kaynağına gereksinim duymaktadır.
8085, INTEL’ in 1976da çıkardığı ve 8080m gelişmiş bir versiyonu olan mikroişlemcidir. Kendinden bir saat devresine sahip olup sadece 5V’luk bir güç kaynağına ihtiyaç duymaktadır. Seri giriş ve çıkış hatları mevcuttur. Veri barası, adres barasının düşük byte’ı ile ortak (multiplex) olarak kullanılmaktadır. Yani bu hatlar aynı bacaklara bağlıdır ve makine dönüşünün ilk kısmında adres bilgisi ve ikinci kısmında veri bilgisi çıkışa verilmektedir. Bellek ve çevre yongaları kullanılacaksa bunlar ya INTEL’ in multiplex barasına eşdeğer yapıya sahip olmalı yada bir adres tutucu arabirim kullanılmalıdır.
8051, INTEL’ in dahili ROM ve saat devresine ayrıca I/O hattına sahip mikro denetim (microcontroller) tüm devresidir. 4KByte’lık bir ROM’ a ve 32 1/0 hattına sahiptir. Ayrıca 8O32BASIC adı altında bir de Basic programları çalıştırabilen versiyonu vardır. Kendi üzerinde bir Basic yorumlayıcısı vardır. Program, kısmen Basic ve kısmen de makine dili ile yazılabilir.(4)


