Toate structurile de control din limbajele de nivel înalt (if/else, while, for) sunt traduse de compilator în etichete și instrucțiuni de salt (Jumps) care modifică registrul pointer de instrucțiuni RIP.
Implementarea structurii if (nota >= 5) Admis else Respins
; Să presupunem că registrul RDI conține nota elevului:
cmp rdi, 5
jl caz_respins ; Jump if Less (dacă nota < 5, sari la eticheta caz_respins)
caz_admis:
mov rax, 1 ; 1 = Admis
jmp sfarsit_decizie ; Salt necondiționat pentru a sări peste ramura else!
caz_respins:
mov rax, 0 ; 0 = Respins
sfarsit_decizie:
; Aici continuă execuția programului
| Salt cu semn (Signed) | Semnificație | Salt fără semn (Unsigned) | Semnificație |
|---|---|---|---|
je / jz |
Egal / Zero | je / jz |
Egal / Zero |
jne / jnz |
Diferit / Non-Zero | jne / jnz |
Diferit / Non-Zero |
jg |
Mai mare (Greater) | ja |
Mai mare (Above) |
jl |
Mai mic (Less) | jb |
Mai mic (Below) |
jge |
Mai mare sau egal | jae |
Mai mare sau egal |
Întrebări & Exemple de Cod:
Controlul Fluxului: Salturi Necondiționate (JMP) și Condiționate (JE, JNE, JG, JL)Ai o nelămurire despre utilizarea comenzii
Controlul Fluxului: Salturi Necondiționate (JMP) și Condiționate (JE, JNE, JG, JL)sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.