دو نوع زیربرنامه وجود دارد داخلی (intrasegment) و خارجی (intersegment).
• زیربرنامه های داخلی در همان سگمنتی که تعریف شده اند قابل فراخوانی هستند و در تعریف آنها از صفت near استفاده می شود.
• زیربرنامه های خارجی روال هائی که در سگمنت دیگری قرار دارند و از سایر سگمنت ها قابل فراخوانی می باشند و در تعریف آنها از صفت far استفاده می شود. زیربرنامه های خارجی درفایل جداگانه ای قرار دارد و هنگام لینک کردن باید به برنامه پیوند داده شوند. نتیجه کار بعد از لینک مانند زیربرنامه داخلی است.
فراخوانی از نوع near کنترل را درون همان سگمنت کد جابجا می کند وتنها مقدار IP در پشته ذخیره می شود. فراخوانی far کنترل را بین سگمنت های مختلف عبور می دهد. هر دو مقادیر CS و IP در پشته قرار می گیرند.
نکته. دستورات call و ret نوع فراخوانی را مشخص نمی کنند بلکه عملوند near|far راهنمای proc به اسمبلر می گوید فراخوانی از کدام نوع است.