Şu anda bir sınıf için ARM montajını öğreniyorum ve bir "dizi" kullanmam gereken bir problemle karşılaştım. ARM'de bir dizi gibi bir şey olmadığının farkındayım, bu yüzden alanı tahsis etmek ve bir dizi olarak ele almak zorundayım. İki sorum var.ARM düzeneğinde bir dizi nasıl düzgün oluşturulur?
- Diziye doğru yeni değerler ekliyor muyum yoksa sadece önceki değerin üzerine yazıyor muyum? Değerlerin üzerine yazıyorsam yeni değerler eklemeye nasıl başlarım?
- Dizinin farklı değerleri arasında nasıl dolaşırım?
loop:
'u kullanmam gerektiğini biliyorum, ancak farklı "dizinler" e erişmek için onu nasıl kullanacağımı bilmiyorum.
Şimdiye kadar, çevrimiçi kaynaklardan derlediğim gibi, ARM dökümantasyonunu okuduğum şey budur. Benim profesör gerektirdiği, bu nedenle GNU araçları tarafından tanınan bazı komutlar ARMSim # tarafından tanınan veya olmayacak gibi ben ARMSim# kullanıyorum bir yan not olarak
.equ SWI_Exit, 0x11
.text
.global _start
_start: .global _start
.global main
b main
main:
ldr R0, =MyArray
mov R1, #42
str R1, [R0], #4
mov R1, #43
str R1, [R0], #4
swi SWI_Exit
MyArray: .skip 20 * 4
.end
, en azından ben bu durumda olduğuna inanıyoruz. Yanılıyorsam lütfen beni düzeltin.
Neden aşağı oy? Evet, bu kısmen ev ödevi ile ilgilidir, ancak bu bilgiyi başkalarına faydalı görebiliyorum ve görevimi nasıl yapacağımı sormuyorum. – allejo
Bu şekilde belirtmek isterseniz, herhangi bir işlemci ailesinde dizi olarak bir şey yoktur, sadece kol değil. Diziler aslında yok, sadece bir yerde başlayan bir bellek bloğu. Birçok komut seti, kesinlikle kol, bir dizi saf bir his elde etmenizi sağlayan bir kayıt ofset adresleme modunu destekler. Gelecekte yaptığınız ifadeyi yapmaya dikkat ediyorum. –
@dwelch Ah not için teşekkürler, anlayışımla çok yardımcı oldu. Ben de onları bir dizi – allejo