Picproje Elektronik Sitesi

DERLEYİCİLER => PIC Assembly => Konuyu başlatan: MÜHENDİS ADAM - 21 Kasım 2015, 14:07:05

Başlık: .db komutuyla ilgili bir sorum var
Gönderen: MÜHENDİS ADAM - 21 Kasım 2015, 14:07:05
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.
Başlık: Ynt: .db komutuyla ilgili bir sorum var
Gönderen: Kabil ATICI - 21 Kasım 2015, 16:16:38
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..