JMP командасы арқылы циклдерді ұйымдастыру (екін- ші әдісі)
Jmp командасы басқаруды берілген немесе басқа программа-
лық сегменттің көрсетілген нүктесіне береді. Қайту адресі сақ- талмайды. Команда процессордың флагтарына әсер етпейді.
Jmp командасының бес түрі болады:
- қысқа тура ауысу (- 128... + 127 байттар аралығында);
- жақын тура ауысу (ағымдағы программалық сегмент ау- мағында);
- алыс тура ауысу (басқа программалық сегментке);
- жақын жанама ауысу;
- алыс жанама ауысу.
Барлық ауысулардың түрі jmp командасын пайдаланады, бі- рақ әртүрлі амалдар кодынан тұрады. Көп жағдайларда трансля- тор контекст бойынша ауысу түрін анықтайды, ол мүмкін бол- маған кезде, атрибуттік операторлар (short – тура қысқа ауысу; near ptr – тура жақын ауысу; far ptr – тура алыс ауысу; word ptr – жанама жақын ауысу; dword ptr – жанама алыс ауысу) арқылы орындалады.
Команда
|
Атқаратын қызметі
|
Процессор
|
JMP белгісі
|
Шартсыз ауысу
|
8086
|
Келесі мысалды қарастырамыз:
org 100h
|
; СОМ – файлдың басы
|
1
|
2
|
begin:
|
; программа кодының басталу белгісі
|
label1:
|
; белгіні құрамыз (Label – белгі).
|
mov ah,9
|
; АН регистріне 9 жолды жылжытамыз.
|
mov dx,offset String
|
Мәліметтер сегментінің басталуынан салыс- тырмалы String белгісінің ығыстырылуын DX ре- гистріне орналастырады
|
int 21h
|
; «жолды шығару» функциясы
|
jmp Label1
|
; Label1 белгісі бар жолға көшу
|
150
1
|
2
|
add cx,12
|
; cx регистрінің мәніне 12 санын қосу
|
dec cx
|
; cx регистрінің мәнін 1-ге азайту
|
ret
|
; «программаны аяқтау» функциясы
|
string db "SALEM",13,10,
|
; баспаға шығарылатын мәліметтердің жолы
|
end begin
|
; программа кодының аяқталу белгісі
|
Достарыңызбен бөлісу: |