Arkadaşlar ben atmel avr programlama kitabında bir bilgiye rastladım.Orada ".db 0xfa,144,09,224" yazıyordu.Bunu açıklamasında da böyle bir satırda mutlaka çift sayı veri bulunmalıdır demiş.Ben burdaki olayı anlamadım.Neden çift sayı bulundurmak zorundadır?İnternette de istediğim bilgiye ulaşamadım.Yardımlarınızı bekliyorum.
Bu konu hakkında fazla bilgi yok ise de, Sanırım dw yüzünden, db çift yapılıyor. hatta tablo adreslenirken
MyTable:
.db ...
Read5:
LDI ZH,HIGH(MyTable*2); işaret Z'e tablonun adresi
LDI ZL,LOW(MyTable*2); bayt mantıklı erişim için 2 ile çarpılır
ADIW ZL, 5; tabloda beşinci değere işaretler
LPM; program belleğinden baytı okur
MOV R24,R0; register'e kopyala
.db ile kullanılan
şeklinde bir yapı kullanılıyor. Bu yapı hem db, hem dw için kullanılıyor.. Eğer db tek hane olarak kullanıldığında derleyici bu işe uyarı veriyor. (derleyici kendine göre 0 ekleyebiliyor...)
MyTable:
.dw ...
Read5:
LDI ZH,HIGH(MyTable*2); işaret Z'e tablonun adresi
LDI ZL,LOW(MyTable*2); bayt mantıklı erişim için 2 ile çarpılır
ADIW ZL, 10; tabloda beşinci değere işaretler
LPM; program belleğinden en düşük anlamlı baytı okur
MOV R24,R0; LSB 16-bit register'e kopyala
ADIW ZL,1; Program belleğinde MSB'i işaretle
LPM; tablonun değerini MSB okur
MOVR25,R0; 16-bit registeri MSB'i kopyalar
.dw ile kullanılan..