Haberler:

[move]Türkiye'nin Elektronik ve Metal Dedektörlerini Buluşturan İlk Sitesi Teknoloji Ekibi'ne Hoş Geldiniz.[/move]

Ana Menü

6502 Örnek programlar

Başlatan Uykusuz, 07 Kasım 2008, 20:13:48

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Uykusuz

Merhaba, Arkadaşlar vizeye hazırlık olarak yazdığım örnek programları yararlı olacağını düşünerek bu başlık altında yayınlayacağım. Diğer arkadaşların da katkılarını bekliyorum.

0' dan 100'e kadar olan sayıların toplamını hesaplayan program:

      .CODE      $200
      LDX      #$00      ;X E SIFIR YÜKLENDİ
      STX      $20      ;TOPLAM_L
      STX      $21      ;TOPLAM_H
TOPLA   TXA            ;X'İ A'YA TAŞI
      CLC            ;ELDYİ TEMİZLE
      ADC      $20      ;X İLE 20H. REGISTERIN İÇERİĞİNİ TOPLA
      STA      $20      ;SONUCU 20H.REGISTERE YAZ
      LDA      #$00      ;A ICERIGI SIFIRLANDI
      ADC      #$00      ;A DA ELDE BILGISI VAR
      ADC      $21      ;ELDE BILGISI İLE 21H İÇERİĞİNİ TOPLA
      STA      $21      ;SONUCU 21H REGİSTERİNE KAYDET
      INX            ;X'İN İÇERİĞİNİ 1 ARTTIR
      CLC            ;C Yİ TEMİZLE
      CPX      #$64       ;100 DEFA TOPLANDI MI
      BCC      TOPLA   ;HAYIR. O HALDE TOPLAMAYA DEVAM ET
      BRK
      END
Linkback: 6502 Örnek programlar

remzi

Yanlış anlamayın ama neden hala 6502 veya Z80 anlatırlar anlamadım... 8051,pic,arm dururken...

Uykusuz

#2
İlk zamanlar ben de böyle düşünüyordum. PIC ile ciddi sayılabilecek projeler çıkarmış biri olarak bu dersi almaya başlayınca bazı şeylerin mantığını bilmediğimin, aslında onları ezbere yaptığımın farkına vardım. 6502 basit yapısı ile Mikroişlemcilerin yapısını, çalışma prensibini anlamaya birebir.

remzi

Doğru diyorsunuz bende ilkönce öyle düşünüyordum. PIC bilirken 8051 öğretmeye çalışıyorlardı. Ama daha sonradan şunu anladım. Madem mikroişlemci mimarisini anlatıyorsun neden en iyisini öğretmiyorsun? Örneğin ARM 7

Uykusuz

Okul boyunca tüm zaman 6502'ye ayrılmayıp üst seviye denetleyicilere doğru basamak basamak ilerlemeli bir yol izlense gerçekten çok iyi olurdu.  Herneyse...

Bu bir önceki örneğin sadece çift sayıları toplayan versiyonu:

      .CODE      $200
      LDX      #$00      ;X E SIFIR YÜKLENDİ
      STX      $20      ;TOPLAM_L
      STX      $21      ;TOPLAM_H
TOPLA   TXA            ;X'İ A'YA TAŞI
      CLC            ;ELDYİ TEMİZLE
      ADC      $20      ;X İLE 20H. REGISTERIN İÇERİĞİNİ TOPLA
      STA      $20      ;SONUCU 20H.REGISTERE YAZ
      LDA      #$00      ;A ICERIGI SIFIRLANDI
      ADC      #$00      ;A DA ELDE BILGISI VAR
      ADC      $21      ;ELDE BILGISI İLE 21H İÇERİĞİNİ TOPLA
      STA      $21      ;SONUCU 21H REGİSTERİNE KAYDET
      INX            ;X'İN İÇERİĞİNİ 1 ARTTIR
      INX            ;X'İN İÇERİĞİNİ 1 ARTTIR     
      CLC            ;C Yİ TEMİZLE
      CPX      #$64       ;100 DEFA TOPLANDI MI
      BCC      TOPLA   ;HAYIR. O HALDE TOPLAMAYA DEVAM ET
      BRK
      END


Bu da sadece tek sayıları toplayanı:


      .CODE      $200
      LDX      #$00      ;X E SIFIR YÜKLENDİ
      STX      $20      ;TOPLAM_L
      STX      $21      ;TOPLAM_H
      INX
TOPLA   TXA            ;X'İ A'YA TAŞI
      CLC            ;ELDYİ TEMİZLE
      ADC      $20      ;X İLE 20H. REGISTERIN İÇERİĞİNİ TOPLA
      STA      $20      ;SONUCU 20H.REGISTERE YAZ
      LDA      #$00      ;A ICERIGI SIFIRLANDI
      ADC      #$00      ;A DA ELDE BILGISI VAR
      ADC      $21      ;ELDE BILGISI İLE 21H İÇERİĞİNİ TOPLA
      STA      $21      ;SONUCU 21H REGİSTERİNE KAYDET
      INX            ;X'İN İÇERİĞİNİ 1 ARTTIR
      INX            ;X'İN İÇERİĞİNİ 1 ARTTIR     
      CLC            ;C Yİ TEMİZLE
      CPX      #$64       ;100 DEFA TOPLANDI MI
      BCC      TOPLA   ;HAYIR. O HALDE TOPLAMAYA DEVAM ET
      BRK
      END

Uykusuz

Girilen üç adet sayının ortalamasını alan program:

      .CODE      $200
      LDA      #$80
      STA      $20   ;BİRİNCİ SAYI
      LDA      #$60
      STA      $21   ;İKİNCİ SAYI
      LDA      #$20
      STA      $22   ;ÜÇÜNCÜ SAYI
      
      LDA      #$00
      STA      $23   ;TOPLAM_L
      STA      $24   ;TOPLAM_H 
      STA      $25   ;ORTALAMA 
      
      CLC
      LDA      $20   
      ADC      $21
      STA      $23   ;ILK IKI SAYININ TOPLAMI
      LDA      #$00   
      ADC      $24
      STA      $24   ;TASMA VARSA TOPLAM_H BIR ARTTIRILDI
      CLC
      LDA      $23
      ADC      $22
      STA      $23
      LDA      #$00
      ADC      $24    ;...........................
      STA      $24
DEVAM      LDA      $23
      CLC
      CMP      #$3
      BCC      NEGATIF
      SBC      #$3
      STA      $23
      INC      $25
      JMP      DEVAM      
NEGATIF      SBC      #$3
      STA      $23
      CLC
      LDA      $24
      CMP      #$1
      BCC      NEGATIF2
      SBC      $24
      STA      $24
      INC      $25
      JMP      DEVAM         
NEGATIF2   BRK
      END

Uykusuz

#6
6502 ders notları:

Düzenleme:
21 Haziren 2009
Link Yenilendi.

http://www.savefile.com/files/2134865


Paylaş whatsappPaylaş facebookPaylaş linkedinPaylaş twitterPaylaş myspacePaylaş redditPaylaş diggPaylaş stumblePaylaş technoratiPaylaş delicious