11. הנחיות אסמבלר#

11.1. תוויות#

  • label(INNER1)

זה מגדיר תווית לשימוש בהוראת הסתעפות. כך, במקום אחר בקוד, b(INNER1) יגרום לביצוע להמשיך בהוראה שלאחר הנחיית התווית.

11.2. הגדרת נתונים מוטבעים#

הנחיות האסמבלר הבאות מסייעות בהטבעת נתונים בתוך בלוק קוד אסמבלר.

  • data(size, d0, d1 .. dn)

הנחיית data יוצרת מערך של ערכי נתונים בזיכרון. הארגומנט הראשון מציין את הגודל בבייטים של הארגומנטים העוקבים. לפיכך ההצהרה הראשונה למטה תגרום לאסמבלר להציב שלושה בייטים (בערכים 2, 3 ו-4) במיקומי זיכרון רצופים בעוד השנייה תגרום לו לפלוט שתי מילים בנות ארבעה בייטים.

data(1, 2, 3, 4)
data(4, 2, 100000)

ערכי נתונים ארוכים מבייט בודד נשמרים בזיכרון בפורמט little-endian.

  • align(nBytes)

מיישר את ההוראה הבאה לערך של nBytes. הוראות ARM Thumb-2 חייבות להיות מיושרות לשני בייטים, לפיכך מומלץ להנפיק align(2) לאחר הנחיות data ולפני כל קוד עוקב. זה מבטיח שהקוד ירוץ ללא תלות בגודל מערך הנתונים.