80×86 Assembly – MOV Komutu

MOV Komutu

İki işlenen ile kullanılan MOV komutu ikinci işlenendeki veriyi ilk işlenene atar(taşır,aktarır). Ancak MOV komutunun bazı kısıtlamaları vardır; her iki işlenen de mem ve sreg olamayacağı gibi ilk işlenen sreg iken ikinci işlenen idata olamaz.

80×86 Assembly serisini sıralı şekilde takip etmiyor veya aradan zaman geçtiği için unutmuş olabilirsiniz. sreg, mem gibi deyimleri 8. derste hangi anlamlara geldiklerini belirten bir tablo oluşturmuştuk. Bu tabloyu farklı bir sayfa da açık tutmanızda fayda var.

  • Desteklenen mimarilar: 8086/80286/80386/80486

yukarıdaki kod satırındaki şekilde ifade edilen komut, src‘nin değerine dest‘e yerleştirir. (dest <- src) En önemli özelliği bayraklar üzerinde herhangi bir değişiklik yapmamasıdır. MOV komutunda iki işlenenin de aynı veri tipinde (data type) olması son derece önemli bir noktadır, aksi halde C gibi düşük seviyeli programlama dillerinde de olduğu gibi veri tipi uyuşmazlığı verecektir. İşlenenlerden biri mem olması durumunda veri tiplerinin uyumlu olup olmadığını tespit etmekte zorluklar oluşacaktır ve çözüm olarak PTR komutundan yararlanılınabilir.

Olası MOV işlenen kombinasyonları;

Komut İşlenen 1 İşlenen 2
MOV reg idata
MOV mem idata
MOV reg reg
MOV reg mem
MOV mem reg
MOV sreg reg
MOV sreg mem
MOV reg sreg
MOV mem sreg

 

MOV Komutu Örnekleri

sonuc isimli bellek alanından, AL yazmacına veri aktarılmaktadır. sonuc isimli bellek alanının (yani değişkenin) byte olarak tanımlanmış olması gereklidir.

AL yazmacındaki değer, AH yazmacına atanır.

veri isimli bellek alanına 13 değeri atanır. İkinci işlenen yani kaynak işleneni olan 13 sayısı hem byte hem de word bir büyük olarak ifade edilebileceği dikkate alındığında veri isimli değişkenin byte veya word olarak tanımlanmış olmasının işleyişe etkisi olmayacak ve atama işlemini gerçekleştirecektir.

Bellek alanına adres ile erişilmesi durumunda veri tipi uyuşmazlığı söz konusu olabilir. Yazılımcı, bellek üzerinde işlemleri hangi boyutta (word/byte) yapmak istediğine bağlı olarak gerekli veri tipi tanımlamasını yapmalıdır. Bunun için uygun tipte adresleme kipi kullanılabilir veya PTR sözde komutu ile tip belirlemesi yapılmalıdır.

1001H <- 0AH , 1002H <- 12H değeleri yerleştirilir.

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *