دو نوع اسمبلر بر اساس تعداد گذرها از روی کد منبع برای تولید برنامهٔ قابل اجرا وجود دارد:

 

  • اسمبلرهای یکبار-گذر فقط یک بار از روی کد عبور می‌کنند. هر نمادی که قبل از تعریف شدنش استفاده شده باشد به یک خطا (به انگلیسی: errata) در پایان کد آبجکت (یا حداقل، بعد از محل تعریف در کد آبجکت) نیاز دارد تا به پیوندده اعلام کند که برگرد و حفره‌ای را که بر اثر استفاده از این نماد قبل از تعریف شدنش، جاگذاشته شده بود بازنویسی کن.
  • اسمبلرهای چندبار-گذر جدولی از تمامی نمادها و مقادیر آن‌ها در گذر اول ایجاد می‌کنند، و سپس در گذرهای بعدی با استفاده از این جدول، نمادها را با مقادیر آن‌ها جایگزین کرده و فایل اجرایی را تولید می‌کنند.

هدف اصلی در استفاده از اسمبلرهای یکبار-گذر، سرعت اسمبل کردن بود، زیرا در گذر دوم به برگرداندن و بازخوانی نوار یا کارت پانچ، که در گذشته برای ذخیره‌سازی کدها استفاده می‌شدند، نیاز بود. این مشکل بعدها با وجود کامپیوترهای جدید برطرف شد. مزیت اسمبلرهای چندبار-گذر این است که در نبود خطاها در کد آبجکت، فرایند پیونددهی سریع‌تر انجام می‌شود.

اسمبلرهای سطح-بالا

اسمبلرهای پیچیده‌تر سطح-بالا انتزاع‌های زبانی زیر را فراهم می‌کنند: