Přidáno 1 160 bajtů,
12. 10. 2012, 11:55 Každý výraz integrovaného assembleru patří k určitému typu.
Tento typ znamená velikost, protože assembler se dívá na typ výrazu jako na velikost jeho paměťového místa v bajtech.
Assembler vykonává kontrolu typu, kdekoli je to možné; ohlásí chybu, jestliže kontrola typu selhala.
Lze použít přetypování typu paměťového odkazu. Například, všechny následující řádky se odkazují na první bajt proměnné OutBufPtr:
asm
MOV DL,BYTE PTR OutBufPtr
MOV DL,Byte(OutBufPtr)
MOV DL,OutBufPtr.Byte
end;
V některých případech je paměťový odkaz netypový; například, přímá hodnota uzavřená do hranatých závorek:
asm
MOV AL,[100H]
MOV BX,[100H]
end;
Assembler připustí oba příkazy, protože výraz [100H] má přidružený typ (tzn. "obsah adresy 100H v datovém segmentu"), který je určen prvním operandem (bajt pro AL, slovo pro BX).
V případě, kde typ nemůže být určen z prvního operandu, assembler požaduje explicitní přetypování, jako např.:
asm
INC BYTE PTR [100H]
IMUL WORD PTR [100H]
end;
[[Category:assembler]]