kingofbuffs wrote
This maybe a silly question, but what are asterisks meant to convey?
This one:
RET = *(FRAME-5)
or this one:
*ARG = pop()
Maybe I am missing something here?
It's what is known as a pointer dereference notation and is used in C and several other languages.
You can think of it as meaning "The value stored at the memory location whose address is..."
So *42 would mean the value stored at the memory location whose address is 42.
*ARG would then mean the value stored at the memory location whose address is the value stored in ARG.
It is tightly coupled to array index notation, so you can generally think of
*ARG as being the same as RAM[ARG] in the case of Hack assembly.