Skip navigation

Paraméterátadás regisztereken keresztül

Működés

A paraméter átadás egyik legegyszerűbb módja az adatok regisztereken keresztül történő átadása. Ilyenkor kihasználjuk, hogy az általános célú regiszterek tartalma nem változik az eljárások hívásakor, így az eljárás meghívása előtt a regiszterekbe tett adatok az eljáráson belül gond nélkül felhasználhatóak.

Az alábbi példa egy maximumot számító eljárást, és annak hívását adja meg. A paramétereket az EAX, és EBX regisztereken keresztül adjuk át, és az eredmény (a nagyobbik szám) az EAX regiszterben lesz visszaadva.

Az eljárás törzse

max PROC

; A ket parameter mar benne van az EAX es EBX regiszterben.
CMP EAX, EBX ; Osszehasonlitjuk a ket parametert JGE tovabb ; Ha az EAX alapbol nagyobb, akkor nincs dolgunk, megyunk tovabb. XCHG EAX, EBX ; Kulonben elvegezzuk a cseret, hogy az EAX-ban legyen a nagyobb szam. tovabb: RET ; Visszateres!
; Eredmeny az EAX-ben. max ENDP ; Eljaras vege

Az eljárás hívása

    MOV     EAX, 100    ; Egyik parameter
    MOV     EBX, 42     ; Masik parameter
    
    CALL    max