last question first:
Oh, also what does 'db' 'dw' 'dorwd' mean or stand for? My guess is byte, word, and double word but what does the 'd' mean?
db is data byte, dw is data word, dd is data double [word], and dq is data quad [word]
so d is for data...
NASM says it's got errors in lines 7 and 13, but it looks right to me. It says "comma or end of line expected"
maybe im wrong, but i dont think so (if i thought i was wrong, i would change what i think and wouldnt be wrong anymore... hehehe)
if im wrong, someone else can correct me and we will both learn
i dont think this is proper syntax (if it is, its a form i have never seen...)
try this:
remember 2 things:
1) to get the contents of a memory location (such as the value stored at items[edi]) use brackets around the address (that should be the only time you use brackets -- thats one of the best things about intel ASM, no unnecessary punctuation)
2) labels are simply numbers -- the number equal to the offset of the lable, added to the point of ORiGination (ORG if used, or the link address specified to your linker)
using these rules you get 'items+edi' for the address
because you want the contents (and not the address itself) place it in brackets: [items+edi]
giving you the following encoding: