AS/400 Assembler like S/360-390 
Author Message
 AS/400 Assembler like S/360-390

Does anyone know what the assembler for the AS/400 (or prior machines)
is like?  Is it similar to S/360-390?

I tried getting an assembler listing out of a compilation of a tiny
dummy program.  It took some doing in setting compiler switches,
and I got a very cryptic dump.



Thu, 05 Jul 2001 03:00:00 GMT  
 AS/400 Assembler like S/360-390
Isn't it an ASCII based machine?  I doubt the architecture is the same.


Thu, 05 Jul 2001 03:00:00 GMT  
 AS/400 Assembler like S/360-390
The following is based on a very foggy memory that is about 8 years old (the
last time that I took a cursory look at the AS/400)...

There are two "assembler" interfaces for the AS/400.  The main one is a VERY
high-level machine architecture, with a single address space using
gargantuan addresses, entirely object-oriented, with things like relational
databases as the "primitive" machine data types.  The compilers compile the
source languages "up" to this machine interface, producing the AS/400
equivalent of an object deck (which, in itself, is yet another "primitive"
machine data type).  Security is via some sort of capability-based system,
and pointers are completely non-forgeable, which is how they make this
single address space concept work.

There is a "primitive" instruction (I don't know the name) which operates on
one of these object-deck things and compiles it down to the "real" machine
interface, which is more-or-less a normal computer, in preparation for
execution.  I believe that Java is a good analogy, whereby the Java compiler
translates the source into bytecodes, and then the JIT actually produces
"native" instructions under-the-covers.

Note that by having this very high-level machine interface, IBM was able to
completely change the underlying hardware / machine architecture (to a RISC
system very closely related to the RS/6000) without impacting any of the
existing "object code".  All they had to do was re-implement this very high-
level machine interface on the new CPU -- SMOP!

There are probably some good introductory books out there.  The AS/400 is
really a very fascinating machine architecture, if you can dig up any details.

Now, perhaps someone who *really* knows what they are talking about can
correct any mis-impressions that I have given...
--

      IBM Research, Yorktown Heights



Sat, 07 Jul 2001 03:00:00 GMT  
 AS/400 Assembler like S/360-390


Quote:
> ...
> There are two "assembler" interfaces for the AS/400.  The main one is a
VERY
> high-level machine architecture, with a single address space using
> gargantuan addresses, entirely object-oriented, with things like
relational
> databases as the "primitive" machine data types.
> ...

Some 10 years ago I programmed a little against this high-level interface
(the assembler was from a third-party vendor, as I remember), and it has
certainly nothing to do with S/360-390.

Quote:
> There is a "primitive" instruction (I don't know the name) which operates
on
> one of these object-deck things and compiles it down to the "real"
machine
> interface, which is more-or-less a normal computer, in preparation for
> execution.
> ...

I had the impression that this low-level interface was very much
S/370-like, before it was replaced by RISC architecture.

The high-level machine interface on AS/400 is very much the same as on the
older S/38.  I happily transferred such code from S/38 to AS/400.

As far as I recall, the S/38 was an outcome of the failured FS project of
the early 1970s.
I never understood why IBM marketed this fine system just with RPG, making
it look like a big brother of S/36, which had no resemblance with S/38
architecture whatsoever.

Gunnar Opheim.



Mon, 09 Jul 2001 03:00:00 GMT  
 AS/400 Assembler like S/360-390

Quote:



> > ...
> > There are two "assembler" interfaces for the AS/400.  The main one is a
> VERY
> > high-level machine architecture, with a single address space using
> > gargantuan addresses, entirely object-oriented, with things like
> relational
> > databases as the "primitive" machine data types.
> > ...

[snip]

Quote:
> I had the impression that this low-level interface was very much
> S/370-like, before it was replaced by RISC architecture.

It looked very much like "360 done right".  More registers, larger
offsets, large addresses (at least 48 bits, but I don't remember
anymore), more consistent instructions.  Of course, some people might
consider the original 801 RISC as also being "360 done right".

[Before I get flamed, 360 was a good design for its time; 801 and
AS/400 were 20 years later, and learned many lessons from 360.]

A major difference between 360/370/390 and AS/400 is that the AS/400
has only one address space; processes are protected from each other
because pointer creation is a privileged instruction (e.g., mapping a
file name to a virtual address) and the hardware prevents pointer
forgery.  [One can create pointers within allocated memory areas
without using the OS, of course; but these are really offsets rather
than absolute pointers.]  So, the overhead of process switching is
very low, similar to the overhead of "threads" in Unix or Windows.

BTW, relational databases are not "primitive" machine data types.
Files are mapped to virtual memory addresses, that's all.  The
operating system allows accessing databases as regular files and also
allows defining views as files; so one can define a file as a SQL
SELECT and pass that to a program that expects to read an ordinary
file.  Very handy, if RPG weren't the {*filter*} programming language
(there is a C, though).

- peter ludemann



Thu, 12 Jul 2001 03:00:00 GMT  
 AS/400 Assembler like S/360-390

There's a freeware MI assembler at

        http://www.*-*-*.com/

Quote:



> > Does anyone know what the assembler for the AS/400 (or prior machines)
> > is like?  Is it similar to S/360-390?

--
Jack J. Woehr                 # The Drug War is Race War
PO Box 51, Golden, CO 80402   # The Drug War is Class War.

http://www.*-*-*.com/ ~jax/rcfb # Arrest the War on {*filter*}.


Sun, 15 Jul 2001 03:00:00 GMT  
 
 [ 7 post ] 

 Relevant Pages 

1. S/360-390 64 bit?

2. Assembler Beginner?two pass assembler design for IBM 360

3. Writing out packed decimal data on os/390 and importing into as/400

4. Python for IBM OS/400 OS/390

5. early 360 assembler vs now (historical question)

6. IBM/360 Assembler Routines

7. AS/400, RPG/400, COBOL, CL/400

8. Help Application Development in IBM 390 Assemblers.

9. S/390 assembler instruction reference

10. Palm Pilot app for Assembler 370/390 programemrs

11. Position available: s/390 Assembler prog/analyst

12. Definitive 370/390 assembler book?

 

 
Powered by phpBB® Forum Software