אסמבלר מוטמע עבור ארכיטקטורות Thumb2

מסמך זה מניח היכרות מסוימת עם תכנות בשפת אסמבלי. לתיאור תמציתי של מערך הפקודות עיינו ב-ARM Thumb-2 Instruction Set Quick Reference Card תחת References למטה. האסמבלר המוטמע תומך בתת-קבוצה של מערך הפקודות ARM Thumb-2 המתואר כאן. התחביר מנסה להיות קרוב ככל האפשר לזה המוגדר על ידי ARM, מומר לקריאות פונקציה של Python.

פקודות פועלות על נתוני מספרים שלמים עם סימן ברוחב 32 ביט, אלא אם צוין אחרת. רוב הפקודות הנתמכות פועלות על האוגרים R0-R7 בלבד: כאשר R8-R15 נתמכים, הדבר מצוין. יש לשחזר את האוגרים R8-R12 לערכם ההתחלתי לפני החזרה מפונקציה. האוגרים R13-R15 מהווים את ה-Link Register, ה-Stack Pointer וה-Program Counter בהתאמה.

מוסכמות המסמך

במידת האפשר, התנהגות כל פקודה מתוארת ב-Python, לדוגמה

  • add(Rd, Rn, Rm) Rd = Rn + Rm

הדבר מאפשר להדגים ב-Python את אפקט הפקודות. במקרים מסוימים זה בלתי אפשרי משום ש-Python אינו תומך במושגים כגון הפניה עקיפה (indirection). הפסאודו-קוד המשמש במקרים אלה מתואר בעמוד הרלוונטי.

קטגוריות פקודות

הסעיפים הבאים מפרטים את תת-הקבוצה של מערך הפקודות ARM Thumb-2 הנתמכת על ידי MicroPython.

דוגמאות שימוש

סעיפים אלה מספקים דוגמאות קוד נוספות ורמזים לשימוש באסמבלר.

הפניות