Komutlara Genel Bakış
68000 işlemci komutlarını veri transfer, aritmetik, lojik ve dallanma komutları olarak gruplandırabiliriz. Şimdi bu komutların bir listesini verelim:
Not: Bu liste 68000 komutlarının tam listesi değildir, en sık karşılaşacağımız ve sık kullanılan komutlardır, bunlar dışındaki komutlara pek ihtiyacınız olmayacaktır, yine de yeri geldikçe onlara da değineceğiz.
Listede kullanılacak semboller aşağıdaki gibidir:
label: Etiket veya adres
reg: Register
an: Adres register'ı, A0-A7
dn: Data register'ı, D0-D7
kaynak
hedef
Kaynak: Wardom http://www.wardom.org/showthread.php?t=226347
<ea>: Efektif adres
#n: Değer
3.1. Dallanma Komutları
BCC label Koşullu dallanma
BRA label Koşulsuz dallanma (JMP)
BSR label Alt rutine dallanma (RTS ile dönülür)
JMP label Koşulsuz dallanma (BRA)
JSR label Alt rutine dallanma (RTS ile dönülür)
RTS Alt rutinden geri dön (JMP, BSR)
3.2. Aritmetik İşlem Komutları
ADD kaynak,hedef hedefe, kaynağı ekler
ADDI #n,<ea> adrese n ekler
CLR <ea> Adres temizlenir
CMP kaynak,hedef Kaynak ve hedef adreslerin bitleri karşılaştırılır
DIVS kaynak,hedef Hedef (32 bit) Kaynağa (16 bit) bölünür, bölme işleminin sonucu Hedef'in alt-word'ünde, kalan ise üst-word'de tutulur. Bölme işlemi işaret dikkate alınarak yapılır (Signed)
DIVU kaynak,hedef Hedef (32 bit) Kaynağa (16 bit) bölünür, bölme işleminin sonucu Hedef'in alt-word'ünde, kalan ise üst-word'de tutulur. Bölme işlemi işaret dikkate alınmadan yapılır (Unsigned)
MULS kaynak,hedef Hedef (word), kaynak (word) ile çarpılır, sonuç hedef'te tutulur (longword)
MULU kaynak,hedef Hedef (word), kaynak (word) ile çarpılır, sonuç hedef'te tutulur (Unsigned)
NEG <ea> Negatife çevirir (2'lik sistemde komplement)
SUB kaynak,hedef hedef'ten kaynağı çıkarır
SUBI #n,<ea> adresten n çıkarır
TST <ea> Adres test edilir sonuç N ve Z bayraklarını etkiler
3.3. Mantıksal İşlem Komutları
AND kaynak,hedef hedef, kaynak ile mantıksal VE işleminden geçer
ANDI #n,<ea> hedef, n ile mantıksal VE işleminden geçer
EOR kaynak,hedef hedef, kaynak ile mantıksal XOR işleminden geçer
EOR #n,<ea> hedef, n ile mantıksal XOR işleminden geçer
NOT <ea> Adresin mantıksal DEĞİL'i alınır
OR kaynak,hedef hedef, kaynak ile mantıksal VEYA işleminden geçer
ORI #n,<ea> hedef, n ile mantıksal VEYA işleminden geçer
3.4. Bit İşlem Komutları
BCHG #n,<ea> Adresin n'inci bitini ters çevirir (toggle)
BCLR #n,<ea> Adresin n'inci bitini temizler (sıfır yapar)
Kaynak: Wardom http://www.wardom.org/showthread.php?t=226347
BSET #n,<ea> Adresin n'inci bitini set eder (bir yapar)
BTST #n,<ea> Adresin n'inci bitini test eder, Z bayrağını etkiler
ASL, ASRn, <ea> Aritmetik sola, sağa kaydırma
LSL, LSRn, <ea> Mantıksal sola, sağa kaydırma
ROL, RORn, <ea> Sola, sağa döndürme
3.5. Veri transfer KomutlarıEXG rn,rn İki register'ın içerikleri değiştirilir
LEA <ea>,an an adres register'ına verilen efektif adres yüklenir
MOVE kaynak,hedef Kaynak'tan okunan değer hedef'e yazılır
SWAP dn dn data register'ının alt-word'ü ile üst-word'ünü yer değiştirir
Genel olarak 68000 komutları bunlardır, bu komutların pek çoğunda .b, .w ve .l gibi işlemin kaç bit üzerinden yapılacağını belirleyebiliriz.
Bu sayıda veri transfer komutlarına biraz daha detaylı bakalım, bu diğer komutları da anlamanıza yardımcı olacaktır. Sonraki yazılarımızda diğer komutları da detaylıca inceleyeceğiz.
4. Veri Transfer KomutlarıMove komutları veri transfer işlemini gerçekleştirirler. İleride detaylı olarak değineceğimiz pek çok adresleme yöntemini kullanabilirler.
Genel kullanımı "MOVE kaynak,hefef" şeklindedir; aşağıdaki örnekleri inceleyiniz;
move.l #12,d0 ;D0 registerine
;12 degeri koy (32bit)
move.w #$1234,d7 ;D7'ye $1234
;degeri koy (word)
Bir register'a word olarak değer girdiğinizde 32 bitlik register'ın alt 16 biti değişir ve üst 16 bit aynı kalır. Örneğin;
move.l #$11223344,d0 ;D0 => $11223344
move.w #$5566,d0 ;D0 => $11225566
move.b #$77,d0 ;D0 => $11225577
NOT: Komutlarda sonek kullanmadığınızda .w olarak kabul edilir. Ancak bazı komutlar sadece 8 bit veya sadece 16 bit destekliyorsa derleyici uygun şekilde derleme yapacaktır.
7 Kasım 2010 Pazar
Amiga Assembly Komutları Anlamları
22:59
Leon4rdo
0 yorum:
Yorum Gönder