Teaching myself Z/OS assembler

None of the following are tutorial-like, just reference material. All will eventually come in handy though, so good to know; of interest would be:

  • HLASM Programmer's Guide
  • HLASM Language Reference
  • HLASM General Information
  • MVS Program Management: User's Guide and Reference
  • MVS Assembler Services Guide
  • MVS Authorized Assembler Services Guide
  • z/Architecture Principles of Operation

You can find the books for the z/OS version you're on at IBM doc library:

  • http://www-03.ibm.com/systems/z/os/zos/bkserv/

z/Architecture Principles of Operation ("the POP manual") is the system bible. Of immediate interest in that book would be chapter 7 which lists the instructions and instruction formats.

For tutorial material though I can recommend (these are all on my bookshelf) any of the following:

  • Mainframe Assembler Programming by Bill Qualls (this one comes with an emulator, PC/370, for compiling and running assembler)
  • MVS Assembler Language by Kevin McQuillen and Anne Prince

And after you've mastered the basics:

  • Advanced Assembler Language and MVS Interfaces For IBM Systems and Application Programmers by Carmine A. Cannatello

If you have questions you can, use stackoverflow of course, but for a more mainframe-centric pool of brains to pick, try http://ibmmainframeforum.com/. It isn't highly active, but the moderators know the dark arts.

Have fun!


Learning assembler is certainly a good way of understanding how computers really work, but I'd suggest that jumping in to 390 assembler will involve a very steep learning curve. I'd suggest getting hold of a microprocessor emulator such as emu8086 which comes with a tutorial and starting with that. The basic cncepts you learn will be transferable to other ,more complex, architectures.


There is a mainframe emulator called Hercules, and some older mainframe operating systems can be obtained for free (legally). You may find that you can use this to do some experimentation with Mainframe assembler. The instruction set will be no more complex than a 386 family, so learning assembler on this system is probably as good as any.

As an alternative, this Stackoverflow posting discusses other ways to learn assembler.