Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

RRF veya RLF komutu

Başlatan ahmetinrodisi, 11 Kasım 2005, 12:30:38

ahmetinrodisi

merhaba arkadaşlar.RRF komutunu bir türlü tam olarak öğrenemedim.Takıldığım nokta şu:
Herhangi bir sayıyı RRF yaptığımız zaman 0. bit CARRY bitine kayıyor.Peki bundan sonra CARRY biti bu sayıyı mı 7. bite taşıyor? yoksa,CARRY daha önce yüklü olduğu sayıyı mı 7. bite aktarıyor?

Bana bir örnekle açıklayabilirmisiniz mesala B'0101 1101'
bu sayıyı bana ardarda 5,6 defa RRF yaparsanız sanırım çok iyi anlayacam.Teşekürler şimdiden hepinize.

Erol YILMAZ

Ahmet bu tur ayrıntıları goreblmek icin Pic simulator Ide yi kullanabilirsin.
www.oshonsoft.com

memed52

RRF ile register icerigini bir sağa taşiyorsunuz başka bir deyişle değeri ikiye bölüyorsunuz. RRF komutu işenmeden evvelki carry bit degeri en üst bite taşınır komut işlenince. Yeni carry bit değerinizde registerinizin en düşük bitinin degerini alır.

Örnek:
MOVLW   B'00000001'
MOVWF   TESTBYTE   ;testbyte içerigi .1

BCF   STATUS,CARRY   CARRY BİT 0 ; caryy bit 0 setliyoruz
RRF    TESTBYTE,F   TESTBYTE = '00000000' CARRY BİT= 1
RRF   TESTBYTE,F   TESTBYTE = '10000000' CARRY BİT= 0

Birinci kaydirmada carry bit '0' olduğu için soldan MSB olarak testbyte registerine eklendi.

Bu işlemde Testbyte in LSB biti 1 idi buda caryybite yüklendi.

İkinci kaydırmada carybit 1 degerini soldan testbyte yüklendi MSB değeri olarak.

Kolay gelsin.

ahmetinrodisi

Çok teşekürler arkadaşlar.Verdiğiniz bilgiler çok iyi.Nihayet artık bu komutun nasıl işlediğini öğrenebildim.Tekrar teşekürler hepinize.

ahmetinrodisi

Merhaba.Erol dediğin siteye baktım.Hatta ordan Pic simulator Ide 5.5 indirdim.Fakat Crack lemek gerekiyor.İnternette araştırmama rağmen Versiyon 5.22 den yukarı crack bulamadım.Eğer sende varsa yada bildiğin bir adres varsa gonderirsen çok sevinirim.Teşekürler.

Erol YILMAZ

Uzun suredir bu programi kullanmiyorum.
5.22 kirici programi bunun icinde calisabilir.
Sanirim sadece Reg. de biryerlere bir-iki bilgi yaziyor.
Dene, olmazsa eski versiyon Simulator arayayim....

ahmetinrodisi

Sağol Erol.Mesajı atmadan 5.11 ve 5.22 için denemiştim.İkisindede "wrong file size" veriyor.Kazaa,emule yada başka p2p  kurulu ise ordan bir bak.Benim 56 k ile hiç bişey yapamıyorum.Olmazsa dediğin gibi eski versiyonu bulup oyle yaparız artık.Bide sana şey sorayım.Bu programda LCD nin ayarlarını yapmama rağmen kendi LCD.hex örneğini çalıştırdığımda bile LCD de hiçbişey çıkmıyor..Acaba başka bir yerde başka ayarımı var?.Teşekürler.

Erol YILMAZ

Alıntı yapılan: "ahmetinrodisi"Bu programda LCD nin ayarlarını yapmama rağmen kendi LCD.hex örneğini çalıştırdığımda bile LCD de hiçbişey çıkmıyor..Acaba başka bir yerde başka ayarımı var?.Teşekürler.

LCD simulasyonu calisiyor. Daha once denedim. Pin baglantilarinda hatan olabilir? Veya ayni progu bir de ISIS te denermisin?

5.33 versiyonunu indiriyorum. aksilik olmazsa Rapidshare e upload ederim.

ahmetinrodisi

soğol erol.Link ini bekliyorum.İsis de çalıştırmam için devrenin şemasını çizmem gerek değilmi?Ama 10 kere bağlantıları kontrol ettim.Acaba crackleyemediğim için olabilirmi?.Çok teşekürler yardımların için.

Erol YILMAZ


ahmetinrodisi

Sağol Erol.Şimdi indiriyorum. Vee indi.Erol senin bana verdiğin crack  var ya, versiyon 5.5 i de kırıyor.Tekrar teşekürler vallahi yardımların için.

engin_

Benim sormak istediğim de RRF ile ilgili. Aşağıdaki kod parçasına bakarsak;
--------------------------------------------------------------------------------
...
      call   CalcParity   ;calculate parity
      rrf   CalcParity,W   ;get parity bit in carry flag
...
--------------------------------------------------------------------------------
...
CalcParity:   
Bank0         ;select bank 0
      movwf   ParityByte   ;get data for parity calculation
...
--------------------------------------------------------------------------------

Görüldüğü üzere "CalcParity" bir alt program. "rrf CalcParity,W" Alt programlara bu komut uygulanabiliyor mu?

Derledim hata vermiyor. Bana ilginç geldi. Bu nasıl mümkün oluyor.

z

Derleyici yeterince akıllı değilse olabilir.

Önemli olan, parametrenin sayısal bir karşılığı varmı yokmu.

CALL CalcParity komut satırında CallParity, program alanının adresidir.

RRF CalcParity,W ise, Ramdeki CalcParity adresindeki veriyi kullanarak döndürme yap demektir.

Bu durumda derleyici, CallParity adresinin sayısal değerini tıraşlayıp Ramda adres olarak kullanacak demektir.

Derleme açısından sorun yok ancak yapılmak istenen bu olmamalı.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

engin_

Garip bir durum. Bu hatayı nasıl yapmışlar acaba. Bu örnek microchip'in usart ile ilgili uygulama notlarının bir kısmında geçiyor. Aslında bana garip gelen bir şey daha var. Demek ki fazla güvenmemek lazım.

z

Sıradan bir yazım hatası. Onlarda insan.

RRF Getparity,w  benzeri bir şey yazacaklarına
RRF Callcparity,w yazılmış.

Sözkonusu derleyiciyi açıkcası bilmiyorum. Ancak, yeterince akıllı bir derleyici için Label adresi ile Ramda değişken adının aynı olması sorun olmamalı. (İstisnalar da yok değil)

Bu durumda verdikleri kod hatalı olmayacaktır.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com