sublw instruction sonucu result nonzero ise carry bit set mi edilir?

Başlatan loves_oi, 16 Mart 2014, 23:40:25

loves_oi

Merhaba , Pic 16F877 üzerinde çalışıyorum.
Şu linkte gördüm : http://technology.niagarac.on.ca/staff/mboldin/18F_Instruction_Set/SUBLW.html
SUBLW instruction ı kullanılmış ve sonuç nonzero çıkarsa Carry bit set edilmiş. Bu doğru mu Benim pic setim için de bu doğru bir yaklaşım mıdır ? Data sheet ve slide'larda böyle bir bir şey okumadım ilk kez karşılaştığım için şaşakaldım :S

Şimdiden teşekkür ederim yanıtlarınız için...

z

Cary toplama isleminde tasma anlamina gelirken cikartma isleminde cary yerine barrow kullanilir. Ancak Barrow durumu icin status registerde ayrica bit bulunmaz.

Bu durumda barrow carynin tersi olarak dusunulur.

Asagidaki 3 ornege bakarsak;

A   -    A= 0    Barrow=0  Cary=1
2A -    A= A    Barrow=0  Cary=1
A   -  2A=-A    Barrow=1  Cary=0

Cikartma isleminde sonuc sifir ya da pozitif ise Cary=1 olur. Eger sonuc negatif cikarsa Cary=0 olur.

Ya da cikartma isleminde sonuc negatif ise Cary=0 aksi takdirde 1 olur seklide aklinizda tutabilirsiniz.

Barrow ile Cary nin bir birine ters olusundan dolayi cikartma isleminde cary biraz kafa karisikligina neden olur.


 
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

loves_oi

Yani bu işlem , pic modelinden bağımsız değil mi? pic16xxx de olsa pic18 de olsa fark etmez değil mi? Neyin pic modeline bağlı neyin tüm pic modellerinde aynı olduğu ayrımını yapmakta zorlanıyorum , bu yüzden internetteki örnekler üzerinde çalışırken acaba bizim pic'de de durum böyle mi diye 2 kere düşünmek zorunda kalıyorum.
Anlayışınız için tşkler.

Alıntı yapılan: z - 17 Mart 2014, 00:03:27
Cary toplama isleminde tasma anlamina gelirken cikartma isleminde cary yerine barrow kullanilir. Ancak Barrow durumu icin status registerde ayrica bit bulunmaz.

Bu durumda barrow carynin tersi olarak dusunulur.

Asagidaki 3 ornege bakarsak;

A   -    A= 0    Barrow=0  Cary=1
2A -    A= A    Barrow=0  Cary=1
A   -  2A=-A    Barrow=1  Cary=0

Cikartma isleminde sonuc sifir ya da pozitif ise Cary=1 olur. Eger sonuc negatif cikarsa Cary=0 olur.

Ya da cikartma isleminde sonuc negatif ise Cary=0 aksi takdirde 1 olur seklide aklinizda tutabilirsiniz.

Barrow ile Cary nin bir birine ters olusundan dolayi cikartma isleminde cary biraz kafa karisikligina neden olur.




Tagli

loves_oi, bağlantısını verdiğin site zaten kaynak olarak datasheet'i kullanmış. Bildiğim kadarıyla tüm işlemciler çıkarma işlemini aynı mantıkla yapıyor. Bu arada, çıkarma işleminin sonucu pozitif çıkarsa C biti 1 olarak kalır demek daha doğru olur. Yani A-B işleminde A'nın 9 bit olduğunu ve bu en büyük 9. bitin C = 1 olduğunu düşün.
Gökçe Tağlıoğlu