Otevřít hlavní menu

Inline

Verze z 29. 9. 2012, 22:26, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (Vytvorená stránka „Příkaz a direktiva inline dovoluje vkládat instrukce strojového kódu přímo do kódu jednotky nebo programu. ;Syntaxe inline ( data / data / ... data ) ;Popis...“)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)

Příkaz a direktiva inline dovoluje vkládat instrukce strojového kódu přímo do kódu jednotky nebo programu.


Syntaxe
inline ( data / data / ... data )


Popis
Když je použit jako příkaz, data za slovem inline jsou přímo vloženy do kódu.


Když je použita jako direktiva v záhlaví procedury nebo funkce, data za slovem inline jsou přímo vložena do kódu při každém volání procedury nebo funkce.

  • Data sestávají z identifikátoru konstanty nebo proměnné, s volitelným prefixovým operátorem explicitní specifikace délky < nebo >.
  • Identifikátor proměnné může být následován znakem plus (+) nebo mínus (-) a konstantou, která určuje ofset z adresy proměnné.
  • Je-li konstanta v rozsahu 0..255, prvek inline generuje 1 bajt, jinak generuje slovo (word).
  • Operátory < a > lze použít pro řízení velikosti kódu (překrývá se automatické generování).

< znamená, vždy generuj bajt

> znamená, vždy generuj slovo (word)


Příklad

(* příkaz "inline" *)
procedure FillWord(var Dest; Count: Word; Data: Word);
begin
  inline(
    $C4/$7E/<Dest/    (* LES   DI,Dest[BP] *)
    $8B/$4E/<Count/   (* MOV   CX,Count[BP]*)
    $8B/$46/<Data/    (* MOV   AX,Data[BP] *)
    $FC/              (* CLD               *)
    $F3/$AB);         (* REP   STOSW       *)
end;
Viz také

Integrovaný assembler