Razlika med navodili JUMP in CALL?
1. Učinek na sklad :
- JMP:ukaz JMP ne vpliva na sklad. Preprosto prenese nadzor na določeno destinacijo, ne da bi kar koli potisnil ali izstrelil iz sklada.
- CALL:Navodilo CALL potisne povratni naslov na sklad, preden prenese nadzor na podani cilj. To omogoča, da se program po izvedbi podprograma ali funkcije vrne na prvotno mesto klica.
2. Uporabite :
- JMP:Navodilo JMP se običajno uporablja za brezpogojne skoke, kjer se program vedno razveji na podani cilj.
- CALL:ukaz CALL se običajno uporablja za klic podprograma ali funkcije. Ko se izvede ukaz CALL, program skoči na določen cilj in začne izvajati kodo na tem mestu. Ko se podprogram ali funkcija konča z izvajanjem, uporabi ukaz RET (vrnitev), da vrne povratni naslov iz sklada in vrne nadzor na klicno lokacijo.
3. Vpliv na izvajanje programa :
- JMP:ukaz JMP takoj prenese nadzor na podano destinacijo, ne da bi izvedel dodatna navodila v trenutnem kodnem bloku.
- CALL:Ukaz CALL ne le prenese nadzor na določeno destinacijo, ampak tudi potisne povratni naslov na sklad, kar omogoča, da se program po izvedbi podprograma ali funkcije vrne na prvotno lokacijo.
Če povzamemo, ukaz JMP se uporablja za brezpogojne skoke in ne vpliva na sklad, medtem ko se ukaz CALL uporablja za klicanje podprogramov ali funkcij, ki potisne povratni naslov na sklad, da omogoči pravilno vrnitev na klicno lokacijo.