68000 mikroişlemcisinin veri aktarma ve aritmetik işlem komutlar |

68000 mikroişlemcisinin veri aktarma ve aritmetik işlem komutlar

EMULATOR PROGRAMI

 Amaç: Bu uygulamada 68000 assembler/simulator programının tanıtılması ve basit aritmetik işlemlerin öğretilmesi amaçlanmaktadır. Uygulamadan önce 68000 mikroişlemcisinin veri aktarma ve aritmetik işlem komutları incelenmelidir.

Ön Bilgi: Aşağıda, Örnek 1.1’de iki sayıyı toplayan bir program örneği verilmiştir. Bu program $500 ve $502 adreslerinde yer alan 16 bit uzunluğunda iki sayıyı toplayarak $504 adresine yazmaktadır.

opt     cre        Assembler opsiyonları

org     $400       Program bellkete $400 adresinden başlar

start

move.w  ($500),d0  $500 numaralı bellek gözündeki veri D0’a

add.w   ($502),d0  $502’nin içeriği D0 ile toplanır.

move.w  d0,($504)  Sonuç $504’e yazılıyor.

stop    #$2000     Programın çalışması sonlandırılıyor.

end     start      Dosya sonu.

 

Örnek 1.1 Basit Toplama Programı

Adresleri doğrudan vermek yerine sembolik isimler de kullanılabilir. Örnek 1.2’de değişken isimlerinin kullanılması gösterilmiştir.

opt     cre

org     $400

start

move.w  sayi1,d0  Adres yerine sayi1 sembolik ismi kullanılmıştır.

add.w   sayi2,d0

move.w  d0,sonuc

stop    #$2000

 

org     $500  Değişkenler belleğe $500 adresinden itibaren yerleştirir

sayi1 dc.w    $1111 sayi1 adli değişkene başlangıç değeri $1111 veriliyor

sayi2 dc.w    $2222 sayi2 adli değişkene başlangıç değeri $2222 veriliyor

sonuc ds.w    1     sonuc adlı degişkene 1 word (16 bit) yer ayrılıyor

end     start  Dosya sonu

 

 

Örnek 1.2 Sembolik İsimlerin Kullanılması

Yukarıdaki programlarda kullanılan assembler direktifleri aşağıda açıklanmıştır:

·        org adres : Programın veya verilerin belirtilen adresten başlayarak belleğe yerleşme­sini sağlar.

·        sembolik_isim dc.b/w/l başlangıç değeri : İstenen sembolik isme sahip değişkenler için bel­lekte 8/16/32 bit uzunluğunda yer ayırır ve başlangıç değeri atar.

Örneğin ;

sayi dc.b $0a sayi isminde 8 bitlik bir değişken için bellekte yer ayrır ve başlangıç değeri olarak (0A)16 yazar .

sayi dc.w  25 sayi isminde 16 bitlik bir değişken için bellekte yer ayrır ve başlangıç değeri olarak (25)10 yazar .

·        sembolik_isim ds.b/w/l sayı : İstenen sembolik isme sahip değişkenler için bellekte 8/16/32 bit uzunluğunda yer ayırır. Buradaki sayı dizi yaratmak için kullanılır.

Örneğin ;

dizi1 ds.b 10  dizi1 isminde bir değişken için bellekte 10 byte’lık yer ayrır.

dizi2 ds.w 10  dizi2 isminde bir değişken için bellekte 10 tane 16 bitlik yer ayrır.

dizi3 ds.l 10  dizi3 isminde bir değişken için bellekte 10 tane 32 bitlik yer ayrır.

 

 

ornek11.x68 dosyasıın içeriği:

opt     cre
org     $400
start
move.w  ($500),d0
add.w   ($502),d0
move.w  d0,($504)
stop    #$2000
end     start
ornek12.x68 dosyasıın içeriği:

[ads9]

Please follow and like us:
0

Leave a Reply