My understanding is the index value stays until the program scan is completed. There are more ladders in the program, some using the copy (COP) instruction, manipulating words. Am I correct that the index would affect those?
Other instructions do in fact manipulate the value of S:24. These instructions will initialize the register to whatever value they need before manipulating it. Therefore your program needs to initialize S:24 before you use it. After you are done, you can leave it as is (all other AB insturcions such as COP leave it as is when they are done) but do not ever assume it will be as you left it on the next scan. Also if you have any interrupt routines with instructions that manipulate S:24 your routine could be confounded right in the middle of its task. If you do have interrupt routines then use indirect addressing rather than indexed addressing.