КОМАНДЫ БЕЗУСЛОВНОЙ ПЕРЕДАЧИ УПРАВЛЕНИЯ
К командам настоящей группы относятся команды переходов, вызовов
(подпрограмм) и возвратов (из подпрограмм). Переходы загружают значение в
указатель команды IP, нарушая этим последовательное выполнение команд. Вызовы
выполняют то же самое, но вначале они запоминают текущее значение содержимого
указателя IP в стеке, так что в последующем можно возобновить выполнение
программы с этой точки. Возвраты и осуществляют это возобновление; они берут
элемент из стека и возвращают его в указатель команды. Вызовы и возвраты -
средства организации процедур.
Но пока ничего нового в сказанном нами нет. Новым в процессоре 80286 является
то, что переходы, вызовы и возвраты бывают двух видов - внутрисегментные и
межсегментные.
Первые из них передают управление внутри текущего сегмента кода, а вторые - в
произвольный сегмент кода (изменяя содержимое регистра CS), который становится
текущим сегментом кода.
Очевидно, межсегментные передачи управления могут сделать все, что делают
внутрисегментные, и что-то еще. Зачем же потребовались две разновидности команд?
Просто потому, что межсегментные передачи управления выполняются дольше (ведь
они и делают больше); кроме того, за исключением возвратов, они оказываются
длиннее (им нужно больше информации).