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