A place for everything, and everything in its place. In assembler, that means that the things we define require proper alignment. This short paper discusses alignment for code and data, and how to get it.
A place for everything, and everything in its place. In assembler, that means that the things we define require proper alignment. This short paper discusses alignment for code and data, and how to get it.
I’ve added an introductory section on debugging to the main page. Currently, there are four videos and four abending programs that cover abends S0C1, S0C4, and two versions of S0C7. You will have to add some JCL for your system. I’ve included the data sets the programs process. I will add some more videos for other abends later.
Multiply Grande (MG) is the sister instruction of Multiply(M) and produces produces 128-bit products in an even/odd register pair. Ususally the result we are looking for is in the single, odd, grande (64-bits) register. That presents a problem: How do we convert a 64-bit product in a grande register to packed-decimal? It’s not obvious and requires a bit of mathematical know-how. This article shows you the assembler code that will do the conversion, and points to an explanation.
It’s been a few weeks since I’ve posted. Life intervenes occasionally. This post is for a Multiply (Fullword) instruction which has an RXY-a instruction format providing a long displacement. This instruction is well worth a look, if you consistently reach for (M) when multiplying fullwords. You can find the short article for MFY here.