Assembler'da Pagesel directive'i niye çalışmıyor

Başlatan bsivgin, 09 Mart 2005, 11:23:58

bsivgin

pagesel directive ilgili page'in sayfa seçim bitlerini set etmiyor


org 0x30
   movlw d'2'
   pagesel yukle
   call yukle
   movwf portb
   goto $
     .
     .
     .
   org 0x300
yukle
   addwf pcl
   retlw d'12'
   retlw d'26'
   retlw d'35'
   retlw d'13'
   retlw d'46'

arslan74

Mehaba,

Kendin macro oluşturarak bu işi yapabilirsin.

PAGE0   MACRO
   BCF   PCLATH,3
   BCF   PCLATH,4
   ENDM

PAGE1   MACRO
   BSF   PCLATH,3
   BCF   PCLATH,4
   ENDM

PAGE2   MACRO
   BCF   PCLATH,3
   BSF   PCLATH,4
   ENDM

PAGE3   MACRO
   BSF   PCLATH,3
   BSF   PCLATH,4
   ENDM

bsivgin

macro yapmayı biliyorum. Ama ben pagesel komutunun neden çalışmadığını merak ediyorum.

Aslında asıl yapmak istediğim şu yaptığım bir macro içindeki retlw komutunu (tablo okumak için) kullandığım zaman ve bu makroyu başka bir sayfaya koyunca sorun çıkıyor.

Saygılarımla
Bülent ŞIVGIN
www.diyot.com

SpeedyX

rom diye birşey vardı
rom xxxxx,yyyy
şeklinde. bunun altındakileri bu aralığa yaz diye birşey ararsan bulursun.

elektromer

Alıntı yapılan: "bsivgin"pagesel directive ilgili page'in sayfa seçim bitlerini set etmiyor


org 0x30
   movlw d'2'
   pagesel yukle
   call yukle
   movwf portb
   goto $
     .
     .
     .
   org 0x300
yukle
   addwf pcl
   retlw d'12'
   retlw d'26'
   retlw d'35'
   retlw d'13'
   retlw d'46'

Merhaba,

Yukarıda verdiğin kodlarda görüldüğü gibi, yukle alt dongusünü yalnızca bir yerden çağıracaksan şöyle değiştirebilirsin. gecici adlı bir değişken gerekiyor.

basla
   org   0x30
   movlw   d'2'
   movwf   gecici      ;
   movlw   HIGH yukle   ;
   movwf   pclath      ;

   call   yukle
   movf   gecici,w      ;
   movwf   portb
   goto   $
   .
   .
   .
   org   0x300
yukle
   movf   gecici,w      ;
   call   yukle1
   movwf   gecici      ;
   movlw   HIGH basla   ;
   movwf   pclath      ;
   return   
yukle1

   addwf   pcl
   retlw   d'12'
   retlw   d'26'
   retlw   d'35'
   retlw   d'13'
   retlw   d'46'

şeklinde olur. PAGESEL komutunun düzgün çalışmamasına gelince bende bilmiyorum. Aynı durum BANKSEL komutunda karşıma çıkmıştı. Makro yazarak çözümledim.

Aslında sorunun tam cevabı değil ama, ilgilenen arkadaşlara Assembler olarak örnek olması için yazdım.

Saygılarımla..
Her şey gönlünüzce olsun..

bsivgin

Sayın Elektrometer verdiğin bilgi çok işime yaradı. Ben bu aralar makroların gücünü test etmeye çalışıyorumda.

Saygılarımla
Bülent ŞIVGIN
www.diyot.com

bigbey

org 0x30
movlw d'2'
pagesel yukle
call yukle
movwf portb
goto $
.
.
.
org 0x300
yukle
CALL    TABLO
PAGESEL  0
RETURN

TABLO
addwf pcl
retlw d'12'
retlw d'26'
retlw d'35'
retlw d'13'
retlw d'46'
TA6R