InterviewSolution
| 1. |
Why Do We Use "drop"? What Does "using" Do? |
|
Answer» Neither DROP nor USING affect the register contents. Once a register has been loaded with the address of a piece of storage, the using statement can be used to 'map' that storage against a set of labels defining the layout of that storage e.g. a DSECT. Then whenever ONE of those labels is referenced in the code, in moves etc, the ASSEMBLER resolves the relative address as a particular displacement from the absolute address in the register. The DROP instruction removes the relationship between the labels and the register and renders SUBSEQUENT references to those labels as unresolvable, giving rise to errors at assembly (compile)time. Typically the DROP instruction will be used to allow use of the register for another PURPOSE, e.g. address a different bit of storage via a using staement on second DSECT without the risk of corrupting that data via moves referencing the original DSECT. Neither DROP nor USING affect the register contents. Once a register has been loaded with the address of a piece of storage, the using statement can be used to 'map' that storage against a set of labels defining the layout of that storage e.g. a DSECT. Then whenever one of those labels is referenced in the code, in moves etc, the assembler resolves the relative address as a particular displacement from the absolute address in the register. The DROP instruction removes the relationship between the labels and the register and renders subsequent references to those labels as unresolvable, giving rise to errors at assembly (compile)time. Typically the DROP instruction will be used to allow use of the register for another purpose, e.g. address a different bit of storage via a using staement on second DSECT without the risk of corrupting that data via moves referencing the original DSECT. |
|