2013-08-08 34 views
5

Başparmak modu talimatları 2 bayttır ve ARM modu talimatları 4 bayttır. ekran görüntüsü, başparmak modu talimatlarının bir söküm şeklidir. Neden 2 bayt talimatıyla karıştırılmış 4 bayt talimatı görüyorum? birisi bunu açıklayabilir mi?kol başparmak modu 4bayt talimatları

şimdiden teşekkür ederiz.

enter image description here

+2

Çünkü ** thumb-2 **. –

+0

Asıl soru, bu iki mov komutunun 2 bayt (thumb1) yönergeleri olarak kodlanabildiklerinde neden 4 bayt olduğudur. –

+3

* thumb-1 * 32bit işlem koduna sahip değil. Sadece * thumb-2 * 'mov.w' vb. Vardır. Bir işlemci, komutlar arasındaki modları (BLX, vb.) Değiştiremez, bu yüzden bu kodun * thumb-2 * olması gerekir. 'Bl' ve 'blx' bile * thumb-1 * içinde 16bit'dir. –

cevap

1

Cortex M mikroları başparmak ve ARM modları arasında bir şey olduğunu Thumb-2 modunda yalnızca çalışabilir. Thumbs-2 komut seti 16 ve 32 bit komutları içerir ve işlemcinin her iki talimatı da yürütmek için anahtar modlarına ihtiyaç duymaz.

0

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0471i/CHDFEDDB.html

veya pdf

http://infocenter.arm.com/help/topic/com.arm.doc.dui0471i/DUI0471I_developing_for_arm_processors.pdf

başparmak-2 teknolojisi ARMv6T2 ve sonraki mimarileri kullanılabilir. Thumb-2 teknolojisi, Thumb talimat setinin önemli bir geliştirmesidir. Bir programda 16 bit komutlarla serbestçe karıştırılabilen 32 bitlik yönergeler ekler. Ek 32 bit kodlu Başparmak talimatları, KOL komut grubunun işlevselliğinin çoğunu kapsayacak şekilde Thumb'ı etkinleştirir. 16-bit ve 32-bit komutların kullanılabilirliği, Thumb-2 teknolojisinin, daha önceki Başparmak sürümlerinin kod yoğunluğunu, ARM komut setinin performansı ile birleştirmesini sağlar.