@neauoire I am in this post and I don't like it.
7 comments
@neauoire haha ok real quick. So far I've only used absolute addressing because I find it the most intuitive. Is the primary advantage of relative addressing is that it uses less memory (storing addresses as bytes instead of shorts)? Is there another reason to prefer it? Also, do I need to do anything special when I'm labeling an address to use relative addressing? Or can I make a relative jump (or load) as long as it's within 127 bytes and the assembler will take care of it for me? @eamon The primary advantage is that's it takes less memory and is faster, especially when used in datastructures. If you're using the STR/LDR opcodes, you need to use the comma rune. If you use JCI(?)/JMI(!)/JSI opcodes, the assembler will handle that for you. @eamon Yep, exactly. Unless you need to do pointer arithmetic(like get the routine address dynamically) you should always use immediate calls. In this case, I wouldn't manually choose to JSR to it, I'd use a relative immediate call. @eamon JSR/JMP/JCN opcodes are so you can run routines from a pointer, but in normal times, you should almost never use those. Left has a single JSR2 opcode for example: |
@eamon I saw you had some questions about relative and absolute addressing, can I help?