Assembly – Farklı Atama Yolları Mov ve ‘=’ Kullanımı

Öncelikle, eğer okumadıysanız bir önceki konu olan  Assembly – Aritmetik Islemler ADD,SUB  isimli konuyu okumanızı tavsiye ederim.
Tüm konulara ise Assembly Kodlama linkinden ulaşabilirsiniz.



Bu konuda Assembly‘de bir register’a nasıl başka bir sayı atayabileceğimizi daha farklı ve biraz daha basit olan bir yoldan göreceğiz.
Biz bir önceki konuda bir isime sayı atıyor. Sonrasında bu sayının bir adresini belirtiyor ve bu adresten o sayıyı çekiyor ve son bir register’a atıyorduk.

Peki Neden Bunu Yapıyorduk?
Adresleme mantığı Assembly’nin en önemli özelliği ve bu temeli anlamadan ilerlememiz çok daha zor olur ama bu temeli öğrendiğimize göre diğer MOV gibi diğer atama yollarını da görebiliriz.

Mov Kullanımı

  • Mov –> Move kelimesinden gelir ve bir register’a sadece bir rakam veya bir register’a farklı bir register’daki değeri atamada kullanılır. Sytnax‘ı aşağıdaki gibidir.

MOV Register , #constant
MOV r3, #5
r3 = 5 anlamına gelir.

MOV Register , Register2
MOV r3,r2
r3 = r2 anlamına gelir.
r2’deki değeri r3’e atar.

LDR Kullanımı

Daha önceki konularda biz LDR komutunu bir adresin gösterdiği değeri bir register’a atamak için aşağıdaki gibi kullanıyorduk.

 aa    DCD    3 ;aa = 3
 bb    DCD    2 ;bb = 2
    
    ADR    r0,aa ;r0 = aa'nın adresi
    LDR    r1,[r0] ;r1 = 3 yani adresin gösterdiği değer
    
    ADR    r2,bb ;r2 = bb'nin adresi
    LDR    r3,[r2] ;r3 = 2 yani adresin gösterdiği değer

Ama şimdi bir isim atamak ve onun adresini ADR kullanarak tekrardan bir register’a atamak yerine =’ kullanarak bu sorunu çözeceğiz. Assembly’de parantez bir adresin içindeki değer anlamında kullanılırken eşittir direk olarak bir sayıyı ifade ediyor.

	LDR		r0,=5   ;r0 = 5
		LDR		r1,=10  ;r1 = 10
		
		MOV		r1,r0   ;r1 = r0
		MOV		r0,#10  ;r0 = 10

Yukarıdaki örnekte ilk olarak r0 ve r1 değerlerine 5 ve 10 değerlerini ‘=’ ve LDR kullanarak atıyoruz. Daha sonra MOV komutu ile r1 register’ına r0’daki değeri atıyor ve en son r0 register’ına 10 değerini atıyoruz. Tabi bunların atamanın bir amacı yok ancak gereken syntax‘i öğrenmek açısından önemli.

Yukarıdaki kod parçasının VisUAL’da gösterimi



Konunun sonuna gelmiş bulunuyoruz eğer herhangi bir sorunuz varsa Hakkımda bölümünden veya aşağıya cevap yazarak bana ulaşabilirsiniz. Bir sonraki konuda görüşmek üzere.


Bir Sonraki Konu : –>
Assembly – Mantıksal İşlemler – ADDEQ, SUBGT

Bir Önceki Konu:  <–
Assembly – Aritmetik Islemler ADD,SUB

Yer işareti koy Kalıcı Bağlantı.

Bir cevap yazın

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