Hello, folks i'm almost finished with the milestone completing chapter 8. However, I'm having a little trouble understanding the labeling scheme the book describes. It says that each label b VM command must be given an corresponding unique global label
where f is the function name and b is the label symbol within the vm functions code. However, when i look at the VM functions given as test programs i don't see this scheme being followed. where is the label b. and is the name of vm file considered a function or is it considered the overall class.
Note that the Jack compiler always generates VM code with function names that include the class name. Since the VM file name must match the class name, you don't need to worry about function names being confused across VM files.
Aaaaaaahhhhhhhh so the vm filename is actually the classname.function and putting the name of the label behind it allows us to see whivh class the label belomgs too like this. (Classname.function$label) and when I have a goto its @classname.function$label. Correct
Does that mean to implement this we need a second function for generating the 'goto function' when calling a function?
This would be because the goto ASM code would simply be of the form "@[functionName]" (omitting the "$[label]")?