Ö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.

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