В чем разница между ближней и дальней процедурой в микропроцессоре 8086?
- Вызов ближайшей процедуры или переход используется, когда целевая процедура или адрес перехода находится внутри текущего сегмента кода.
- Смещение или расстояние от начала сегмента кода кодируется в 16-битном смещении.
- Метод close позволяет вызывать процедуры/переходы внутри сегмента кода размером 64 КБ с помощью одной машинной инструкции.
Дальняя процедура:
- Вызов дальней процедуры или переход используется, когда целевой адрес находится в сегменте, отличном от текущего.
- Он включает в себя 16-битное значение сегмента и 16-битное смещение смещения, что позволяет вызывать процедуры/адреса перехода в любой ячейке памяти.
- Вызовы дальней процедуры/перехода требуют двух инструкций:первая загружает сегмент в регистр адреса сегмента (DS/CS/SS/ES), а вторая содержит команду перехода рядом со смещением адреса.
Сводная таблица
| Особенность | Рядом с процедурой | Дальняя процедура |
|:---|:---|:---|
| Область применения | В пределах одного и того же сегмента кода | В разных сегментах кода |
| Размер смещения | 16-битное смещение | 16-битный сегмент + 16-битное смещение |
| Количество инструкций | 1 инструкция | 2 инструкции (одна для загрузки сегмента и одна для прыжка рядом) |