Anasayfa » Assembly » Makine Komutlarının İncelenmesi

Makine Komutlarının İncelenmesi

7 Nisan 2010  |  Yazar: coders  |  Yorum Yok  |  2 kez okundu
Facebook'da Paylaş Twitter'da Paylas FriendFeed'de Paylaş Makine Komutlarının İncelenmesi

Makine Komutlarının İncelenmesi

Her makina komunun firma tarafından belirlenmiş biçimleri bulunmaktadır.Bir komut öğrenilirken bütün bu biçimlerin öğrenilmesi gerekir.Komutların açıklamasında kullanılacak kısaltmalar ise şunlardır;

sreg : Segment Register
reg : Register
reg/mem : Register yada Memory
sabit : Sabir bir sayı

    MOV KOMUTU

    Bu komut register ve memory arasında transfer işleminde kullanılmaktadır..

    Biçimleri ise şunlardır..

    • reg <- -> reg/mem
    • reg/mem <- -> sabit
    • sreg <- -> reg/mem

    Not:

    Bir işlem yapılacaksa ilk tercih edilecek register AL ya da AX olmalıdır.Nedeni ise işlemci eğer operand AL ya da AX ise bazı komutları daha etkili çalıştırmaktadır.Doğrudan segment register’a sabit atılmamalıdır..

    Yani ;

    MOV SS, 1234   yerine ;
    
    MOV AX, 1234
    MOV SS, AX     yapılabilir..
    

    Mov makine komutu hiçbir flah register’ını etkilememektedir.Bellekteki istenilen bir bölgeyi görüntülemek için bellek penceresine gelinir, mouse sağ click yapılarak goto seçilir.Orada ise şunlar geçerlidir;

    • *Yalnızca offset
    • Sreg:offset
    • Segment:offset

    Hatırlatma

    Hex sistemde alfabetik karakterlerle başlayan sayılar değişken isimleriyle karşılaşabileceği için başına 0 eklenerek girilmelidir.

    Örnek olarak ;

    FC10 şeklinde değil –>> 0FC10 biçiminde yazılmalıdır..

    ADD KOMUTU

    Biçimleri

    • reg <- -> reg/mem
    • reg/mem <- -< sabit

    Örnek :

    MOV AX,BX
    MOV AX,[SI]
    

    Bu komutun etkili olduğu bayraklar ise ;

    AF,CF,OF,PF,ZF bayraklarıdır..

    ADC KOMUTU

    Biçimleri

    • reg <- -> reg/mem
    • reg/mem <- -> sabit

    Mikroişlemcilerin hemen hemen hepsinde bu işlemi yapan bir toplama komutu vardır.ADD komutundan farklı olarak iki operandın toplamından başka birde CF bayrağınıda toplamaktadır.Bu komut yardımıyla işlemcinin register uzunluğundan büyük iki tamsayı toplanabilir.Böylelikle 16 bit sistemde 32 bitlik iki sayı önce düşük anlamlı WORD değerleri ADD komutuyla , sonra yüksek anlamlı byte’ları ADC komutuyla toplanabilir.

    Örneğin:

    Dos altında C’de iki long sayıyı topladğımızda işlemler aşağıdaki gibi yapılacaktır..

    long a = 0x12345678,6 = 0x87654321;
    
    DS:200   12345678
    DS:204   12345678
    MOV AX,[200]
    ADD AX,[204]
    MOV[208],AX
    MOV AX,[202]
    ADC AX,[206]
    MOV[20A],AX
    

    Not:

    Belleğin istediğimiz bir bölgesine değer girmek için mouse bellek bölgesine getirilip click yapılır ve istenilen sayılar klavyeden girilir.

    thecoders.net | Oguzz

    Facebok'ta Paylaş

    Benzer Yazılar

    Etiketler: , , , , , , , , , , , , , , , , ,
    avatar

    Ahmet Ates

    http://www.coders.gen.tr/ 25 yasindayim. Z.K.U Biyomedikal Cihaz Teknolojisi bölümünü okudum, Programlama dilleri arasindan ilgilendiğim ve profesyonel olarak hizmet verdiğim dil Fortran'dir. Web olarak Php,Css ve hazır sistemler olarak Wordpress ve Vbulletine hayranlık besliyorum.

    Bu yazı hakkında birşeyler demek ister misiniz?

    RSS üzerinden bu yazıya yapılan yorumları takip edin.

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir.

    Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz:
    <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


    Programlama