Picproje Elektronik Sitesi

DERLEYİCİLER => PIC Assembly => Konuyu başlatan: robikod - 18 Temmuz 2017, 21:46:07

Başlık: Comf ve Rlf komutu
Gönderen: robikod - 18 Temmuz 2017, 21:46:07
Comf komutu secilen bitleri tersine ceviren bir komut bunu comf kullanmadan algoritmasini nasil kurabilirim? Comf kullanmadan asembly ile nasil yazabilirim. Ayni sey RLF icinde gecerli bit kaydirma islemini RLF kullanmadan nasil yaparim ?
Başlık: Ynt: Comf ve Rlf komutu
Gönderen: sadogan - 18 Temmuz 2017, 22:13:07
1 ile xor yaparsanın tersini alır.
Başlık: Ynt: Comf ve Rlf komutu
Gönderen: robikod - 19 Temmuz 2017, 21:55:29
Guncel
Başlık: Ynt: Comf ve Rlf komutu
Gönderen: robikod - 19 Temmuz 2017, 22:00:59
Alıntı yapılan: sadogan - 18 Temmuz 2017, 22:13:07
1 ile xor yaparsanın tersini alır.
1 ile nasil xor yapacagim peki? 1111 1111 ile mi?
Başlık: Ynt: Comf ve Rlf komutu
Gönderen: RaMu - 20 Temmuz 2017, 02:30:25
EXOR
Evet 1111 1111 ile exor layacaksın (sayı 8 bit ise)



RLF basamakları bir BİT sola kaydırdığı için,
ikilik tabanda bir basamak sola kayan sayı,
onluk tabanda düşününce 2 ile çarpılmış olur anlamına gelir.


Yani sayıya kendisini eklersen,
1 defa RLF yapmış olursun.


Yeni sayıya yine kendisini eklersen
yine bir defa daha sola kaydırmış olursun,
artık ne kadar kaydırma yapmak istersen ...


Ödev mi?
Başlık: Ynt: Comf ve Rlf komutu
Gönderen: XX_CİHAN_XX - 20 Temmuz 2017, 08:56:57
RLF için sayıyı 2 ile çarpmak, RRF için sayıyı 2 ye bölmek ve COMF için de arkadaşların dediği gibi 1 ile XOR'lamak  işini görür.
sayıyı n kez kaydırmak istiyorsan 2^n ile çarpacaksın veya böleceksin.
Başlık: Ynt: Comf ve Rlf komutu
Gönderen: sadogan - 20 Temmuz 2017, 09:12:14
Pic in hangi serisi ? 18F ve daha üstü serilerde var kaydırma. Düşük serilerde yok.
Başlık: Ynt: Comf ve Rlf komutu
Gönderen: XX_CİHAN_XX - 20 Temmuz 2017, 09:26:50
Olur mu hocam düşük serilerde de var.
Başlık: Ynt: Comf ve Rlf komutu
Gönderen: sadogan - 20 Temmuz 2017, 14:15:13
Alıntı yapılan: sadogan - 20 Temmuz 2017, 09:12:14
Pic in hangi serisi ? 18F ve daha üstü serilerde var kaydırma. Düşük serilerde yok.
Yanlış yazmışım,
Pic in hangi serisi ? 18F ve daha üstü serilerde var çapma ve bölme. Düşük serilerde yok.
Başlık: Ynt: Comf ve Rlf komutu
Gönderen: XX_CİHAN_XX - 20 Temmuz 2017, 15:50:04
Evet düşük serilerde donanımsal çarpma veya bölme yok. Soruyu soran arkadaşın kaydırmalara alternatif yöntem arayışına cevaben yazdım. Eğer düşük serilerde çalışacak ise iteratif toplama ve çıkarmalarla soft olarak çarpma veya bölme yapılabilir.
Başlık: Ynt: Comf ve Rlf komutu
Gönderen: robikod - 20 Temmuz 2017, 21:57:27
Teşekkürler cevap için,
COMF için şu şekilde yapmam doğru mu ?

MOVLW b'11111111'
XORWF b'00001111'
MOVWF PORTB

Bir de 2 ile çarpma ve bölmeyi çarpma işlemi için o kadar toplarım diye düşündüm bölme işlemi biraz karışıyor nasıl yapabilirim peki onu ?
Başlık: Ynt: Comf ve Rlf komutu
Gönderen: robikod - 20 Temmuz 2017, 22:00:15
Alıntı yapılan: RaMu - 20 Temmuz 2017, 02:30:25
EXOR
Evet 1111 1111 ile exor layacaksın (sayı 8 bit ise)



RLF basamakları bir BİT sola kaydırdığı için,
ikilik tabanda bir basamak sola kayan sayı,
onluk tabanda düşününce 2 ile çarpılmış olur anlamına gelir.


Yani sayıya kendisini eklersen,
1 defa RLF yapmış olursun.


Yeni sayıya yine kendisini eklersen
yine bir defa daha sola kaydırmış olursun,
artık ne kadar kaydırma yapmak istersen ...


Ödev mi?
Hayır ödev değil.

Sayıya kendisini eklediğimde taşma olduğunda zero bayrağını kontrol edip, w registerine 1 eklemek gerekiyor mu ?
Aynı şekilde rrf için kendini çıkarmamız yeterli olur mu ?
Başlık: Ynt: Comf ve Rlf komutu
Gönderen: XX_CİHAN_XX - 21 Temmuz 2017, 09:10:20
@robikod , sadece meraktan soruyorum böyle bir şeye neden ihtiyaç duyuyorsunuz?
Başlık: Ynt: Comf ve Rlf komutu
Gönderen: RaMu - 21 Temmuz 2017, 14:48:35
@robikod bende merak ediyorum neden sorduğunu.

Ben zevkine bakmıştım bu yöntemlere,
normalde kullanımı olan-olacak şeyler değil,
mcu nun döndürme vs. komutunun olmaması mümkün değil denebilir.

Alıntı Yap
MOVLW b'11111111'
XORWF b'00001111'
MOVWF PORTB


Neyi COMF yapmak istiyorsun burada?

XORWF komutunun karşısında her zaman
bir F (File) registerı [yani RAM değişkeni]  olmalı.

Sayıdan kenidini çıkarırsan, sonuç 0 Sıfır olur demi.
Başlık: Ynt: Comf ve Rlf komutu
Gönderen: robikod - 24 Temmuz 2017, 18:32:38
Alıntı yapılan: XX_CİHAN_XX - 21 Temmuz 2017, 09:10:20
@robikod , sadece meraktan soruyorum böyle bir şeye neden ihtiyaç duyuyorsunuz?


Mantığını anlamak için
Başlık: Ynt: Comf ve Rlf komutu
Gönderen: RaMu - 24 Temmuz 2017, 20:13:07
Mantığı donanımsal;
Ratate komutu için:
Parallel in Parallel Out Shift Register,
74LS395 i örnek olarak inceleyebilirsin.


Nerede nasıl kullanılır manasında mantığını soruyorsan o ayrı.