Re: Re: Where do I start?

Rick Fochtman <[email protected]>
Newsgroups gmane.comp.emulators.turnkey-mvs
Message-ID <[email protected]>
  -------------------------------<snip>-------------------------
For Example: A base register is a register holding an address that is 
modified by an index or indexes to form a pointer. Usually a base 
register points to the zero'th array element or the first element in a 
buffer. A changeable index is added to the base register to access other 
parts of the buffer or elements in the array.

Right?
--------------------------------<unsnip>--------------------------
Close, but no cigar. Your program establishes addressability to ALL its 
labels by establishing a base register. This way, the base address can 
be added to the various displacement addresses in your program so that 
your branch instructions, for example, go to the correct main storage 
address. Since the largest address value that can be in an instruction 
is, in most cases, 4096, you need to establisgh a base so that your 
program can be loaded anywhere in main storage. You might find more 
information under "Addressing" in the PoPs manual. (Principles of 
Operations). Take a look at $TGET, that I sent you. Start from the CSECT 
statement and look from there through the " LR  R1,R2  " instruction. 
for entry linkage, and from the " LR R1,R13 " through the " BR R14 " for 
the exit linkage. In the entry linkage, you can see where I define the 
base register.

Assembler is like no high-level language you know; many of the concepts 
and requirements are completely new to ANY high-level language programmer.

We REALLY need to talk. :-)

Rick
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.