Les variables del programa s'emmagatzemen a la memòria de dades; normalment a partir de l'adreça 20h, la primera adreça de memòria de dades disponible. Per a cada variable, indicarem l'adreça on està guardada.
Memoria EQU 0x20 ; Aquesta es situarà a 20h Retard1 EQU 0x21 ; A 21h Retard2 EQU 0x22 ; A 22h
Les adreces disponibles per a variables són:
| Adreces | Banc | Posicions | Comentaris |
| 20h - 6Fh | 0 | 80 | |
| A0h - EFh | 1 | 80 | |
| 120h - 16Fh | 2 | 80 | |
| 70h - 7Fh | 0 | 16 | Les variables d'aquesta part són accessibles indistintament des de qualsevol dels quatre bancs |
| F0h - FFh | 1 | ||
| 170h - 17Fh | 2 | ||
| 1F0h - 1FFh | 3 |
En total, doncs, podem tenir 256 variables a la memòria de dades. Les 16 adreces compartides entre bancs poden ser útils quan pot interessar poder accedir a la mateixa variable des de bancs diferents. Una aplicació típica són les variables que es fan servir dins de les funcions d'interrupció, ja que així no cal preocupar-se de quin és el banc actiu en el moment de produir-se la interrupció. A l'exemple IT fem la següent declaració de variables:
; Zona de memòria de dades habitual Visualit EQU 0x20 ; Una variable on guardem el que mostraran els LED ; Zona de memòria de dades que no depèn del banc triat W_Copia EQU 0x70 ; Guardarà el contingut de W durant la interrupció ST_Copia EQU 0x71 ; Guardarà STATUS durant la interrupció
També podem definir variables de dos o més bytes, per exemple per fer operacions matemàtiques de 16 bits o per emprar-les com a vectors. A continuació tenim alguns exemples:
; Zona de memòria de dades habitual Resultat EQU 0x20 ; Variable de dos bytes, estarà a 20h i 21h Vector EQU 0x22 ; Vector de 8 posicions, de la 22h a la 29h Comptador EQU 0x2A ; Estarà a 2Ah ; Zona de memòria de dades del banc 1 Taula EQU 0xA0 ; Zona de memòria de dades del banc 2 Valors EQU 0x120
... clrf Resultat ; Esborra la posició 20h clrf Resultat+1 ; Esborra la posició 21h ...
També podem definir constants (amb el seu valor) a adreces de la memòria de programa. En aquest cas la directiva DB ens permet assignar-li el contingut.
Gray: ; Dades a la memòria de programa DB 00000000B, 00000001B, 00000011B, 00000010B, 00000110B, 00000111B DB 00000101B, 00000100B, 00001100B, 00001101B, 00001111B, 00001110B DB 00001010B, 00001011B, 00001001B, 00001000B
També podem definir adreces de la memòria EEPROM. A més la directiva DW ens permet assignar ja el contingut en el moment de programar. L'accés a la memòria EEPROM es fa com si fos programa (amb un PSECT).
PSECT edata ; Inici de la memòria EEPROM Gray: DW 00000000B, 00000001B, 00000011B, 00000010B, 00000110B, 00000111B, 00000101B, 00000100B DW 00001100B, 00001101B, 00001111B, 00001110B, 00001010B, 00001011B, 00001001B, 00001000B END main

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.