| PŘÍMÉ PŘEDÁVÁNÍ PARAMETRŮCharakteristikaPřímé předávání parametrů volanému podprogramu je metodou, která zjednodušuje práci programátorovi. Tento způsob předávání parametrů využívá metodu
        předávání dat na  zásobníku, pouze jej uživatel "nevidí" a problém alokace ukládání/vydávání parametrů řeší systém interně. Použití je vhodné pro relativně malý objem předávaných parametrů, pro větší objemy předávaných dat je vhodnější použít nepřímé
        předávání parametrů. | 
    
      |  Programátor při tvorbě podprogramu definuje název parametru a jeho typ. Při volání podprogramu potom přímo k jednotlivým parametrům doplní požadovanou proměnnou shodného typu. U takovýchto zápisů se rozlišuje, je-li parametr vstupní nebo výstupní, případně může být vstupně-výstupní. Názvy parametrů
        je možno uživatelsky měnit. 
         | Poznámka |  | Při přímém předávání parametrů si systém vyhrazuje určitou oblast systémové paměti o potřebné velikosti odpovídající celkové velikosti všech parametrů podle jejich
        deklarace v podprogramu. |  Příklad: Příprava a volání podprogramu s přiřazením parametrů pro dvě skupiny zpracování hodnot (A, B). 1) Deklarace proměnných pro skupinu A a B v nadřazeném programu: 
          
            |  |  |  |  |  |  |  |  |  
            |  |  | (symbol) |  | (typ) |  |  | // deklarace parametrů pro skupinu A |  
            |  |  | A_VALUE: |  | Integer |  |  | // celočíselná proměnná typu Integer |  
            |  |  | A_DIFF: |  | Integer |  |  | // celočíselná proměnná typu Integer |  
            |  |  | A_COEF: |  | Real |  |  | // proměnná čísla s desetinnou čárkou typu Real |  
            |  |  | A_ENABLE: |  | Bool |  |  | // proměnná jednoho bitu typu Bool |  
            |  |  | A_STATUS: |  | Bool |  |  | // proměnná jednoho bitu typu Bool |  
            |  |  |  |  |  |  |  |  |  
            |  |  |  |  |  |  |  | // deklarace parametrů pro skupinu B |  
            |  |  | B_VALUE: |  | Integer |  |  | // celočíselná proměnná typu Integer |  
            |  |  | B_DIFF: |  | Integer |  |  | // celočíselná proměnná typu Integer |  
            |  |  | B_COEF: |  | Real |  |  | // proměnná čísla s desetinnou čárkou typu Real |  
            |  |  | B_ENABLE: |  | Bool |  |  | // proměnná jednoho bitu typu Bool |  
            |  |  | B_STATUS: |  | Bool |  |  | // proměnná jednoho bitu typu Bool |  
            |  |  |  |  |  |  |  |  |  2) Volání podprogram pro hodnoty A a B z nadřazeného (pod)programu: 
          
            |  |  |  |  |  |  |  |  |  
            |  |  | CALL |  | TEST |  |  | // volání podprogramu pro proměnné "A" |  
            |  |  | VALU: |  | A_VALUE |  |  | // přiřazení proměnné vstupnímu parametru 1 |  
            |  |  | COEF: |  | A_COEF |  |  | // přiřazení proměnné vstupnímu parametru 2 |  
            |  |  | ENBL: |  | A_ENABLE |  |  | // přiřazení proměnné vstupnímu parametru 3 |  
            |  |  | DIFF: |  | A_DIFF |  |  | // přiřazení proměnné výstupnímu parametru 1 |  
            |  |  | STAT: |  | A_STATUS |  |  | // přiřazení proměnné výstupnímu parametru 2 |  
            |  |  | ... |  |  |  |  |  |  
            |  |  | CALL |  | TEST |  |  | // volání podprogramu pro proměnné "B" |  
            |  |  | VALU: |  | B_VALUE |  |  | // přiřazení proměnné vstupnímu parametru 1 |  
            |  |  | COEF: |  | B_COEF |  |  | // přiřazení proměnné vstupnímu parametru 2 |  
            |  |  | ENBL: |  | B_ENABLE |  |  | // přiřazení proměnné vstupnímu parametru 3 |  
            |  |  | DIFF: |  | B_DIFF |  |  | // přiřazení proměnné výstupnímu parametru 1 |  
            |  |  | STAT: |  | B_STATUS |  |  | // přiřazení proměnné výstupnímu parametru 2 |  
            |  |  |  |  |  |  |  |  |  3) Podprogram: 
          
            |  |  |  |  |  |  |  |  |  
            |  | NAME: | TEST |  |  |  |  | // název podprogramu a deklarace parametrů |  
            |  | Inp: VALU |  | Integer |  |  | // 1. vstupní parametr, typ Integer |  
            |  | Inp: COEF |  | Real |  |  | // 2. vstupní parametr, typ Real |  
            |  | Inp: ENBL |  | Bool |  |  | // 3. vstupní parametr, typ Bool |  
            |  | Out: DIFF |  | Integer |  |  | // 1. výstupní parametr, typ Integer |  
            |  | Out: STAT |  | Bool |  |  | // 2. výstupní parametr, typ Bool |  
            |  |  |  |  |  |  |  |  |  
            |  |  |  |  |  |  |  | // vlastní podprogram |  
            |  |  | L |  | #VALU |  |  | // načtení hodnoty z parametru VALU (Integer) |  
            |  |  | ITD |  |  |  |  | // pomocná konverze |  
            |  |  | DTR |  |  |  |  | // pomocná konverze |  
            |  |  | L |  | #COEF |  |  | // načtení hodnoty z parametru COEF (Real) |  
            |  |  | -R |  |  |  |  | // rozdíl hodnot |  
            |  |  | TRUNC |  |  |  |  | // pomocná konverze (DInt/Int) |  
            |  |  | T |  | #DIFF |  |  | // uložení výsledku do výstupního parametru DIFF (Int) |  
            |  |  | L |  | 0 |  |  | // porovnávací hodnota (konstanta) |  
            |  |  | >=I |  |  |  |  | // porovnání |  
            |  |  | A |  | #ENBL |  |  | // načtení podmínky výstupu ENBL (Bool) |  
            |  |  | = |  | #STAT |  |  | // uložení výsledku podm. porovnání do výstupního param. STAT (Bool) |  
            |  |  | RET |  |  |  |  | // konec podprogramu |  
            |  |  |  |  |  |  |  |  |  |