Lots of Code On One Base Register

Do your assembler programs look like they were written in 1970?  Are you still using the instruction set your dad learned back in college?  There are lots of new instructions you can master with minimal effort.  Consider branching.  The old-fashioned BC and all the related extended mnemonics (BL,BH, …) all use base/displacement addresses to satisfy your desire to change locations.  But there is a host of newer, relative-branch instructions that determine the target location by adding a signed binary integer to the current PSW instruction address instead.  What’s the difference?  The old BC-based instructions require that you have a base register covering up the target address, so if you have lots of executable code, you’ll need more base registers.  The new relative branch instructions don’t need a base register at all – they jump forward and backward from the current PSW address.

So … if you put all the static storage fields together and keep them separate from your executable code, one base register might be sufficient.  

I’ve put together a sample program at http://csc.columbusstate.edu/woolbright/relative/relative.txt  that demonstrates how this can happen.  There’s also a new video in the video course that walks you through it at  http://csc.columbusstate.edu/woolbright/relative/relative.html .  The program uses a newer linkage technique but its not a requirement for this idea to work for you.

It’s time to show your daddy a thing or two…

Leave a comment

Filed under IBM Mainframe Assembler

Labeled Using – A Powerful Tool

Occasionally you need to take a DSECT and apply the structure to multiple areas of storage simultaneously. With a standard DSECT that can be tricky. What you need in these cases is an idea called a “Labeled Using”. You can watch a short video that shows you how to use this powerful idea here.

Here’s the code that goes along with the video:

Leave a comment

Filed under IBM Mainframe Assembler

SRP and BASR Video Instruction

Want to learn more about Shift and Round Packed?  Exactly how does BASR load the base address of an assembler program?  Explore these ideas in the following videos that are new additions to the video course in assembler.

Here is the link for BASR
Here is the link for SRP

Leave a comment

Filed under IBM Mainframe Assembler

Happy New Year

   It is a happy new year for me.  I recently retired from the university and I’m enjoying entertaining myself with exercise and study.  I’m determined to keep my hand in with assembler language and continue producing videos that I hope you find helpful.  Here is the latest effort that covers the Shift and Round Decimal instruction.  You can find the video course in its current state here.

  I recently added another panel in VisibleZ that will allow you to navigate easily to the Codes directory.  In the future, the Codes directory will be distributed separately.  I’ve also made some corrections in a few instructions to more closely simulate what happens in System/z.  Download the latest version from the blog site for these latest changes.

  If you are looking for instruction on a particular topic, let me know and I’ll add it to the production schedule … and Happy New Year!

 

Leave a comment

Filed under IBM Mainframe Assembler

Blessed

Dear Readers, It may be a few weeks between posts.   I’ve had a small heart problem that required my immediate attention.  Thankfully, the medical solution was available and I’m on the mend, and looking forward to turning my attention to all things assembler.  Life really is a blessing, and one of the small blessings in my life is having readers like you follow the site and sometimes find it helpful.  I hope you will come back when I’m posting again.

David

2 Comments

Filed under IBM Mainframe Assembler

My New Toy

My New Toy

I’ve gotten interested in mechanical computing devices and I’ve known about this one for years. It was an IBM hexadecimal adder from the 1960’s. I couldn’t resist bidding for it on Ebay.

Leave a comment

July 6, 2013 · 5:37 pm

Marist Enterprise Computing Conference

Image I had a wonderful time at the recent Marist College Enterprise Computing Conference and I had the pleasure of meeting several IBM engineers who design and program the assembler  instructions for new IBM machines.  They have an amazing depth of knowledge (as you would expect) of the instruction set and they inspired me to dig deeper into the Principles of Operation to tackle some of the newer instructions.  

  I was at the conference to promote VisibleZ as a teaching tool, and during the talk I mentioned that there are 500+ instructions now.  An engineer in the audience signaled higher!  VisibleZ offers a subset of instructions that were available on the System 360 – plenty of instructions to be a useful learning tool.  Still, I want to move forward, so over the next year I will post my experiments here with the newer 64 bit oriented instructions.  I’ll also try to bring VisibleZ into the 64 bit world.

   The image at the top is a conference handout that contained a chip in the bottom right corner from the latest IBM zEnterprise  mainframe – an EC12.  Check out the statistics of that processor!

Leave a comment

Filed under IBM Mainframe Assembler