On 11 April 2013 10:32, Ed Jaffe <edja...@phoenixsoftware.com> wrote:
> The oldest assembler I ever used was IFOX00. ISTR, it did not have > support for LOCTR but my memory could be faulty. It matches mine. It's worth remembering that ASMH predates IFOX00. (Well, as far as customer availability goes; I have no idea what went on inside IBM.) I have never understood the point of IFOX00; it appears to be a reimplemention from scratch to the IEUASM specs, with a couple of trivial functional enhancements, and using reentrant code. Compared to IEUASM it has no significant performance advantage, appears not to exploit any particular aspects of virtual storage, the supported macro and assembler language is essentially identical, diagnostics are no better, and so on. I can only guess at the internal politics in play at the time that must have led to this project, when ASMH already existed and offered so much more. IBM's usual internal competition, I suppose, but in such a small subject area... On the more on-topic matter of jumpifying and putting data at the start of a module, it bears keeping in mind that it does locality of reference no good to have a single branch/jump instruction at the start of a module, followed by a large amount of data, and then code continuing way down. While no-one may be paging the way they used to these days, it still shouldn't be encouraged, and hopping down the pages with one instruction reference each is not the thing to do. Even on the smaller scale and much faster resolution time of cache lines, it's probably not such a good thing. Tony H.