Typy výrazů integrovaného assembleru: Porovnání verzí
(Vytvorená stránka „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ě...“) |
m (1 revízia: Assembler) |
(Žádný rozdíl)
|
Verze z 12. 10. 2012, 15:58
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;