Алаш жанама ту: JMP m32

Бл командада натылы ту адресі жазылатын екіеселі сз крсетіледі. Ол сз екі бліктен трады: сегмент ішіндегі ту адресі mem32 адресіне, ал сегмент mem32+2 адресіне жазылады:

CS:=[mem32+2] ;IP=[mem32]

Мысалы:

X DD L ;X offset L, X+2: seg L

. . .

JMP X ;goto L (CS:=seg L,IP:=offset L)

. . .

Жанама ту командасын жазуда са болу керек. Егер командада, осы командаа дейін сипатталан, Х атауы крсетілсе, онда оны кездестіріп, ассемблер Х екіеселі сз екенін біледі де, осы командада алша ту орындалатынын тсінеді. Ал егерде Х кейін сипатталса, онда ассемблер ту командасын кездестіріп, бл жадайда андай ту жасалатынын білмейді де, бл атау кезекті сегментті белгісі деп жорамалдап, жаын ту машиналы командасын алыптастыралы. Содан, кезекті сегментте ондай белгіні жотыы аныталанда, ассемблер ателік крсетеді. Осындай жадайды болдырмау шін алша жанама туде ала сілтеу шін атау екіеселі сз екендігін айын крсету ажет. Ол шін PTR операторы олданылады:

JMP DWRD PTR X

Жоарыда айтыландай бл трізді ала сілтеу шін анытаулар жаын тулерде де жасалады. Осы айтыландарды брінен келесі ереже туады: егер Х ала сілтеу болса, онда шартсыз ту командасын жазу дрыс болады:

· JMP NEAR X - жаын тура зын ту, NEAR типін жазбаса да болады

· JMP SHORT X - жаын тура ыса ту

· JMP FAR PTR X - алша тура ту

· JMP WORD PTR X - жаын жанама ту

· JMP DWORD PTR X - алша жанама ту

Осы трізді анытауларды JMP командасында жанама ту крсетілгенде де жасау керек, мысалы, JMP [BX]; нсіз келісім бойынша ассемблер мндай команданы жаын жанама ту ретінде абылдайды.

Ал Х- ті арта сілтеу болатын жадайын арастырса, онда ту трін тек алшатан тура туде ана міндетті трде анытау керек: ассемблер Х- ті баса командалар сегментінен екендігін білетра JMP X командасын алшатан ту деп арастырмайды.

 

детте машиналы программанны командалары бірінен со бірі біртіндеп орындалады. Осы ретті згерту шін ту командалары олданылады. ту командалары шартты ту жне шартсыз ту болып блінеді. Шартсыз ту деген бірден ту, ал шартты ту деген андайда бір шартты орындап барып теді.

Тура ту командасы.Бл жадайда операнд ретінде келесі орындалатын команданы белгісі крсетіледі.

 

JMP < белгі >

JMP L

.......

......

L: MOV AX, 0

Персоналды компьютерде 2 тура ту командасы бар. Оны біріне, салыстырмалы адрес – байт трінде крсетеді, ал екіншісінде салыстырмалы адрес – сз трінде крсетеді. Сз трінде крсетілгенде, зын ту командасы деп аталады, ал байт трінде крсетілгенде, ыса ту командасы деп аталады. JMP L; - зын ту командасы (3 байт орын алады). JMP SHORT L; - ыса ту командасы (2 байт орын алады).