Keil ARM Assembly - Label sorunu

Mikro Step

Kıdemli Üye
Katılım
25 Eylül 2022
Mesajlar
7,902
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
8,640
Mesajlar
141,251
Üyeler
3,438
Son üye
apo

Son kaynaklar

Son profil mesajları

Abdullah karaoglan falcon_browning Abdullah karaoglan wrote on falcon_browning's profile.
selamın aleyküm ses sistemindeki cızırtıyı hallettınızmi
"Araştırma, ne yaptığını bilmediğinde yaptığın şeydir." - Wernher von Braun
“Kendi yolunu çizen kişi, kimsenin izinden gitmez.” – Nietzsche
Kim İslâm’da güzel bir çığır açarsa (güzel bir alışkanlık başlatırsa), onun sevabı ve kendisinden sonra ona uyanların sevapları, onların sevaplarından hiçbir şey eksilmeksizin ona da yazılır.
erdemtr55 taydin erdemtr55 wrote on taydin's profile.
Merhaba Taydin bey,
Gruba spms serisi yapıcak mısınız?
ben 3 sargılı toroid ile 2 adet flyback sürücek bir devre yapmayı düşünüyorum.size soracak sorularım vardı?
Back
Top