Keil ARM Assembly - Label sorunu

Mikro Step

Kıdemli Üye
Katılım
25 Eylül 2022
Mesajlar
6,962
Keil de ARM assembly program yazarken buyuk bir derdim var. Sorunumu yurt disi sitelerde dile getirmeden once burda dile getireyim. Belki cevabi burdadir.

Yuksek duzeyli dillerde function ya da procedure (F/P) icinde ziplayarak dallanma yapabiliyor ve bu amacla label kullanabiliyoruz. Usteli farkli F/P icinde ayni label'i kullanabiliyoruz. F/P disindan bu labellara ziplamak mumkun olmadigi icin derleyici ayni Labellarin kullanilmasina ses cikartmiyor.

Fakat Keilde assembly kodlama yaparken farkli F/P icinde ayni labellari kullanmanin yolunu bulamadim.

Bosuna mi arayis icindeyim yoksa bunun bir yolu var mi?

ASM kodlamada cok fazla dallanma yapildigi icin cok sayida label'a ihtiyac duyuluyor. Anlasilirlik icin labellarin amaca uygun secilmesi gerekiyor bu da bir sure sonra label icin uygun kelime arayisinda kitliga neden oluyor.

Mesela Wait, Bekle gibi kelimeler cok gerekiyor. Wait1 Wait2 gibi isimler kullanmak icin en son kullanilan WaitN N sayisini hatirda tutmak gerekiyor. Hatirimda tutsam bile bu tip labellar hosuma gitmiyor.
 
Son düzenleme:
Eğer bir şekilde GNU toolchain kullanma şansın varsa Keil geliştirme ortamı ile, GNU assembler'da lokal label desteği var.
 
Lokal label olarak ben isim kullanmıyorum rakam kullanıyorum. Ama dediğim gibi GNU assembler bu, keil'in kendi assembler'inin durumunu bilmiyorum.

Kod:
.global memset16
.type memset16, %function

; r0 = dst
; r1 = data
; r2 = count
memset16:
    push {r7, lr}
    mov r7, sp

0:
    strh r1, [r0], #2
    subs r2, r2, #1
    bgt 0b

    mov sp, r7
    pop {r7, pc}
 

Forum istatistikleri

Konular
7,703
Mesajlar
128,257
Üyeler
3,112
Son üye
wyzt

Son kaynaklar

Son profil mesajları

Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
az bilgili çok meraklı
Back
Top