Netindir

Net-İndir

Güncel Oyun & Program & Resim & Msn Forumu


Pic Programlama Ders - 14

Elektronik Bölümü icinde Pic Programlama Ders - 14 konusu , DERS - 14 Daha önce pek çok komut ögrendik, bu kez aritmetik islemlerde kullandigimiz bazi komutlari ögrenelim. ADDLW : Bu komut bir sabit ile write register içerigini toplar, sonuç write ...

Geri git   Netindir >
..:: Eğitim & Kültür & Güncel Köşe ::..
> Elektrik-Elektronik > Elektronik Bölümü

Anlık İletiler Kayıt ol Yardım Üye Listesi Ajanda Arama Bugünki Mesajlar Forumları Okundu Kabul Et

Cevapla

 

LinkBack Seçenekler Stil
  #1 (permalink)  
Alt 05-30-2007
.... --- --. --. . -

Arrow Pic Programlama Ders - 14

DERS - 14
Daha önce pek çok komut ögrendik, bu kez aritmetik islemlerde kullandigimiz bazi komutlari ögrenelim.
ADDLW : Bu komut bir sabit ile write register içerigini toplar, sonuç write register içine yazilir.
ADDWF : Bu komut file register ile write register içerigini toplar ve sonuç file veya write registere yazilir.
SUBLW : Bu komut bir sabitten write registeri çikarir ve sonuç write register içine yazilir.
SUBWF : Bu komut file register den write registeri çikarir ve sonuç file veya write registere yazilir.
0-255 sayilari 256 tane sayi demektir ve bu da 8 bit tir yani 2 ^ 8 demektir. Iki sayi toplami bir byte dan daha büyük olursa yani ;
A + B³256 ise bu durumda bilgi bir byte dan daha büyük oldugu için carry flag da degisme olur. Sonuç 8 bit ise carry flag 0 , 8 bitten fazla ise carry flag 1 olur.
A - B sonucu negatif ise Carry flag 1
A - B sonucu pozitif ise Carry flag 0 olur

ISLEM
SONUÇ
CARRY FLAG
A + B
<= 255
0
A + B
>= 256
1
A – B
pozitif
1
A – B
negatif
0


Toplama ve çikarma islemleri 8 bit ise islem kolaydir. Eger daha büyük sayilar ‘in toplama ve çikarmasi söz konusu ise 16 bit islemi yapilir ve burada 8 bitlik iki register kullanilir.
.
.
Toplama ve çikarma islemlerini decimal, hexadecimal veya binary olarak yapabiliriz.Daha evvel hexadecimal ve binary sayi sistemlerini ögrenmistik. Bu yazimizda kolaylik olsun diye Bir sayi sistemleri tablosu verilmektedir. Bu tablo kullanilarak hexadecimal toplamlar’in decimal ve binary karsiliklari karsilastirilabilir.
Hexadecimal iki sayi toplami 255 den büyük ise carry flag 1 olur demistik. Örnegin asagidaki toplamalara bakalim.
H’02’ + H’FD’ = H’FF’ = 255 olur tasma yoktur.
H’06’ + H’FD’ = H’03’ = 3 olur tasma mevcuttur (burada toplama islemi 255 den sonra 4 kademe ilerler ve 0 1 2 3 rak----- ulasir).
TOPLAMA
8 BIT TOPLAMA
8 bitlik iki sayiyi toplamak için iki yol ve iki komut mevcuttur.
ADDLW komutu kullanilarak write register içine yazili olan bir sayi bir sabit ile toplanir.,veya;
ADDWF komutu kullanilarak bir file register içindeki sayi write register içindeki sayi ile toplanir.

MOVLW H’02’ ;decimal 2 sayisini write registere yaz
ADDLW H’FD’ ;decimal 253 sayisini write register ile topla
MOVWF PORTB ;sonuç 255 sayisini yani binary 8 bit 1 sayisini portb ye gönder
Burada port b ye bagli ledler varsa hepsi yanar, veya :
EQU SAYAC H’0C’ ; Sayac registeri tanimla
MOVLW H’EE’ ; Write registere 238 decimal sayisini yaz
MOVWF SAYAC ; Sayac’a 238 i yaz
ADDWF H’12’ ; Decimal 18 sayisi ile topla
BTFSS STATUS, 0 ; Carry flag 1 ise atla

16 BIT TOPLAMA
Iki sayinin toplami bir byte dan yani 256 ve daha büyük ise 16 bit toplama islemi gerekir bu sekilde
2 ^ 16 yani 65535 ‘ e kadar sayilarin toplama islemini yapabiliriz.
Burada yapilacak olan bir byte bilgiyi bir registere , diger byte bilgiyi bir baska registere olmak üzerte iki file register kullanmak olacaktir. Rakamin toplaminda bir bytdan büyük sonuç çikip tasma meydana gelirse,carry flag vasitasiyla elde bir,diger registerin ilk basamagina ilave edilir.

Bit
8
7
6
5
4
3
2
1
8
7
6
5
4
3
2
1
S1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
S2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0


Tasma oldugunda 8. Bitten sol byte’in ilk bitine 1 ilave edilir.Bu bit 0 yerine 1 olur.
16 bit toplamada 4 adet register gerekir.Her bir sayi iki registere bölündügü için iki sayi için 4 register gerekir.Sayi hexadecimal ise yarisi olan 2 basamak bir registere ,diger yarisi bir baska registere yazilir.Sayi binary ise 8 bit bir registere ,diger 8 bit bir baska registere yazilir.

ÇIKARMA ISLEMI :
Çikarma islemi toplama islemi gibidir.Kullanilan komutlari yukarida görmüstük.8 bit çikarmada sonuç negatif ise carry flag 0 sonuç pozitif ise carry flag 1 dir.16 bit çikarmada sol registerden bir ödünç alma varsa carry flag 0 olur ve DECF komutu ile sol register 0.bitten 1 çikartilarak isleme devam edilir.

Alıntı ile Cevapla

Powered by vBulletin® Version 3.6.12
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0 ©2009, Crawlability, Inc.
Güncel Forum, Güncel Net, Güncel Mekan, Net-indir.com | Bedava program, oyun, msn, resim indirme sitesi, BestForumTR.net, MsnTR.Org, Güncel Forum Sitesi
Gizlilik Bildirimi