The generated code looks correct, although you don't show the USING: address 0000A0, base R12, displacement 0A0.
Goin forward, I recommend using the long listing format; it makes it easier to see who did what to whom. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר ________________________________________ From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> on behalf of Joe Reichman <reichman...@gmail.com> Sent: Wednesday, February 26, 2025 7:51 AM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: BCTG Instruction External Message: Use Caution Hi My understanding of this new instruction is that it is a BCT with a new 20 bit displacement. The object code layout of this6 byte instruction has in bit 20 - 31 the 12 bit displacement and if the address exceeds 4096 decimal the new bit displacement would get populated in bits 32 - 40 I tried out a BCTG R9,LONGDISP Where the address of longdisp was beyond 4096 and yet I don't see bits 32 - 40 of the instruction being populated So here is the example LONGDISP is beyond 4,096 and in bits 31 - 40 there is zeros 00A0 LONGDISP DS 0H 2E60 E390 00A0 00 46 BCTG R9,LONGDISP