.db komutuyla ilgili bir sorum var

Başlatan MÜHENDİS ADAM, 21 Kasım 2015, 14:07:05

MÜHENDİS ADAM

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.

Kabil ATICI

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..
ambar7