Android İpucu – Thumb Modu

Android veya Arm işlemciler için yazılım geliştiren arkadaşlar VS içerisindeki “General->Project Defaults” altındaki “Thumb Mode” ayarı sizlerin de merakınızı cezbetti mi?
Bu çok kısa yazımda bu ayardan çok kısaca bahsedeceğim. Bu konu hakkında daha detaylı bilgi için aşağıdaki referansları karıştırabilirsiniz. Bu yazımda da Stackoverflow’daki cevaplardan faydalandım.

ARM işlemciler iki temel komut seti sunuyorlar:

  • ARM: Buradaki bütün komutlar 32-Bit uzunluğunda,
  • Thumb: Burada ise çoğu komut 16-Bit olmak ile birlikte bazı 32-Bit komutlar da sunulmakta.

Hangisini kullanacağınızı VS de olduğu gibi yazılımı oluştururken belirliyorsunuz ve bunlardan çalışma zamanında sadece biri aktif olmakta (Thumb ise komutlar Thumb komut setine göre ayrıştırılır, ARM ise ARM komut satırına göre).

Her ne kadar bunlar farklı komut satırları olarak da görünseler, aslında aynı kabiliyetlerı sunarlar ve aynı Assembly kodları ile ifade edilirler.
Ör:

kodu

olarak ifade ediliyor. Elbette bu iki komutta aynı işlevi yerine getiriyorlar sadece kodlama türleri ve uzunlukları farklı. Thumb’ta bulunan her komutun ARM’da da bir karşılığı bulunmaktadır.

Gelelim Android durumuna. Varsayılan olarak Android Thumb setini kullanıyor, çünkü bu daha kompak kod üretiyor ve kod biraz daha küçülüyor (tabi burada da anlatıldığı üzere bu küçülme öle yarıya inme kadar olmuyor).

Kısaca söylemek gerekirse Thumb ile oluşturulan kodlar biraz daha yavaş olsa da, ARM ile oluşturulan kodlara göre daha kompak oluyorlar. Hikayenin özeti bu 🙂

Bir sonraki paylaşımda görüşmek üzere.

Kaynaklar:

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.