Использование этого оператора позволяет нам перемещаться по коду. То есть фактически команда JMP меняет регистр IP. Переход производится на метку. Итак, нам нужно указать команду перехода:
JMP метка
И саму метку
метка:
Давайте изменим пример шага "Шаг 3 - Программа HelloWord". Так, чтобы обойти вывод строки:
MODEL TINY STACK 256 DATASEG Hellostr DB 'Hello First Step Site ' CODESEG start: mov ax,@data mov ds,ax jmp w1 mov bx,1 mov cx,21 mov dx,offset Hellostr mov ah,40h int 21h w1: mov ah, 04Ch mov al, 1h int 21h end start
Мы просто переходим на метку. А теперь смотрим, как все это выглядит в отладчике:
В результате у процессора есть точно такая же команда перехода. Нажимаем на F8 еще раз:
Обратите внимание, что регистр IP стал 0015 в данном случае, то есть JMP указывает IP куда нужно переместить указатель команд. После выполнения указатель команд стоит по этому адресу, а ненужные команды мы проскочили.
Итак JMP позволяет нам произвольно перемещаться по коду.