Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Konuyu başlatan: refikos - 05 Nisan 2018, 14:29:54

Başlık: ASSEMBLY DİLİ YARDIM
Gönderen: refikos - 05 Nisan 2018, 14:29:54
 merhaba keilde bunları yazarken ;
LDR r0,=2_01100001
LDR r1,=2_10011111
ADD r2,r1,r0
r0'ın decimal karşılğı 97 r1'in ise 2ye tamamlama yoluyla -lisini aldım yani -97 ,ama bu sayı aynı zamanda
159 yani şimdi benim 97 ile -97'yi toplamam için ne yapmam, 97 ile 159'u toplamam için ne yapmam lazım ?
Başlık: Ynt: ASSEMBLY DİLİ YARDIM
Gönderen: yas - 05 Nisan 2018, 17:21:45
ASM ile kod yazmıyorum ama yapman gereken 8 bitlik data boyutundan 16 bitlik olana geçmelisin ki 159 rakamını işleye bilesin. 8 bitlik değişken boyutu ile işaretli olarak işlem yapacaksan -128 ile 127 arasındaki tam sayıları işleyebilirsin. Bu durumda yapacağın işlemin mutlak değeri 128 i taşmaması gerekli. Son bit yani 7. bit işaret olarak kullanılmakta sayı pozitif mi negatif mi bu bit kontrol edilerek anlaşılmakta.
Başlık: Ynt: ASSEMBLY DİLİ YARDIM
Gönderen: Kabil ATICI - 05 Nisan 2018, 22:21:31
asm komut  setine bakarsanız, size daha fazla yardımcı olacaktır.
Örneğin, 1 bayt değerini aşarsa c elde biti taşar, elde biti taşarsa, eldeli toplama komutunu kullanacaksınız, böylece değeriniz 1 bayt değil 2 bayt olarak yoluna devam edecek. (ADC komutu eldeli toplama)

Diğer durumlar için durum bayraklarını kontrol etme yöntemlerini izlemeniz gerekecek.
TST komutu ile izlemekte olduğunu sanının durumunu durum bitlerinden öğrenebilinsiniz.
Başlık: Ynt: ASSEMBLY DİLİ YARDIM
Gönderen: devrecii - 05 Nisan 2018, 22:43:32
Stm32 nin registerleri 32 bitdir

-97 =   2_10011111 =  0x9F   bu değildir bu 159 dur

-97 =  11111111111111110011111   =  0xFFFFFFF9F  işte budur.
     
Yada toplamı  8 bit olarak kullanacasın.
Başlık: Ynt: ASSEMBLY DİLİ YARDIM
Gönderen: Zoroaster - 06 Nisan 2018, 09:54:11
Registerlere okumuş olduğun işaretli 8 bit veriyi SXTB komutu ile 32 bite yayarsın.

(Mesela R2 registerindeki işaretli 8 bit veriyi 32 bite yaymak için SXTB R2,R2)
Bu C deki (int) tipi type casting işlemine karşı gelir.

Ardından toplama işlemine geçersin. Artık toplama sonucundaki veri işaretli sayı olarak ele alınabilir.



Başlık: Ynt: ASSEMBLY DİLİ YARDIM
Gönderen: refikos - 12 Nisan 2018, 22:31:56
cevap yazan arkadaşlara çok teşekkürler konuyu şimdi anladım  :)