goto

skok na adresu

Jasmin Syntax

 
 
    goto <label>
 

<label>  je identifikátor návestia. Definuje  miesto označenia, použí  <návestie> meno  dvojbodka :

 

 
<label>:

 

<label> Teraz nastane a asociácia adresy s nasledujćou inštrukciou. Návestia môžu mať  len pridelené jedno miesto v metóde. Na druhej strane, jednoduché <návestie> môže byť cieľom mnohonásobných inštrukcií skoku.

Zásobník

Pred

Po

...

...

Popis

Spôsobuje skok  inštrukcií na adresu (pc + branchofset), kde pc je adresa skoku goto  v  bajtkóde a branchofset je 16-bit číslo so znamienkom parameter po ktorom hneď  následuje skok v bajtkóde. V Jasmine Branchoffset sa vypočíta použitím adresy združenej s návestím.

Príklad

;     while (true) { i++; }
 
Label:
   incr 1 1       ; Inkrementuje lokálnu premennú 1 jednotkou
   goto Label     ; skočí späť na návestie (Label)

Bajtkód

Typ

Popis

u1

Goto opcode = 0xA7 (167)

s2

branchoffset

Tiež pozri:

goto_w, jsr, jsr_w

Poznámky

Adresy sú merané v  bajtoch  zo začiatku  bajtového kódu - t.j . adrese 0 prislúchajú prvé bajty  bajtového kódu aktuálne vykonávanej metódy. Maximálna  adresa v metóde je 65535.