CROSS 32 META ASSEMBLER

Cross 32 Meta Assembler, Evrensel Cross-Assembler’dan bir derece daha esnektir. Bu haliyle kullanıcının assembly dili programlarını pek çok mikroişlemci, mikrocontroller ve dijital sinyal işlemci aileleri için çevirmesine imkan tanır. Cross 32 aşağıdaki mikroişlemci ailelerinin tamamı için tablolar, orjinal üreticilerin mnemoniklerini ve örnek assembly dili kaynak dosyalarını içerir.

18026418065C0265816
68016805680968 HC11
6800080186C0P400C0P800
8048805180858096
TMS 320TMS 370SUPER8Z8/Z80

Program çalıştırıldığı zaman, Cross 32 bir assembly dili kaynak dosyasını ve ona karşılık gelen assembler tanımlama tablosunu okur. Assembly dili kaynak dosyasını derler. Assembly hatalarını ekran üstünde gösterir. Assembly’ de listelenen dosyayı etiket tablosu ve bir hekzadesimal (program) dosyası ile birlikte yazar. Bu durumda Hekzadesimal dosya sizin kişisel bilgisayarınızdan EPROM’unuza yüklenebilir.
Assemly dili kaynak dosyası ASCII metin editörü ile yazılabilir. Assembly kaynak satırı serbest formattır. Öyle ki alanlar bir sütun içerisine yerleştirilebilir. Bütün etiket değerleri bir alfabetik harf (A-Z), “-“, “.” veya “?” karakteri ile başlamalıdır
ve “: ” ile bitmelidir. Bütün dahili etiket karakterleri; alfa nümerik (A-Z, 0-9), “-“, “.”, ve “?” olabilir. Etiket uzunluğu sadece maksimum satır uzunluğu olan 255 karakterle sınırlıdır. Büyük ve küçük harfler eşit olarak işlem görür. Cümle ifadeleri iki tırnak (“) işareti arasında ayrıca tanımlanabilir. A$ ifadesi program sayacının şimdiki değerini gösterir.

  1. CROSS-32 ASSEMBLER KOMUTLARI

    CPU

    İşlemci bildirimi (Processor Declaration)

    DFB

    Byte olarak tanımlama (Define Byte)

    DFS

    Veri depolamayı tanımlama (Define Data Storage)

    DWM

    Kelime olarak tanımlama (Define Word) (first byte first)

    DWL

    Kelime olarak tanımlama (Define Word) (last byte first)

    DFL

    Uzun kelime tanımlama (Define Long Word)

    ELSE

    Karşılıklı şartlı blok

    END

    Assembly’nin sonu

    ENDI

    Şartlı bloğun sonu

    ENDM

    Makro bloğun sonu

    EQU

    Etiketi sabit değere eşitlemek

    HEX

    Hex dosyasını açık veya kapalı duruma anahtarlamak

    HOF

    Hekzadesimal çıkış formatı

    IF

    Şartlı bloğun başlaması

    INCL

    Dosyayı kaynak kodu içerisine sokmak

    LIST

    List dosyasını açık veya kapalı duruma anahtarlamak

    MACRO

    Macro bloğunu tanımlamak

    ORG

    Program sayacı orjini

    PAGE

    Sayfa uzunluğunu listelemek

    SETL

    Etiketi değişken değere kur

    TITL

    Title starting listining pages

    ;

    Açıklama


    Hekzadesimal formatlar: Binary, Intel 8/16 bit ve Motorola 8/16 bit.
    Binary İşlemciler: OR, AND, NOT, XOR, SHL, SHR, MOD, INV, +, -, *, { AND}
    Sistem Konfigürasyonu: PC/MS DOS 2.0 veya sonrası, 256 KB RAM, 1 disket sürücüsü

  2. CROSS 32’Yİ ÇALIŞTIRMAK

Zarfın içerisinde gelen disket Cross 32 Meta-Assembler içerir (C32.Exe). Ayrıca bu disketin içinde yirminin üstünde mikroişlemcinin tablosu (CPU.TBL dosyası içinde) vardır. Universal Cross Assembler kullanıcıya Cross 32 disketinin tamamını yedeklemesini tavsiye eder. Aşağıdaki örnekler E8048.ASM ve 8048.TBL dosyalarını kullanır.

Cross 32 aşağıdaki komut verildiğinde çalışmaya başlayabilir.:


C32 sourcefile [ -L Listfile] [ -H hexfile]


Burada kare köşe ayraçları [ ]


isteğe bağlı olan seçenekleri ifade eder.


“L” Cross 32’ye hemen aşağıdaki dosya ismini kullanan bir assembly dosya listesi oluşturmasını söyler. “ - H” hemen aşağıdaki dosya ismini kullanan bir makine kod çıkış dosyasını oluşturmasını Cross 32’ye söyler. Eğer bunlar uygun dosyalara uygulanmazsa oluşturulamayacaklardır. Bir liste dosyası yaratılıp yaratılmadığına bakılmaksızın bütün hata kodları ekranda görüntülenecektir. Hex dosyaların formatı HOF komutu kullanılarak oluşturulur. Bunun nasıl yapıldığı bu rehberde daha sonra açıklanacaktır. Cross 32 tarafından kullanılan işlemci tanımlama tablosu CPU komutunu kullanan kaynak dosyası içinde özellikle belirtilir. Disk ve directory isimleri dosya isimlerini içerebilir.


Bazı Örnekler

E8048.asm

Source : E8048.ASM

listining : NONE

hex : NONE

C32 E8048.ASM -L B : E8048.LST

source : E8048.ASM

listining : B : E8048.LST

hex : NONE

C32 C: E8048.ASM -H\HEX\E8048.HEX

source : E8048.ASM

listining : E8048.PRN

hex : E8048.HEX

Cross 32 ekranda aşağıdaki gibi oluşturulur:

  1. C32 E8048.ASM

Cross 32 Meta-Assembler PC/MS DOS versiyon 1.10

Copyright © 1988 Universal Cross-Assemblers

Starting Pass Number : 1

Starting Pass Number : 2

END of Assembly ..... No errors

C>

Burada C> işletim sistemi promptudur. Cross 32 bir iki geçişli meta-assembler olduğundan dolayı kaynak dosyası genellikle iki kez okunur. İşlemci tanımlama tablosu sadece bir kez okunur ve ikinci geçiş için RAM’ de tutulur. Herhangi bir assembly hatası ekranda ikinci geçiş esnasında görüntülenecektir. Listeleme ve makine kodu dosyaları sadece ikinci geçiş esnasında yazılır.

  1. CROSS 32 ASSEMBLY KAYNAK DOSYASI (SOURCE FILE)

Kaynak dosyası Cross 32 tarafından toplanmış olan ASCII assembler kaynak kodudur. Kaynak dosyasından işlemci tanımlama tablosu CPU komutu kullanılarak seçilir. Hexadesimal dosyanın formatı HOF komutu kullanılarak seçilir. Aşağıdaki alt kısımlar assembly kaynak dosyasını oluşturan temel inşa bloklarını tanımlar. Her bir kısım için örnekler verilmiştir. Ama bunlar listeleme dosyalarından toplanmış ve yapılmıştır. Bundan dolayı kullanıcı bu örneklerin ilk 16 karakterini önceden hazırlamaz.

  1. Assembly Satır Formatı

Bir assembler komutu veya programı sadece yüz satıra izin verir. Assembly satırı özgür formatlıdır. Etiketler sütun 1’den başlama ihtiyacı gerektirmez. Her bir satır aşağıdaki işlemlerin tamamını veya birkaçını içerebilir.

Line # label operation operand (s) ; Açıklama

Burada;

Line # bir desimal ifadedir.

Label: Bir ASCII karakter “A-Z” veya bir “-“, “.” veya “?” ile başlayan ve bir kolon “:” ile sonlanan bir ibaredir. Label içerisindeki karakterler alfa nümerik olmalıdır (“A-Z”, “0-9”) veya bir “-“, “.” veya “?” işareti olmalıdır.

Operation: Bir Cross 32 assembler komutudur veya işlemci assebly gösterim tablosunda gösterilen bir ifadedir. Bütün operation’lar bir alfabetik karakter ile başlamalıdır.

Operands: -2, 147, 483, 648 den 2, 147, 483, 647 bölgesi arasındaki tamsayı değerlerini ve/veya karakter dizilerini gösteren etiketler, sabitler, ifadelerdir. Bunlar bir assebly dili tanımları içinde şekillendirilebilir.

Comment: Genellikle assembly dili programlarını tanımlamak için kullanılan “;” işaretinden sonra yazılan açıklamalardır. “;” işareti Assembly satırında herhangi bir yere konulabilir ve Cross 32 “; “ işaretinden sonra yazılan ifadeleri komut olarak algılamaz. Onları görmezden gelir.

  1. Labels (Etiketler)
Bu konu Fatma Ünal tarafından hazırlanmıştır.