8x8 asembl basit tecrübe amaclı kayan yazı

Başlatan mrtclk0891, 27 Haziran 2009, 17:29:13

mrtclk0891

LIST   P=16F84A
   
   INCLUDE   P16F84A.INC


UZUNLUK EQU   0x20
SÜRE   EQU   0x21
SAYAÇ   EQU   0x22   
KAYSAY   EQU   0x23
SAYAÇ2   EQU   0x24
SAYAÇ3   EQU   0x25
DEPO   EQU   0x0D
ALT   EQU   0x0E
ÜST   EQU   0x0F
SHSAY   EQU   0x10
ALTİLK   EQU   0x11
ÜSTİLK   EQU   0x12


#DEFINE   DAT   PORTA,2
#DEFINE   CLK   PORTA,3


   ORG   0x0000
   GOTO   KUR


TABLO   ADDWF   PCL,F
   RETLW   B'00000000'   ;0
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'   ;10
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'

   RETLW   B'01111110'
   RETLW   B'00001001'   ;20
   RETLW   B'00001001'   
   RETLW   B'00001001'
   RETLW   B'01111110'
   RETLW   B'00000000'
   RETLW   B'01111111'
   RETLW   B'01001001'
   RETLW   B'01001001'
   RETLW   B'01001001'
   RETLW   B'00110110'
   RETLW   B'00000000'
   RETLW   B'00111110'
   RETLW   B'01000001'
   RETLW   B'01000001'
   RETLW   B'01000001'
   RETLW   B'00100010'
   RETLW   B'00000000'
   RETLW   B'01111111'
   RETLW   B'01000001'
   RETLW   B'01000001'
   RETLW   B'01000001'
   RETLW   B'00111110'
   RETLW   B'00000000'
   RETLW   B'01111111'
   RETLW   B'01001001'
   RETLW   B'01001001'
   RETLW   B'01001001'
   RETLW   B'01000001'
   RETLW   B'00000000'
   RETLW   B'01111111'
   RETLW   B'00001001'
   RETLW   B'00001001'
   RETLW   B'00001001'
   RETLW   B'00000001'
   RETLW   B'00000000'
   RETLW   B'00111110'
   RETLW   B'01000001'
   RETLW   B'01001001'
   RETLW   B'01001001'
   RETLW   B'00110010'
   RETLW   B'00000000'
   RETLW   B'01111111'
   RETLW   B'00001000'
   RETLW   B'00001000'
   RETLW   B'00001000'
   RETLW   B'01111111'
   RETLW   B'00000000'
   RETLW   B'01000001'
   RETLW   B'01111111'
   RETLW   B'01000001'
   RETLW   B'00000000'
   RETLW   B'00100000'
   RETLW   B'01000000'
   RETLW   B'01000001'
   RETLW   B'00111111'
   RETLW   B'00000001'

   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'   
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'   
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'00000000'
   RETLW   B'11111111'   

KUR   BSF   STATUS,5   ;BANK1
   CLRF           TRISB
   MOVLW   B'11110011'
   MOVWF   TRISA
   BCF           STATUS,5   ;BANK0
   BSF           CLK

BAŞLA   
   CLRF   KAYSAY   

   MOVLW   .20
   MOVWF   SÜRE

DÖN   
   MOVLW   B'00000001'
   MOVWF   ALTİLK
   CLRF   ÜSTİLK
;1
   MOVF   KAYSAY,W
   MOVWF   UZUNLUK   
   MOVF   UZUNLUK,W
   CALL     TABLO
   MOVWF   DEPO
   MOVF   DEPO,W
   XORLW   0xFF
   BTFSC   STATUS,Z   ;SON SATIR MI
   GOTO   BAŞLA      ;EVET
   CALL    SHIFT
   MOVF   DEPO,W
   MOVWF   PORTB
   CALL    BEKLE
   INCF           UZUNLUK,F
;2
   MOVF   UZUNLUK,W
   CALL          TABLO
   MOVWF   DEPO
   MOVF   DEPO,W
   XORLW   0xFF
   BTFSC   STATUS,Z   ;SON SATIR MI
   GOTO   BAŞLA      ;EVET
   CALL           SHIFT
   MOVF   DEPO,W
   MOVWF   PORTB
   CALL           BEKLE
   INCF           UZUNLUK,F
;3
   MOVF   UZUNLUK,W
   CALL           TABLO
   MOVWF   DEPO
   MOVF   DEPO,W
   XORLW   0xFF
   BTFSC   STATUS,Z   ;SON SATIR MI
   GOTO   BAŞLA      ;EVET
   CALL          SHIFT
   MOVF   DEPO,W
   MOVWF   PORTB
   CALL           BEKLE
   INCF           UZUNLUK,F
;4
   MOVF   UZUNLUK,W
   CALL           TABLO
   MOVWF   DEPO
   MOVF   DEPO,W
   XORLW   0xFF
   BTFSC   STATUS,Z   ;SON SATIR MI
   GOTO   BAŞLA      ;EVET
   CALL           SHIFT
   MOVF   DEPO,W
   MOVWF   PORTB
   CALL     BEKLE
   INCF           UZUNLUK,F
;5
   MOVF   UZUNLUK,W
   CALL           TABLO
   MOVWF   DEPO
   MOVF   DEPO,W
   XORLW   0xFF
   BTFSC   STATUS,Z   ;SON SATIR MI
   GOTO   BAŞLA      ;EVET
   CALL           SHIFT
   MOVF   DEPO,W
   MOVWF   PORTB
   CALL     BEKLE
   INCF           UZUNLUK,F
;6
   MOVF   UZUNLUK,W
   CALL           TABLO
   MOVWF   DEPO
   MOVF   DEPO,W
   XORLW   0xFF
   BTFSC   STATUS,Z   ;SON SATIR MI
   GOTO   BAŞLA      ;EVET
   CALL           SHIFT
   MOVF   DEPO,W
   MOVWF   PORTB
   CALL           BEKLE
   INCF     UZUNLUK,F
;7
   MOVF   UZUNLUK,W
   CALL           TABLO
   MOVWF   DEPO
   MOVF   DEPO,W
   XORLW   0xFF
   BTFSC   STATUS,Z   ;SON SATIR MI
   GOTO   BAŞLA      ;EVET
   CALL           SHIFT
   MOVF   DEPO,W
   MOVWF   PORTB
   CALL           BEKLE
   INCF           UZUNLUK,F
;8
   MOVF   UZUNLUK,W
   CALL           TABLO
   MOVWF   DEPO
   MOVF   DEPO,W
   XORLW   0xFF
   BTFSC   STATUS,Z   ;SON SATIR MI
   GOTO   BAŞLA      ;EVET
   CALL          SHIFT
   MOVF   DEPO,W
   MOVWF   PORTB
   CALL           BEKLE
   INCF           UZUNLUK,F
;9
   MOVF   UZUNLUK,W
   CALL          TABLO
   MOVWF   DEPO
   MOVF   DEPO,W
   XORLW   0xFF
   BTFSC   STATUS,Z   ;SON SATIR MI
   GOTO   BAŞLA      ;EVET
   CALL           SHIFT
   MOVF   DEPO,W
   MOVWF   PORTB
   CALL           BEKLE
   INCF          UZUNLUK,F
;10
   MOVF   UZUNLUK,W
   CALL      TABLO
   MOVWF   DEPO
   MOVF   DEPO,W
   XORLW   0xFF
   BTFSC   STATUS,Z   ;SON SATIR MI
   GOTO   BAŞLA      ;EVET
   CALL           SHIFT
   MOVF   DEPO,W
   MOVWF   PORTB
   CALL           BEKLE
   INCF           UZUNLUK,F
;11
   MOVF   UZUNLUK,W
   CALL           TABLO
   MOVWF   DEPO
   MOVF   DEPO,W
   XORLW   0xFF
   BTFSC   STATUS,Z   ;SON SATIR MI
   GOTO   BAŞLA      ;EVET
   CALL           SHIFT
   MOVF   DEPO,W
   MOVWF   PORTB
   CALL           BEKLE
   INCF           UZUNLUK,F
;12
   MOVF   UZUNLUK,W
   CALL           TABLO
   MOVWF   DEPO
   MOVF   DEPO,W
   XORLW   0xFF
   BTFSC   STATUS,Z   ;SON SATIR MI
   GOTO   BAŞLA      ;EVET
   CALL           SHIFT
   MOVF   DEPO,W
   MOVWF   PORTB
   CALL           BEKLE
   INCF           UZUNLUK,F
;13
   MOVF   UZUNLUK,W
   CALL           TABLO
   MOVWF   DEPO
   MOVF   DEPO,W
   XORLW   0xFF
   BTFSC   STATUS,Z   ;SON SATIR MI
   GOTO   BAŞLA      ;EVET
   CALL     SHIFT
   MOVF   DEPO,W
   MOVWF   PORTB
   CALL           BEKLE
   INCF    UZUNLUK,F
;14
   MOVF   UZUNLUK,W
   CALL    TABLO
   MOVWF   DEPO
   MOVF   DEPO,W
   XORLW   0xFF
   BTFSC   STATUS,Z   ;SON SATIR MI
   GOTO   BAŞLA      ;EVET
   CALL    SHIFT
   MOVF   DEPO,W
   MOVWF   PORTB
   CALL    BEKLE
   INCF         UZUNLUK,F
;15
   MOVF   UZUNLUK,W
   CALL    TABLO
   MOVWF   DEPO
   MOVF   DEPO,W
   XORLW   0xFF
   BTFSC   STATUS,Z   ;SON SATIR MI
   GOTO   BAŞLA      ;EVET
   CALL           SHIFT
   MOVF   DEPO,W
   MOVWF   PORTB
   CALL           BEKLE
   INCF    UZUNLUK,F
;16
   MOVF   UZUNLUK,W
   CALL           TABLO
   MOVWF   DEPO
   MOVF   DEPO,W
   XORLW   0xFF
   BTFSC   STATUS,Z   ;SON SATIR MI
   GOTO   BAŞLA      ;EVET
   CALL    SHIFT
   MOVF   DEPO,W
   MOVWF   PORTB
   CALL    BEKLE
   INCF           UZUNLUK,F

   DECFSZ   SÜRE,F
   GOTO   DÖN
   MOVLW   .20
   MOVWF   SÜRE
   INCF           KAYSAY,F
   GOTO   DÖN
   
;----
SHIFT
   MOVLW   0x00
   MOVWF   PORTB
   CALL           KAYDIR
   MOVF   ALTİLK,W
   MOVWF   ALT
   MOVF   ÜSTİLK,W
   MOVWF   ÜST
   MOVLW   .16
   MOVWF    SHSAY
   BCF            STATUS,C
SDÖN   
   RLF             ALT,F
   RLF             ÜST,F
   BTFSS     STATUS,C
   GOTO      $+3
   BSF              DAT
   GOTO      DEVAM
   BCF               DAT
DEVAM
   NOP
   NOP
   NOP
   BCF   CLK
   NOP
   NOP
   NOP
   BSF   CLK
   NOP
   NOP
   NOP
   DECFSZ   SHSAY,F
   GOTO   SDÖN
   RETURN
;----
KAYDIR
   BCF            STATUS,C
   RRF            ÜSTİLK,F
   RRF        ALTİLK,F
   BTFSS   STATUS,C
   GOTO   $+3
   BSF       ÜSTİLK,7
   RETURN
   BCF            ÜSTİLK,7
   RETURN

BEKLE
   MOVLW   .5
   MOVWF   SAYAÇ2
   MOVLW   .41
   MOVWF   SAYAÇ3
   DECFSZ   SAYAÇ3,F
   GOTO   $-1
   DECFSZ   SAYAÇ2,F
   GOTO   $-5
   RETURN
   
   END
   
   
   
   
Alıntı Yap[code][fade]

Tagli

Elbette forumda kod paylaşmak güzel birşey ama sadece kodu alıp buraya yapıştırmanın pek faydası olmaz. En azından konuyla ilgili bir paragraflık bir açıklama ve mümkünse devre şeması bulunması gerekir. Ayrıca her türlü programlama işinde kodun içinde gerekli yorumların bulunması gerekir. Bu ihtiyaç assembly'de diğer dillere göre çok daha belirgindir. Başkasının yazdığı yorumsuz kodu anlamaya çalışmaktansa o kodu yeniden yazmak bence daha kolay olur. Hatta ben bazen uzun zaman önce yazdığım ve her satırına yorum eklenmiş kodlarımı (assembly kodları) anlamakta bile zorlanıyorum.
Gökçe Tağlıoğlu

murbay

Bu kodlar denendi mi?
Türkçe karakter barındırıyor, Türkçe karakterleri hangi program derliyor?
Açıklayıcı olun, gizemli yazmak maharet değildir...

eseneren

mrtclk0891 Eline saglık baslıgı gorunce heveslenıp hemen baktım merak ettıgım bırsey vardı.
ama kodu cozmek ıcın ugrasmaktansa yenıden yazmak daha kolay, keske yanına basına bır yerlere acıklamalar yazsa ıdın.
Bundan 2 sene sonra bu kodları sen okudugunda emınım sende anlamayacaksın :)
Yanlıs anlasılmasın elestırmek degıl nıyetım ama notlar olsaydı cok daha faydalı olacak ıdı demeye calısıyorum.
Saygılar
Seçim yapmak için durum hakkında bilgi sahibi olmak zorunda değilsin, sonucuna hazır olmak için durum hakkında kaygılanırsın.  http://bit.ly/gixfTk

eseneren

tarıhe bakmadım amacım konuyu hortlatmak değil idi
Seçim yapmak için durum hakkında bilgi sahibi olmak zorunda değilsin, sonucuna hazır olmak için durum hakkında kaygılanırsın.  http://bit.ly/gixfTk

polo 41

arkadaşım bana bunun devresinide gönderirmisin.lütfen.