Inicjalizacja pamięci kodu
Dyrektywy inicjalizujące pamięć używane są do inicjalizacji pamięci kodu stałymi wartościami o rozmiarze jednego lub dwóch bajtów. Zapisywanie pamięci wspomnianymi stałymi odbywa się od miejsca wskazywanego przez bieżącą wartość licznika położenia w obecnie aktywnym segmencie.
DB
Dyrektywa DB inicjalizuje pamięć wartościami, z których każda ma rozmiar jednego bajta. Omawiana dyrektywa ma następujący format:
etykieta: DB wyrażenie[, wyrażenie, ...]
- etykieta jest symbolem, który określa adres inicjowanej pamięci.
- wyrażenie jest wartością o rozmiarze bajta. Każde wyrażenie może być symbolem, ciągiem znaków lub wyrażeniem.
Dyrektywa DB może być umieszczana tylko wewnątrz segmentu kodu programu. Jesli zostanie użyta w innym segmencie, program asemblujący wygeneruje informację o błędzie.
Przykłady:
NAPIS: DB 'Kanal nr', 0 ;do pamięci zostaną zapisane kody..
;..ASCII liter oraz wartość zero
TABELA: DB 0,1,8,'A','0', LOW(TABLE),';'
ZERO: DB 0, ''''
CASE_TAB: DB LOW(REQUEST), LOW(TABLE), LOW(ZERO)
KODY_LED: DB 48h ;kod cyfry 0
DB 06h ;kod cyfry 1
...
...
DB 6Fh ;kod cyfry 9
DW
Dyrektywa DW inicjalizuje pamięć wartościami, z których każda ma rozmiar dwóch bajtów. Omawiana dyrektywa ma identyczny format, jak dyrektywa DB.
etykieta: DW wyrażenie[, wyrażenie, ...]
- etykieta jest symbolem, który określa adres inicjowanej pamięci.
- wyrażenie jest wartością o rozmiarze dwóch bajtów. Każde wyrażenie może być symbolem, ciągiem znaków lub wyrażeniem.
Dyrektywa DW może być umieszczana tylko wewnątrz segmentu kodu programu. Jesli zostanie ona użyta w innym segmencie, program asemblujący wygeneruje informację o błędzie.
Przykłady:
PER_ADDR: DW 8002h, 8023h, 0F001h
DWA_ZNAKI: DW 'AB', 'CD', 'EF'
CRLF: DW 0D0Ah ;słowo zawierające kody znaków sterujących CR i LF
DW $ ;w komórce o rozmiarze dwóch bajtów zostanie
;zapisany adres pierwszej z nich