The ability to load an address in assembler is a powerful tool. Working with an object from a distance (Load Address) rather than directly (Load) gives us the power of pointers and opens up the possibility of creating data structures. LA, an RX instruction, was the traditional instruction for working with addresses. LAY, an RXY-a instruction, offers some advantages over LA that you should consider. Read about the differences in these instructions here.
Category Archives: IBM Mainframe Assembler
I’m in the process of revising lecture videos and notes for the entire site. The beginning videos (Starting Assembler 1 and 2) are now revisions of older ones that correct typos, misspeakings, etc., and include some new material on System/z. I’ve also added a third video that walks through the architectural components mentioned in the first two videos using VisibleZ as a demonstration tool – a good introduction for beginners.
If you are generating a binary result in a register and converting the result back to packed-decimal, you need to be keenly aware of the limitations of each of these data types. For large binary values, you will need some conversion techniques that aren’t found in Principles of Operation. This article discusses several approaches for converting double-precision binary back to packed-decimal.
This update in VisualZ corrects a flaw in the packed decimal arithmetic instructions that occurred when using large values. You should also download codes.zip which includes many new packed decimal test programs. To get the latest versions, click the Download VZ tab on the homepage.
I’ve updated the RunnerB.jar file for VisualZ. Replacing your copy of RunnerB.jar with this one will give you the most up-to-date version of VisibleZ. This update fixes a problem with condition code settings that occurred in some cases for A, AH, S, and SH. This version also includes many new immediate arithmetic instructions. LARL was also added to the instruction set. You should also download codes.zip, upzip it, and replace your Codes directory with this one. The new Codes directory contains sample programs for each of the new instructions that was added.
Can’t remember all the details of the Divide Single Grande Fullword Register instruction (DSGFR)? Not sure of the set up for Multiply Single (MS)? Consulting Principles of Operation for the umpteenth time today? You can quickly learn (or review) 21 grande arithmetic instructions using the visual clues I’ve provided on four new pages (pdf). Check out the pages below and leave the POPS manual for the hard stuff.
- Visual Prompts For Grande Multiplication (pdf)
- Visual Prompts For Grande Addition (pdf)
- Visual Prompts For Grande Subtraction (pdf)
- Visual Prompts For Grande Division (pdf)
Additionally, I’ve added a video to explain the visual clue sheets and exactly how these instructions work:
All of these items have been added to the video course.
Are you bewildered by the plethora of branch instructions in assembly language? Perhaps you’re wondering what all that jumping around is about? Not sure when to choose JNE over BNE or BC? This new paper addresses those issues and a few more you might find helpful. I’ll give you my own take on how to decide when to jump and when to branch. You might also learn a new way to load base registers, get a grip on relative branching, or improve your understanding of addressability. Click here for the pdf and jump in!