şöyle bir problemimiz var:20h adresinden başlayarak 24h'e kadar sırasıyla 11h,22h,33h,44h,55h adreslerini yazma,indirect adressing kullanacaz:
11h,22h,33h,44h,55h verilerini sırasıyla 20hdan başlayarak 24he kadar olan adreslere yaz
list p=16F877A ;her programın başında yazılmalı
include "p16F877A.inc" ;her programın başında yazılmalı
movlw 0x20
movwf FSR ;fsrnin içine 20hex i attım
movlw 0x11
movwf INDF ; 11h'i 20 hex adresine yazdım
incf FSR ;fsrnin içini 1 arttır yani 21hex adresine gel
movlw 0x22
movwf INDF ;22 h'i 21 hex adresine yazdım
incf FSR ;fsrnin içini 1 arttır yani 22hex adresine gel
movlw 0x33
movwf INDF ;33 hexi 22 hex adresine yazdım
incf FSR ;fsrnin içini 1 arttır yani 23hex adresine gel
movlw 0x44
movwf INDF ;44 hex verisini 23 hexdresine yazdım
incf FSR ;fsrnin içini 1 arttır yani 24hex adresine gel
movlw 0x55
movwf INDF ;55 hex verisini 24 hex adresine yaz
end ;programı sonlandır
DERYA GÜNDÜZ
29 Nisan 2010 Perşembe
assembly(pic 16f877a) programlama'da ardışık adreslere veri yazma
Gönderen
DERYA GÜNDÜZ
zaman:
4/29/2010 12:43:00 ÖS
Etiketler:
assembly,
assembly programlama,
indf fsr,
indirect adressing,
pic 16f877a programlama,
sırasıyla verileri adreslere yazma,
veri yazma
1 yorum
assembly(pic 16f877a) programlama'da adresleme çeşitleri
assembly programlama'da 3 çeşit adresleme vardır
movlw 0x20;working registerın içine 20hex verisini atmış olduk
sublw 0x10;istersek bu atılan veride değişiklik de yapabiliriz
direct adressing:bu adresleme program yazarken en sık kullanılan adresleme türüdür,bu adresleme türünde bir veriyi bir adrese yazmak isterken onu önce working reg'e taşırız,ondan da istediğimiz yere.
movf 0x50,w ;50 hex verisini working reg'e atıyorum
movwf 0x20; ;working reg'in içindekini, yani 50hex verisini 20hex adresine atıyorum
böylece veriyi istediğim bir adrese atmış oluyorum.
indirect adressing:dolaylı adresleme diğer adresleme türlerine göre biraz daha karışk ve hata oranı daha fazladır.bu adresleme türünde veri yazmak istediğimiz adresi başka bir registerın içine yazıyoruz,bu exra registera yazdığımız adrese de başka bir register yardımıyla veri yazarız.
bu adresleme türünde yardımcı olarak kullandığımız iki extra register vardır:fsr ve indf registerları.
fsr register:veri aktarmak istediğimiz adresin taşındığı registerdır.
indf register:fsrnin adreslediği yere karşılık geliyor,ram bellekte adresi buluna fiziksel bir register değildir.
indf registerını kullanan bir komut geldiğinde fsr'nin gösterdiği registerın içindeki veriye ulaşmak için kullanılır.
şimdi indirect adresleme yolu ile 0x20 verisini 0x50 adresine atalım:
movlw 0x50 ;w rege 50 adresini attım
movwf fsr ;w regindeki 50 hex adresini fsrnin içine attım
movlw 0x20 ;w regine 20 hex verisini attım
movwf indf ;workingdeki 20 hex verisini indf'nin içine attım,yani fsr'nin tuttuğu 50 hex adresine 20
;hex verisini yazmış oldum
neden indirect adresleme kullanma gereği duyarız???
indirect adresleme türünü daha çok ardıiık adreslerde işlem yapmak için kullanırız,
incf fsr diyerk bir sonraki adrese kolaylıkla geçmiş olruz.
DERYA GÜNDÜZ
- immidiate adressing
- direct adressing
- indirect adressing
movlw 0x20;working registerın içine 20hex verisini atmış olduk
sublw 0x10;istersek bu atılan veride değişiklik de yapabiliriz
direct adressing:bu adresleme program yazarken en sık kullanılan adresleme türüdür,bu adresleme türünde bir veriyi bir adrese yazmak isterken onu önce working reg'e taşırız,ondan da istediğimiz yere.
movf 0x50,w ;50 hex verisini working reg'e atıyorum
movwf 0x20; ;working reg'in içindekini, yani 50hex verisini 20hex adresine atıyorum
böylece veriyi istediğim bir adrese atmış oluyorum.
indirect adressing:dolaylı adresleme diğer adresleme türlerine göre biraz daha karışk ve hata oranı daha fazladır.bu adresleme türünde veri yazmak istediğimiz adresi başka bir registerın içine yazıyoruz,bu exra registera yazdığımız adrese de başka bir register yardımıyla veri yazarız.
bu adresleme türünde yardımcı olarak kullandığımız iki extra register vardır:fsr ve indf registerları.
fsr register:veri aktarmak istediğimiz adresin taşındığı registerdır.
indf register:fsrnin adreslediği yere karşılık geliyor,ram bellekte adresi buluna fiziksel bir register değildir.
indf registerını kullanan bir komut geldiğinde fsr'nin gösterdiği registerın içindeki veriye ulaşmak için kullanılır.
şimdi indirect adresleme yolu ile 0x20 verisini 0x50 adresine atalım:
movlw 0x50 ;w rege 50 adresini attım
movwf fsr ;w regindeki 50 hex adresini fsrnin içine attım
movlw 0x20 ;w regine 20 hex verisini attım
movwf indf ;workingdeki 20 hex verisini indf'nin içine attım,yani fsr'nin tuttuğu 50 hex adresine 20
;hex verisini yazmış oldum
neden indirect adresleme kullanma gereği duyarız???
indirect adresleme türünü daha çok ardıiık adreslerde işlem yapmak için kullanırız,
incf fsr diyerk bir sonraki adrese kolaylıkla geçmiş olruz.
DERYA GÜNDÜZ
Gönderen
DERYA GÜNDÜZ
zaman:
4/29/2010 12:28:00 ÖS
Etiketler:
adresleme çeşitleri,
assembly,
assembly programlama,
direct adressing,
fsr,
immidiate adressing,
incf,
indf,
indirect adressing,
movlw,
movwf,
pic 16f877a programlama,
working register
0
yorum
23 Nisan 2010 Cuma
DUYURU!!!!!
linki burda,gruba girip üye olabilirsiniz:
http://groups.google.com/group/esogu_ceng
DERYA GÜNDÜZ
Gönderen
DERYA GÜNDÜZ
zaman:
4/23/2010 03:05:00 ÖÖ
assembly programlama/iki adresteki verinin yer değiştirmesi
iki tane registerımız olsun;
reg1
reg2
reg1 ve reg2nin içindeki verileri değiştirmek istiyorum.
assembly programlamada essas olarak bir veriyi bir adrese taşıma istiyorsam o veriyi önce working registera orda istenilen adrese taşımalıyım,iki registerın içini yer değiştirmek istiyorsam da hem working reg hem arada geçici kullanacağım bi reg kullanmalıyım,bu reg temp olsun.
değiştirme kodlar;:
movf reg1,w ;reg1in içini w rege at
movwf temp ;wnin içeriğini tempe at
movf reg2,w ;reg2yi w ye at
movwf reg1 ;wnin içinde reg2 vardı bunu reg1e atıyorum
movf temp,w ;tempin içini wye atıyorum,içinde reg1(içeriği) vardı
movwf reg2 ;wnin içini yani tempten gelen reg1i de reg2 ye attım
böylece temp geçici registrı ve working registerı sayesinde reg1 ve reg2nin içini değştirmiş olduk
DERYA GÜNDÜZ
reg1
reg2
reg1 ve reg2nin içindeki verileri değiştirmek istiyorum.
assembly programlamada essas olarak bir veriyi bir adrese taşıma istiyorsam o veriyi önce working registera orda istenilen adrese taşımalıyım,iki registerın içini yer değiştirmek istiyorsam da hem working reg hem arada geçici kullanacağım bi reg kullanmalıyım,bu reg temp olsun.
değiştirme kodlar;:
movf reg1,w ;reg1in içini w rege at
movwf temp ;wnin içeriğini tempe at
movf reg2,w ;reg2yi w ye at
movwf reg1 ;wnin içinde reg2 vardı bunu reg1e atıyorum
movf temp,w ;tempin içini wye atıyorum,içinde reg1(içeriği) vardı
movwf reg2 ;wnin içini yani tempten gelen reg1i de reg2 ye attım
böylece temp geçici registrı ve working registerı sayesinde reg1 ve reg2nin içini değştirmiş olduk
DERYA GÜNDÜZ
Gönderen
DERYA GÜNDÜZ
zaman:
4/23/2010 02:56:00 ÖÖ
Etiketler:
assembly,
pic 16f877a programlama,
registerların içini değiştirme,
temp register,
working register
0
yorum
22 Nisan 2010 Perşembe
uzun zamandır yazamıyorum
ne kötüdür ki yazmak istiyorum ama yazamıyorum,yazmak istediğim çok şey var aslında ama maalesef zaman bulamıyorum,çalışırken ya da yeni bişey öğrendiğimde hep diyorum ki bunu da yaarım blogum ama izim yok,okdar yoğun geçiyor ki,vizeler geliyor yine,vizeler yetmiyormuş gibi bi de quiz haftası yaptılar başımıza,bu hafta 3 quizim var,yrn da assembly var,çok uykum var ama yatamıyorum,çünkü daha çalışmam gerkiyor,
bazen diyorum ki nerden geldim bu bölüme........çok zor gerçekten adaman gerekiyor kendini,okuldan bu kadar kasmasalar gereksiz yere,bişeyler yapacaz da ama abartıyorlar gerçekten:(
kendimi bloguma karşı sorumlu hissettiğimden bikaç cümle yazma zorunluluğu hissettim özür mahiyetinde,
DERYA GÜNDÜZ
bazen diyorum ki nerden geldim bu bölüme........çok zor gerçekten adaman gerekiyor kendini,okuldan bu kadar kasmasalar gereksiz yere,bişeyler yapacaz da ama abartıyorlar gerçekten:(
kendimi bloguma karşı sorumlu hissettiğimden bikaç cümle yazma zorunluluğu hissettim özür mahiyetinde,
DERYA GÜNDÜZ
12 Nisan 2010 Pazartesi
c#'da hata oluşturup bi yerde çağırmak(catch'de olduğu gib)
bilindiği gibi c#da try-catch olayı vardır;hata olmadığı durumlarda try,hata olduğu zaman catch çalışır.
peki kendimiz bir hata oluşturmak istersek?????:
Exception hata = new Exception("Bu benim hatam");
//oluşan hatayı nesnenin hata mimarisi içine fırlatma.
throw hata;//burda hata verir
//program throw kısmına gelince hata verir ve hata ekranında "bu benim hatam",yazar
{
public KendiHatamiz()
: base("derya'nın hatası")
{}
}
int main()
{
KendiHatamiz kndHata = new KendiHatamiz();
throw kndHata;//burda da hata verir
//throw'a geldiğinde program durur ve hata alanında "derya'nın hatası ",yazar.
}
DERYA GÜNDÜZ
peki kendimiz bir hata oluşturmak istersek?????:
- 1. yol:
Exception hata = new Exception("Bu benim hatam");
//oluşan hatayı nesnenin hata mimarisi içine fırlatma.
throw hata;//burda hata verir
//program throw kısmına gelince hata verir ve hata ekranında "bu benim hatam",yazar
- 2.yol:class kullanarak yapalım
{
public KendiHatamiz()
: base("derya'nın hatası")
{}
}
int main()
{
KendiHatamiz kndHata = new KendiHatamiz();
throw kndHata;//burda da hata verir
//throw'a geldiğinde program durur ve hata alanında "derya'nın hatası ",yazar.
}
DERYA GÜNDÜZ
Gönderen
DERYA GÜNDÜZ
zaman:
4/12/2010 12:03:00 ÖÖ
11 Nisan 2010 Pazar
c#da property kavramı
c#da classın içine yazdığımız değişkenler için get ve set değerlerinin beraber kullanıldığı formatına property deniyor.
class sınıf
{
public int yas;
private string öğrenciadı;
private string ad
{
get { return öğrenciadı; }
set { öğrenciadı = value; }
}
public int Yas
{
get
{return yas;}
set
{if (value >= 0)
yas = value;}
}
{
public void Yaz()
{
Console.WriteLine( öğrenciadı+ " " + yas);
}
static void Main(string[] args){
sınıf f = new sınıf();
f.yas=22;
f.öğrenciadı="derya";
f.yaz();
}}
OUTPUT
derya 22
class sınıf
{
public int yas;
private string öğrenciadı;
private string ad
{
get { return öğrenciadı; }
set { öğrenciadı = value; }
}
public int Yas
{
get
{return yas;}
set
{if (value >= 0)
yas = value;}
}
{
public void Yaz()
{
Console.WriteLine( öğrenciadı+ " " + yas);
}
static void Main(string[] args){
sınıf f = new sınıf();
f.yas=22;
f.öğrenciadı="derya";
f.yaz();
}}
OUTPUT
derya 22
- property tanımlamasında parantez kullanılmaz
- get bloğu değişkenin değerinin okunması sırasında hangi değerin döndürülecegini belirtir. bu nedenle içerisinde return kullanılmalıdır.
- set bloğu değişkene değer atanırken çalışacak olan kodu belirtir.
- value anahtar kelimesi ise değişkene o sırada atanmak istenen değeri temsil eder.
- get veya set blokları en az biri property içerisinde bulunacak şekilde herhengi bir kombinasyonda kullanılabilirler. ancak belirtilen formatı izlemelidir.
Gönderen
DERYA GÜNDÜZ
zaman:
4/11/2010 09:09:00 ÖS
9 Nisan 2010 Cuma
LİNUX GÜNLERİ-1. gün/DEVRİM GÜNDÜZ
klübümüz BBTK'nın etkinliği olarak gerçekleşen "LİNUX GÜNLERİ" etkinliğine katıldım bugün.İyiki de katılmışım dediğim bir seminerdi.
LKD(linux kullanıcıları derneği) adına DEVRİM GÜNDÜZ konuşmacı olarak katıldı.
Devrim gündüz kimdir?
kendisi şuan markafoni adlı özel alışveriş klübünün IT departmanında çalışıyor,50 ay Canada'da çalışmış,Amerika'da çalışmış ayrıca postgresql'in (özgür yazılım olan ve sql standart sorgu dilini destekleyen veritabanı yönetim sistemi) geliştiricisidir ve koyu bir linuxçu'dur.
sunumu müthişti,gözlerimizi ondan alamadık,1.5 saat geçiyordu ama kimse zamanın nasıl geçtiğinin farkında olmuyordu,kendi hayatından ve tecrübelerinden anektodlar alarak sunusunu çok eğlenceli bir hale getirmeyi başardı.sunum iki oturumdan oluşuyordu:
- özgür yazılım, linux nedir?
- linuxta sunucu,veritabanı ve ağ sistemleri
daha önce de özgür yazılımla ilgili konferanslara katılmıştım ama hiçbirinden bukadar zevk almamıştım(çoğunlukla pardüs seminerleri).
şimdi oturumlar boyunca ladığım notları sizlerle paylaşmak istiyorum:
- linuxun en önemli özelliği tüm bileşenlerin kaynak kodlarının kamuya açık olmasıdır,
- linux esasen işletim sisteminin çekirdeğidir,yani biz "linux kullanıyorum",derken aslında yanlış kullanıyormuşuz;ubuntu,pardüs,fedora... kullanıyorum demeliyiz,bunlar da linuxun dağıtımlarıdır,
- 1991'de linuxun ilk sürümü duyruluyor,linux 0.02,sonrasında 0.04,0.06....1.0,.....2.0......2.6 çıkmış ,
- minix ve linus torvals linux çekirdekli çok basit işletim sitemleridir,
- linuxta kullanıcıların akıllı olduğu düşünülür,örneğin birşey silinecekse windowsta olduğu gibi "emin misiniz",sonra geri dönüşüm kutusuna, gibi şeyler yokmuş,
- pidgin:aynı anda yahoo,msn,,,'den birden fazla oturum açmak için kullanılan prog,
- linux'ta dil paketlerinin hepsi yüklüymüş,böylece istediğiniz dili kullanabiliyormuşsunuz,
- mono:c#'da kod yazmak için kullanılan prog.,
- evolution,pine:mail okumak için prog.,
- programlama için eclipse,anjuta,glade programları kullanılabiliyormuş,
- çokluortam için mplayer,grid kullanılabiliyormuş,
- .net uygulamalarını mono ile çalıştırabilirmişiz,
bugün için aldığım notlar buşekildeydi,katılmayan arkadaşlar bi göz atabilir,
buarada katılmayan demişken,katılım çok azdı,insanları anlayamıyorum böyle fırsatları nasıl kaçırabiliyorlar,etkinlik yapıyoruz zahmet edip gelmiyorlar,bilinçsiz okadar çok insan var ki.........
bir de benim için çok önemli olan bir konudan da bahsetmek istiyorum,uzun zamandır bilgisayarıma ubuntu kurmayı düşünüyordum,ama bir türlü cesaret edip kuramamıştım.zaten şuan için windowsun yanına kuracam,takdir edersiniz ki windowstan vazgeçilmez(şuan için öyle düşünüyorum tabi ki belki de ubuntu kullandıktan sonra fikrim değişir),yrn kesin olarak kuracam,özgür yazılıma ilk adımları atacam........
işte bugünden hatıra kalan güzel bir kare..........
DERYA GÜNDÜZ
Gönderen
DERYA GÜNDÜZ
zaman:
4/09/2010 07:49:00 ÖS
Etiketler:
bbtk,
devrim gündüz,
etkinlik,
fedora,
linux,
linux günleri,
lkd,
markafoni,
minix,
mono,
postgresql,
seminer,
ubuntu
0
yorum
6 Nisan 2010 Salı
DUYURU!!!!!
arkadaşlar,robocup yarışması ile ilgili çalışmalarımızın takibi ve haberleşmek için bir google group oluşturdum,ilgili arkadaşlar buna dahil olsun,ya da bana mail atsınlar ben ekliyeyim
burdan üye olabilirsiniz
DERYA GÜNDÜZ
burdan üye olabilirsiniz
DERYA GÜNDÜZ
Gönderen
DERYA GÜNDÜZ
zaman:
4/06/2010 09:21:00 ÖS
DUYURU!!!!! readmee nisan sayısı çıktı
elektronik dergimiz readmee'nin nisan sayısı çıktı,ilgili arkadaşlara duyrulur,keyifli okumalar...........
Gönderen
DERYA GÜNDÜZ
zaman:
4/06/2010 09:15:00 ÖS
READMEE 1 YAŞINDA!!!!!!!
Klübümüz bbtk'nın aylık sanal dergisi olan READMEE 1 yaşına girdi,geçtiğimiz günlerde readmee ekibi olarak 1. yaş gününü kutladık,hocalarımızı da davet etmiştik,keyifli bir kulamaydı,böyle başarılı bir derginin yazar ekibinde olmak mutluluk verici,nice 1 yıllara READMEE daimi olması dileğiyle...........................
READMEE ekibi ve hocalarımızla mutlu,güzel bir kare!!
Gönderen
DERYA GÜNDÜZ
zaman:
4/06/2010 09:02:00 ÖS
HAYDİ LİNUX ÖĞRENELİM!!!!!
BBTK OLARAK ETKİNLİĞİMİZ VAR,KATILIMLARINIZI BEKLİYORUZ
etkinlik adı:LİNUX GÜNLERİ
yer:FEN EDEBİYAT KAKÜLTESİ F5 KONFERANS SALONU
tarih:9-10 NİSAN
konuşmacılar:DEVRİM GÜNDÜZ-ENVER ALTIN
Gönderen
DERYA GÜNDÜZ
zaman:
4/06/2010 08:40:00 ÖS
3 Nisan 2010 Cumartesi
dergiye yazdığım yazı/OPenID
İnternette hangi siteye girsek,üyelik istiyor;kayıt yaptır,kullanıcı adı olmadı başka kullanıcı adı bul,e-mail adresine onaylama gelsin oradan gir,her site için farklı kullanıcı adı farklı şifre,hangi şifre hangisinindi……daha bir sürü problem.Bu tür işler çoğu zaman canımızı sıkıyor, işte tam bu noktada openID kavramı doğuyor,
Peki nedir bu openID?
openID, farklı sitelerin hepsi için tek bir kullanıcı adı ve şifreye sahip olmanızı ve bu kullanıcı adı- şifre ile bütün sitelere girebilmenizi sağlayan bir sistemdir. OpenID sayesinde bir siteye girdikten sonra openID destekleyen diğer bütün siteler için tek profilin oluyor , bütün siteler birbiriyle bağlantı kurup bilgilerini çekiyorlar böylece diğer sitelere de ayrı giriş yapmaksızın erişmiş oluyorsun ;her defasında farklı kullanıcı adı ve şifre bulmaktan,onları karıştırmaktan,üye olmak için geçen süre gibi problemleri en aza indirmiş oluyorsunuz. OpenID servis sağlayıcısı seçerek ihtiyaçlarınızı en iyi ve en önemlisi en güvenli şekilde karşılamış olursunuz. OpenID teknolojisi özel ya da paralı değildir, tamamen ücretsiz olması çok önemli bir özelliğidir.
Nasıl openID edinebilirm?
openID edinebilmek için bu sitelerden birine üye olmak yeterli:
ClaimID, MyID, MyOpenId, VerySignLabs, MyVidoop
Nasıl kullanılır?
1. Bir OpenID servis sağlayıcısı kullanabilir ve size kendi alan adından sağladığı adresi kullanabilirsiniz . Örneğin ClaimID’den alınmış bir openid http://www.openid.claimid.com/kullaniciadi şeklinde oluyor.bundan sonra bu adresi kullanarak işlemlerinizi gerçekleştirebilirsiniz.
2. Kendi OpenID sunucunuzu kendi alan adınızla çalıştırabilirsiniz (örn. benimadim.com)
3. Kendi siteniz kimliğiniz olabilir. Bir OpenID servis sağlayıcısını kendi sitenize yönlendirebilir, böylece sonra servis sağlayıcınızı değiştirseniz bile her zaman kendi sitenizin adresini kullanabilirsiniz.
• “Use your own URL as your OpenID” bölümü var.
• Giriş yapıyoruz ve bize bazı kodlar üretiyor.
• Oradaki kodları kendi sitemizde içine koyuyoruz.
• Ve artık kendi siteniz OpenID için sizin OpenID adresinize yönlendirildi.
OpenID Potansiyeli:
OpenID web 2.0 uygulamasıdır.Günümüz itibari ile çok yaygın olmasa da gittikçe popülerleşen bir yapıdır.Microsoft,Sun, Novell gibi büyük organizasyonlar OpenID kullanıcılarını kabul etmeye ve şart koşmaya başlıyorlar.Bugün yaklaşık 160 milyon openID kullanıcısı ve 10 bin openID destekleyen site mevcut durumda.
En çok kullanılan sitelerden OpenID desteği sağlayanlar:
Yahoo yaklaşık 250 milyon kullancısı için OpenID sisteminin hazır olduğunu açıkladı. . Google da Blogger üzerinde OpenID desteğini başlatmış,ayrıca twitter da openid desteği sağlıyor.
DERYA GÜNDÜZ
Gönderen
DERYA GÜNDÜZ
zaman:
4/03/2010 02:16:00 ÖÖ
Etiketler:
dergiye yazdığım yazı,
nasıl oenid adresi edinebilirm,
openid,
openid nasıl kullanılır,
openid nedir,
readmee
1 yorum
2 Nisan 2010 Cuma
string ile char arasındaki fark
genelde "string" ve "char" birbirine karıştırılır aradaki fark anlaşılamaz.
char:tek bir karakterdir
string:karakter dizisidir
char d='g';//diye kullanılır
string d="derya";//diye kullanılır
aynı şeyi hem string hem char ile de yazabiliriz:
char d[]={'d','e','r','y','a'} = string d ="derya"
ekrana yazdırılırken de :
printf("%s",d); = printf("%c",d);
şeklinde yazdırılır..............................
DERYA GÜNDÜZ
char:tek bir karakterdir
string:karakter dizisidir
char d='g';//diye kullanılır
string d="derya";//diye kullanılır
aynı şeyi hem string hem char ile de yazabiliriz:
char d[]={'d','e','r','y','a'} = string d ="derya"
ekrana yazdırılırken de :
printf("%s",d); = printf("%c",d);
şeklinde yazdırılır..............................
DERYA GÜNDÜZ
Gönderen
DERYA GÜNDÜZ
zaman:
4/02/2010 11:14:00 ÖS
Kaydol:
Kayıtlar (Atom)