Řetězcové konstanty

Z Delphi & Pascal (česká wiki)
Verze z 9. 11. 2012, 21:18, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (1 revízia: Assembler pismeno D)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledávání

V assembleru musí být řetězcová konstanta uzavřena do apostrofů nebo úvozovek.

Dva po sobě následující apostrofy (resp. úvozovky) v řetězci, uzavřeném do apostrofů (resp. úvozovek), znamenají jeden znak apostrof (resp. úvozovka).

Řetězcové konstanty libovolné délky jsou povoleny v direktivě DB a způsobí přidělení posloupnosti bajtů, obsahujících ASCII hodnoty znaků v řetězci.

Není-li řetězcová konstanta v direktivě DB, nesmí být delší než čtyři znaky, a určuje číselnou hodnotu, která se může objevit i ve výrazu.

Číselná hodnota řetězcové konstanty je vypočítána jako

Ord(Ch1)
+ Ord(Ch2) shl  8
  + Ord(Ch3) shl 16
    + Ord(Ch4) shl 24

kde

  • Ch1 je nejpravější (poslední)
  • Ch4 je nejlevější (první) znak

Jestliže je řetězec kratší než čtyři znaky, nejlevější znaky jsou nahrazeny nulou.

Zde je několik příkladů řetězcových konstant a jejich odpovídajících číselných hodnot:

 Řetězcová      Číselná
 Konstanta      Hodnota
—————————————— ———————————
 'a'            00000061H
 'ba'           00006261H
 'cba'          00636261H
 'dcba'         64636261H
 'a '           00006120H
 '   a'         20202061H
 'a'*2          000000E2H
 'a'-'A'        00000020H
 NOT 'a'        FFFFFF9EH