TürkçeEnglish

 

İndir
Freeware
Shareware
Örnekler
Kullanım Rehberi

 

MİKROİŞLEMCİ SİMÜLATÖRÜ

[editör][assembler][debugger][animatör][sanal uygulamalar][örnekler]

 

Elektormekanik Deney Seti

Visual 6502


Genel Bakış

Visual Mikroişlemci Simülatörü, Teknik Eğitim Fakültelerinin Elektronik ve Bilgisayar Eğitimi Bölümlerinde okutulmakta olan Mikroişlemciler dersinin laboratuvar uygulamalarını karşılamak amacıyla hazırlanmıştır. Laboratuvar uygulamaları için eldeki elektromekanik deney setleri, sınıfların kalabalık olması, zaman ve mekanın uygun olmayışı, daha fazla temin edilmesi durumunda ekonomik olmaması ve bakım-onarım gerektirdiğinden günümüzde uygun olmamaktadır. Bilgisayar kaynakları ve çoklu-ortam araçlarındaki gelişimler, pahalı ve hantal sistemler yerine kişi ve kuruluşları sanal öğretim araçlarına yöneltmiştir. Elektromekanik deney setlerine göre oldukça düşük maliyetli olan bu simülatör okulların beklediği ihtiyacı karşılamaktadır. Bilgisayar olan her ortamda çalışan bu program, öğrencilerin her yerde program yazabilmelerini veya ödevlerini yapabilmelerini sağlamaktadır. Gerektiğinde yardım için internet ortamından yardım alabilmek ve ilgili forum'lara katılabilmek imkanına sahiptir.

Elektromekanik deney setlerinde verinin nasıl bir yol takip ettiği, denetim sinyallerinin birimleri nasıl tetiklediği görülememektedir. Yazılan programların tekrar tekrar denenebilmesinde ve programın derlenmesinde pek çok sorunlar ortaya çıkmaktadır. Bir dönem bilgisayar 3. sınıflara uygulanmasının sonucunda, öğrencilerin mikroişlemci simülatörünü elektromekanik deney setlerine göre daha kolay öğretebilir ve ilgi çekici olduğu kanaatine varılmıştır.

Bünyesinde Editör, Assembler, Debugger, Animatör ve Sanal Uygulama modülleri bulunduran Visual Mikroişlemci Simülatörü, grafik ve görsel ortamda her türlü ihtiyacı karşılayacak biçimde tasarlanmıştır. Başka hiçbir simülatörde bulunmayan animatörde (hata ayıklayıcı dahil), sisteme bellek ve G/Ç birimleri de dahil edildiğinden bir mikrodenetleyici veya PIC ya da tam anlamıyla bir mikrobilgisayar sistemini taklit etmektedir.

Editör

Assembly dilinde program yazmak, kesmek, biçmek, eklemek ve değişiklik yapmak için bir platformdur. Simülatöre yerleşik olan bu metin düzenleyicisinde yazılan programlar ASM uzantılı olarak saklanabilir veya daha önce yazılmış programlar yüklenerek üzerinde değişiklikler yapılabilir.


Assembler

Metin düzenleyicisinde yazılan kaynak programlar (ASM uzantılı) ASSEMBLER butonuna basılarak anında makina diline çevrilebilir. Ana menüde açılan yeni pencerede adresler, hex makina kodları ve etiketlerin yerine gerçek adresleri konulmuş assembly programdan meydana gelmektedir. Eğer programda hata varsa bu pencerenin yerine hata mesaj penceresi açılacak ve hata kodu ve no'su yazacaktır. Bu hatanın üzerine fare ile tıklandığında kürsör progradaki hatanın üzerine gidecektir. Düzeltme yapıldıktan sonra tekrar ASSEMBLER butonuna basılmasıyla birlikte makina kodları üretilmektedir.

Assemblerin en temel özellikleri günümüz işlemcilerinde Intel'den esinlenerek tasarlanmıştır. Programda veri tanımlanırken .DATA Adres ifadesinde sonra bu veri veya veri grubunun bellekte nereye yerleşeceği tanımlanır.

.DATA $20

SAYI .BYTE $25,45,$5A,00

TAB .BYTE 15,20,25,"ELEKTRONIK"

Yukarıdaki tanımlamayla, veri bölümünde bir dizi baytlık hex veya ondalık veya string veriler yerleştirilmiştir. SAYI ve TAB etiketli adreslere bu veriler sıralanmıştır. .DATA'nın yanındaki $20 ifadesi altındaki verilerin bellekte yerleşeceği orijin noktasını verir.

Program alanına yerleşecek kodların tanımlanması .CODE Adres ifadesi ile yapılır. Kodlar bellekte hangi adresten itibaren yerleşecekse .CODE'nin yanına o adres yazılır.

.CODE $0200

LDA #$25

ADC SAYI

STA SAYI+3

BRK

Burada .BYTE ifadesi kendinden sonra gelecek verinin bayt cinsinde olduğunu gösterir. 6502 mikroişlemcisi 8-bitlik bir işlemci olduğundan verilerin tanımlanmasında sadece BYTE talimatı yeterli olacaktır.

Debugger

Asembly dili kurallarına göre yazılan program assembler kurallarına uyularak makina koduna çevrildikten sonra hata olup olmadığını veya hedeflenen işlemi gerçekleştirip gerçekleştirmediği DEBUGGER (Hata Ayıklayıcı) modülünde incelenir. Ana menüdeki DEBUGGER butonuna basıldığında ekrana Kaydediciler penceresi, veri belleği penceresi, program belleği penceresi ve yığın belleği penceresi açılır. Programın çalışması sırasında gerçekleşen olayları gözlemlemek (analiz) için bu pencereler gereklidir. Kaydediciler penceresinde, genel amaçlı kaydediciler dışında PIA G/Ç birimi kaydedcileri de yeralmaktadır. Program çalışırken kaydedici içerikleri sürekli gözlenebilmektedir. Bayrak kaydedicisi işlemlerde doğrudan etkili olduğundan bit bit gösterilmiştir.

A, X ve Y genel amaçlı kaydedicilerden başka, PC, SP ve Bayrak kaydedicileri içerikleri ve ayrıca PIA'nın 6 adet A ve B portu kaydedicileri de gözlenebilmektedir. Programın veya altprogramların kaç saykıl çektiği bu pencereden gözlenebilir.

Bellek pencerelerinden, 64KB'lık adres uzayındaki veriler veya kodlar gözlenebilmektedir. Bu bölgelerdeki veri değişimleri çalışma anında görülebilir.

Program çalıştırılması, kullanıcıya bağlı olarak kesintisiz (RUN), klavye tuşuna basılarak (adım adım) ve belli bir hızda adım adım çalıştırma seçeneklerine sahiptir. Bu işleme ait butonlar ana menünün sağ üstündedir. Adımlama hızı pull-down simülatör menüsündeki seçenekler bölümünden ayarlanabilir. Kullanıcı istediği taktirde Editör alanında fare tıklamasıyla Breakpoint (durma noktası) koyabilir ve istediğinde yeni bir tıklamayla kaldırabilir.

Program çalışırken editör ve makina kodu bölümünde bir çalışma şeridi çalışan komut satırı üzerinde dolaşmaktadır. Böylece program tarafından işlemci üzerinde gerçekleştirilen olaylar gözlenebilmektedir.

Program eğer giriş veya çıkış elemanları üzerinde yapılıyorsa o cihaza ait butona basılarak gelişen olayla gözlenebilir.

Animatör

Program hata ayıklama bölümünde iyice analiz edildikten sonra sistem üzerinde kodlar ve veriler nasıl bir düzende hareket ettiği ANİMATÖR'de gözlenebilir. Tüm kaydediciler, veri yolları, bellek birimi ve PIA birimini yer aldığı bu modülde, veri akışı ve kontrol işlemlerinin analizi ve gözlenmesi gerçekleştirilir. Programın makina kodları, kodların bellekten alınıp getirilmesi, kodunun çözülmesi ve gereğinin yerine getirilmesi adım adım bu bölümde içerikleriyle birlite incelenebilmektedir. Eğitim açısından söylenen fakat bir türlü ifade edilemeyen olaylar burada canlandırılmıştır. Giriş ve Çıkış çevre birimleri bu modülde de devreye sokulabilir.

Sanal Uygulamalar

Sanal uygulamalarda, mikroişlemcinin PIA G/Ç entegresi kullanılarak çeşitli çevre birimleri denetlenmektedir. Giriş elemanı olarak anahtar grubu, çıkş elemanları olarak, LED grupları, Trafik lambaları ve 7-Segment Display grubu kullanılmaktadır.

Visual Mikroişlemci Simülatöründe hedef alınan, endüstriyel okullara Dünya Bankası desteğiyle Endüstriyel Okullar Projesinden alınan 6502 Lab-Volt deney setleridir. Okulların tamamında müfredat bütünlüğü sağlamak amacıyla bu deney seti seçilmiştir. 6502 mikroişlemcisi diğer zamandaş işlemciler içerisinde bilgisayarlarda kullanılan kendini kanıtlamış tek işlemci olmasından dolayı hedef alınmıştır. 56 komut ve 13 adresleme moduna sahip bu işlemcinin komut kümesi 150 civarında olup, nerdeyse günümüz işlemcilerinin komut kümesine sahiptir. Belleği en etkin kullanan ve ilk iş-hattı mimarisine sahip bu işlemci Apple II, Commodore ve Atari gibi bilgisayar sistemlerinde kullanılmıştır.

Mikroişlemcinin, mikrodenetleyicinin veya PIC'in görevi bir elemanı veya sistemi belli bir program dahilinde denetlemektir. Mikroişlemciler diğerlerinin yanısıra DSP gibi, yüksek oranda veri manipulasyonu ve manevrasında kullanılmaktadır. Büyük ve özellik isteyen sistemler mikroişlemci kullanmaktadır. Diğer mikroişlemci türevleri denetleyici veya PIC'ler özel bir veya bir kaç işlemi gerçekleştirmek maksadıyla sisteme dahil edilirler. Bu elemanları mikroişlemciden ayıran ana özellik, kendilerine has RAM/ROM veya türevleri belleklere sahip olmalarıdır. Ayrıca bünyelerinde ADC veya DAC sinyal dönüştürücülere de sahiptirler. Sisteminde bellek ve G/Ç elemanı olan mikroişlemci deney setleri de bu özellikleri bünyesinde barındırmaktadır. Mikroişlemci deney setine sahip okulların ayrıca diğer türevlerin setlerini edinmelerine gerek yoktur.

Program Örnekleri

; Altyordam ve kesmelerin kullanımı
  .CODE $0200    
START LDA  #$55    
  SEC    
  SBC  #05    
  JSR   SAP    
  LDA  #$CC    
  TAX    
  TXS    
  JSR   SAP    
  LDX  #$AA    
  JMP  START    
  BRK    
       
SAP LDX  #05    
DEV NOP    
  DEX    
  BNE  DEV    
  RTS    
;Bu bölüm önlenemez kesme bölümüdür
NMI LDA   #00    
  STA   CRA    
  LDA   #$FF    
  STA   DDRA    
  LDA   #04    
  STA   CRA    
  LDA   #0    
NEW INC   ORA    
  BMI   BACK    
  JMP   NEW    
BACK RTI    
;Bu bölüm IRQ kesme bölümüdür
IRQ LDA   #00  
  STA   CRB
  LDA   #$FF
  STA   DDRB
  LDA   #04
  STA   CRB
  LDA   #$CC
  STA   ORB
  LDA   #$33
  STA   ORB
  RTI
       
;IRQ kesme vektör adresi
  .CODE $F3A9    
  JMP IRQ    
;NMI kesme vektör adresi
  .CODE $F3A6    
  JMP NMI    
       
;RES kesme vektör adresi
  .CODE $F319    
  JMP $0200 ;programın başlangıç adresine dön
       
  END ;program sonu  
       
       
       

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Temel mikroişlemci mimarisi, organizasyonu ve bilgisayar yapısının düşük düzeyli programlama dili ile öğretiminde VISUAL6502 MİKROİŞLEMCİ SİMÜLATÖR size yeterli olacaktır.