> cblock is
often used to define variable address location names.
"Often" är nyckelordet där. Men MPASM har inte en susning om att symbolen
står för en minnesaddress, det kan betyda vad som helst. Att förstå detta är
väldigt viktigt för att förstå hur det fungerar med symboler över huvud taget.
Till skillnad för symboler skapade med RES, *där* är det alltid minnesadresser
och MPASM vet att en symbol skapad med RES är det och kan hålla reda på
att man inte "dubbel-bokar" en minnesadress o.s.v.
> Det är lämpligt, rent pedagogiskt, att inte blanda ihop cblock och equ.
De gör i princip samma sak. CBLOCK bara hjälper till då flera symboler ska ha
värden i serie efter varandra, men slipper skriva alla värden och det är enklare
att lägga till en symbol mitt i serien. För övrigt får man exakt samma resultat.
> Som att PORTA helt plötsligt ges de värden som var tänkta Pelles_Äpplevin skulle ha...
Är inte helt med på vad du menar, men det är ju inget problem att de två symbolerna
PORTA och PELLES_APPELVIN har samma numeriska värde, så klart, om det var det
du menade. Varför skulle det vara det? Annars kan det bara bli fel om de ligger inom
samma CBLOCK/ENDC, men det är ju bara dumt.
Följande är helt OK:
Kod: Markera allt
cblock 0
black
white
red
green
yellow
blue
endc
cblock 0
up
down
left
right
endc
Det skapar symbolerna black-blue med värdet 0-5 och symbolerna up-right med värderna 0-3.
Helt OK.